This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via f824c939b9e23597a706fcaa328876b76e391f82 (commit) via c4f0e01131eddfd5b6f8abf612f70128decf4e2b (commit) via 7924261f8f0ae888d24cfb31f18b71e1ecdcbd33 (commit) via b6de67684f0495b24494b313049d8bfbe609f0a0 (commit) via 3e8c0bdbaf357d02a228bce213be3a2ca0250915 (commit) via 58070e2ca74912f5c79d8758c85a7fcc326c1ad7 (commit) via 2a31c67afe9adc5d172ff338bfaa278adea7ec05 (commit) via 3e1bab93c1ab3eb6227001553640e0412c4d55eb (commit) via 8e7778a8fca173fede71bde64c06eb48690d8a1f (commit) via 31e0e08a59b58622a6ad0b803a589427d01c0f30 (commit) via 9254944067a862d84fc1762d2b919bb13801d8a5 (commit) via 90874a8a3a372b334ed71d0664b5b11b0f79e255 (commit) via d9690aea6d81e23004c7ccd68e6cadb492131153 (commit) via c679f3711abd468e8d9afa906b95f148be125fe8 (commit) via ab8d438fdda2b682b9e08a25fd1710312e35d1f5 (commit) via d69c879e49632b2429a114737682c080bca96d30 (commit) via 0ff071f11c5216d9c0ff4526b7a42c47487c87be (commit) via f4cb450fcf85a1adf2925733d06f70ee015f7289 (commit) via 55b2f2eb09419c3c7b2bffd2c4e8141e3a37a9de (commit) via b64d57aac841cb0a569e9651cba629965d1e6783 (commit) via 3bd3aa727fef40ff66935d8971c5a05e13e0baa0 (commit) via 8a19658294fc6207743641f09a150ccc65d30a44 (commit) via 176b9e030d5a41b15824cb8ad4a73e9efb47a2dc (commit) via 92b806f888a866184254424bcbbc2b6bbf731f4c (commit) via a759501ebd30659e0c9e7553b42f682dd0b5d651 (commit) via 3c96df7ebce8bbb0f8c9a67fd4495335cc0f6327 (commit) via 11e1e4e90d58b6e7612a46c8aaecd64d518a38bf (commit) via e40a86400db3cfa8eb38f55732a5aaf186184765 (commit) via 2827f4af617ddb2982f5c317988134d015b4576a (commit) via 1233b1d46e74a4648bf3b429603ca93d25f8a13f (commit) via 73231650c16d34d8333518acab6a41b8701caa7d (commit) via 63041e32e8f264e83743a31477cb6a5c664472e5 (commit) via d59ed570303e61b36cd6e0fce63383345a377c05 (commit) via 4a979780914f4666f05522e2c92d44be2cf62b29 (commit) via 06e92db23a1f7b70272abec56e4da73449efde18 (commit) via 32b7e7c0b5f2057290b62d0f431fef2508e51d2a (commit) via 5d5a45db36ec2ecf1a4eebb44bf1a101d87da941 (commit) via b7dc950e0b0fa28d697f1822dc3f6475c57def75 (commit) via 02afbd47f474c7252d419087046ef2c1beec901b (commit) via ea5ac96bbff710208f860479902153fa3e6c655a (commit) via 1d7162c1bd7761047db575467a23cc93395b7f17 (commit) via 37758f5554df9bfdc0ee037fdf5508b6437fe015 (commit) via a408304c86c6d41bffbd7187e65dd31c64f6c06d (commit) via 7d83243a1ac89b23e95566f34335b5f189e3f57b (commit) via f56b0d5ff95989521f5994a06d64943977e6e5a2 (commit) via 30736cd3fc24cae4487a0cdb39f2763538900ae9 (commit) via a4883c68c14fbf73474cbcf050d3d99acf5b2cfb (commit) via 75842d01ba4f57aa4a67089fcaa218abad74c334 (commit) via d3bea04349d7456bc1db37087081dd55e688f936 (commit) via b6a542c4df07f0aea694a8c624da9fcddf0b33a9 (commit) via c9e5e60dbe9b7be0f6714b45ad3badce2706cd95 (commit) via 01a24be1cd0ebf60a7bb5a9934a8904e09dd469a (commit) via 365629c0bb90b794b392b1088e2404ffc565e0f1 (commit) via 69e29b22deca7d82f1cc21202fdb7e101bcecb62 (commit) via 03a3f90805eed4de204d73c7ce53af7d26660076 (commit) via f077bfc85b3471297971520158b2833911c958aa (commit) via d2510bc8239277ef5e3a00ae43f8f7cc57bcd6ac (commit) via d94eba7823fed296433722595e5de70175d8eb03 (commit) via d87b4a73cdb1f15e98f213369a65f86d65eeac6c (commit) via 2789f3574dd4f66749b9fae6e84224ccee1c1d52 (commit) via d25238aadf23d9c21ac3c2ad192af2925114b6bb (commit) via 6aa1e273ddf8451e569ce6537af6211d52c062f4 (commit) via 871956e932f429b5e20b68e03e00d7886feab5d2 (commit) via e63ca421f9a7ea76ee9b8561b81613e429a4009e (commit) via 608f644801bdf68b3de76142c51ff6dd85e9a911 (commit) via 6d4a602f10a4abf0b97e9495d7f83ecc86146da8 (commit) via a075b9c5b1ed774a28a27e4ce41fc21ee683ae0d (commit) via 18b98cafca11b61b8c462360ef36bb22674100bd (commit) via 7afbf8c47a96ac8cb575a2aaa7b8e98b2996dfa1 (commit) via 0b83e5a52e38b9d763f4236d3b1d20e3c79cf4e1 (commit) via 06b912c5c5706a4dffa16543c66a2d7f06a4da8d (commit) via a426dda87652bf71603f9028550346f17c0d17a8 (commit) via 20f793c433e294e9c3474f54599652b1728a6b3f (commit) via d3ec61bb9d8526f49e5f51a39651eb78e3e9bbb8 (commit) via 7bc742e75a30007d0ecfa0a3ddbabdaeae5bf3f7 (commit) via b8ff23c384f01c6a93dd5c43864a407660ec68ea (commit) via aac6b746ce329ab2ad521cb62455dadfdda96665 (commit) via be24d6b32f46f97242da308c5c625c0f34d8ff3b (commit) via 33134fc44b607d1692707a61a72559c6e9b7d9aa (commit) via f0f385de20cf378a9e8f74dac6819ab289fb71a9 (commit) via 63043a1b44d360006cae4d4311506b972b63f2b7 (commit) via df3943b0297da787571c9f1eb9079a8dcca0e64a (commit) via 6af867f6bbef7670eb7014a1c1643dbcb63c2f48 (commit) via 3f97f51735e40edf6a49b3cf1c5affc759058ce6 (commit) via 611965065294209d2e418c221e9dfe7042775fad (commit) via 584efcab4fcd9c2b3c385f3dd86730c590a7e736 (commit) via 87af024ad669762590aa190035ccda0d98acddda (commit) via 2746e7014edf38f9cd9fd6df7205e51ae0c1c54f (commit) via 44b5666bc74f839158af79d215d00a7232b8a3dd (commit) via 16295ef4a0bd053a2e2b34e5d14478131ac1fe3c (commit) via 734b67d20dd9f27b0214b129929a063d16671fa4 (commit) via 1f324fd71d0dac2e538466ec851a32689df2d896 (commit) via fd4da55b68527cfef08eeffbb39915cf2ee01ed9 (commit) via aed60254080eba17ebc217d9cfb2043b6f196f63 (commit) via 798023e9a64fb7689be2af50682f57938233ac77 (commit) via 64bd20c56c090bec348661686422842826360d1c (commit) via 2c69c31fd5e36da933fca89dd5ed15cd51f3eda5 (commit) via 45f26735547337cc1398c98af4f986be2939f55e (commit) via 47f651f156af15247c0cebcf5880183ab179fb1c (commit) via 66e1ac7b14293feefdc84969b74253fc70cda3f2 (commit) via e973973e5c91257740afaff5b97a449377589db1 (commit) via fa3844657695ee2891ef1b483981deb66124f149 (commit) via 083c56c7950c5f9ced484c7ef8d8372164a12981 (commit) via 96667929bf683af5d30426e397bbd5b136cce588 (commit) via c77a4b8c7a1d8c6b69cd4b32dfccc584a76d844b (commit) via cc853ae224f210ac7b5e227d0ac0d4b31053251a (commit) via d92a7932a7e81596a74006c81e4670d93527c8fd (commit) via bfdd4688c944201ea35aede4148c70691d424ce6 (commit) via eadc8af30a855a89f718353696f6aa167f87462d (commit) via e4c3c620b3fc4992f74dacb7cca803ca946b1197 (commit) via fac786647c8d931e93b190c790fb1b2a1c95f94d (commit) via 90070fc927c8d8a3a37d0eb818a2c611c4e62fc7 (commit) via af0e9924804e241452f2efbb2e12ca7dacf8385a (commit) via a4c768798014c7f9b3bf54ee37eef44944765786 (commit) via 05a347c0ddab059ce337756c57634c664d7f6fe8 (commit) via 7e6204874286ae06847aad9f8313791f03991633 (commit) via 03baaf780efa355effe618233e7c67eb347f1567 (commit) via 0bc58278b943bcdb98ca783d155db1c411594caa (commit) via 1b37278adbca2710dedadf494c0ff5b60df494a6 (commit) via 841f013e264d21dd6d3a725325623dbc21aac4f9 (commit) via 9c3b24502ab3b29f67301248527341aaa8d69d27 (commit) via b29c22a433ed2e9bf6e6d0b3379210d7f4e32502 (commit) via e2e106be5633b49ac9391ea187c39f6f777596d3 (commit) via efa8b61522a5941f460d797034dcdf926fd3f894 (commit) via dcfb85496acf7a095fec78047be439697166f808 (commit) via 8a5823b8c426375a63d49424e7d800530c50ee0b (commit) via d47236e0de22f80a9bf6055715b2188d1ed931ba (commit) via 14e30babc3b5ee992ca440171b1c996955838fc8 (commit) via 3489c88cd8b6102fbdd474cf4752d4c88e483729 (commit) via 0ad0c03e624b884c923803b36b0eaa0209442bfe (commit) via 8dc25f04ba659b6f88f0eef91258088c4b3fe978 (commit) via 6886b70cfc71c0af11833c0284b42bbb4f7ef648 (commit) via aa1dd87807c51d381351a24d84137f99f5cb0b90 (commit) via 19682056b02da8f3644cc5ce50065b720972658b (commit) via 030a57c5e89e0523faaf950d1cf594aaaaa886af (commit) via ed51f39bcadab76339c6731922a98822e26da3f4 (commit) via 405401cba4cdc65b411474c9f7c628c490aed9db (commit) via 19a1dfbc7148b67f718afdd14e3c75dcf6ff17f2 (commit) via ce0e83b3badfd2b4048762ffffc8041c7f92cb19 (commit) via 535732392737e14f44a1595feafcb844396a7cc1 (commit) via b86d9c0a17ef31d3ddbc87be83703bac1d2a432b (commit) via f370c68ce3e5b4abf3efaa0a3a3d48269c28ed61 (commit) via 9ed81c4116805d454563e95e29cf8bec38105ce4 (commit) via 1fe0b6bd6ccdaedd807d4ef9060441f9223d71f6 (commit) via 9f6e5c768ee27f986b303f91dd42d07bc0ce4c56 (commit) via ee79343e3bb337b27a9613625aa909b38a77ce04 (commit) via cf4dd3c01bd8ab20a43c24549e3191b1585fbd85 (commit) via 498606afbe0710d75bc3ee44b6345046ab05d5a0 (commit) via f18be3b0bf3bfcd01510813fff6c055a219df4c7 (commit) via 2a0a67412b0ac4cea8a5fa2ef52be0f260b3c6b8 (commit) via 9898206eba5a742f66fde5b3250f3ac3974022b9 (commit) via 15af725ea401ba1436abd848080e62188e79e4be (commit) via 5f3b20eac388e41aaa3f0f8e215aa70326d23b5c (commit) via ecb061e4f93ac6ff2a0162a992e244c9a045d02b (commit) via 6814863fd1e473bfcf18d403f64f6cbdfc17cfaf (commit) via 735fce60d63398c90bbc022962098da6efea4489 (commit) via 8599471a58287a3f97034442263487931e53f877 (commit) via 00d59063dbd08c073b1fa500ba2fcff17483439c (commit) via f9677eeac1eea0028115917a1a0238d62ec7b9f7 (commit) via fb35962cca894498fc48a9249255600d776777c0 (commit) via c8783a6ae53a40fc2b84035074f30f8d85fdf17c (commit) via 4594712a1777fdd03b51491cf82bd06d45c16472 (commit) via b6785f2ef8bce570e6db66add579a2a89ee1ec78 (commit) via 5111b6c08b568300c50cb3079ed7d8b6976e17e1 (commit) via 17963c73ccdec5185e41a958756e763ddc5ab5fd (commit) via d4be207fd1a294a7a97c402b9a70ccbb00b2e8c1 (commit) via f067ff708054744e9d82b367bf2620cfd8684e94 (commit) via f0c7999db1fa0e845dee9cdf65b5e8678c85db3f (commit) via 5af32f5c8c4dedbf70c2074661e50226ce1db7cf (commit) via de167abd56d14715ea5d25778bb5bd2e24793d00 (commit) via 870eb6a2bb29326da1104349720a911678e1a030 (commit) via fea98bc53e658acecfb84578d637a432ab15152c (commit) via 7949161c2b64a6044cf5018a4d901814c673c2a6 (commit) via 149dd882779f8213d06ef13b3a575bcea48100db (commit) via 889a01bb86e0942d7c8e5c12bafd4d3ee38d02e2 (commit) via 705dae9b845d9a67c7af93dd2cf3c1bc80f10b6c (commit) via 4271343e1e13ce504c4a7cb0abf6449cef880e84 (commit) via 48cad624e6b98867559ca7b35e88d76cb419c383 (commit) via 8f5d65674717541a0c9365668d319f86cc7252be (commit) via 98ccaf67ae109bc50f52516ac5c9ef39133930f3 (commit) via ba149d470bcc8056f4e55ddeef7aa90eb1f54313 (commit) via 0f72e41927ebe5efe9cc6ef223caa88c1accf3f0 (commit) via 006ffcfe7157b3d980ed2486149d8fcc729e68e7 (commit) via 575ea031f3ed28295b1c34794fd2cafcc7240252 (commit) via 57f1afd4728fc070c4d2736362767d6d2adffab5 (commit) via f805321a33ab5d98e6127ac079d272746cb65ef6 (commit) via 3959e2d3fba0957ec4d50a6d4457fd9339ba3d8e (commit) via d2d2da1038f20022a7f56f687b4fc1db4049c67b (commit) via 4849218f8fc1ac85090dfe389daeeda39936fedb (commit) via cc1b741bb8e880039b72b9ee72a12bb934b736bd (commit) via 3caebcf02e373018b9d93e47647c0f33ab0575cb (commit) via 065cc0d6ef6199af41250c413f3b65497c7afa38 (commit) via 55eeebf4408c35422feb3c7aaf31853fbecc270b (commit) via a77b2aa2e61d7aba5abaee7d7caf93f58b0b87d3 (commit) via 3931a23cd67e43aa836aa06c63c32089fea11b88 (commit) via 35912579df217591d7c81056c10fe3e832405d18 (commit) via d6b0ed246d48fe4e1c8372ac27bdbc3b60665af6 (commit) via 09a7264cf54621b90955031a6c1052dbcedb0f1f (commit) via a112362f22a0556df2db20a6de9f63914507f1ea (commit) via 9a34a05cbfaf2f7c344b99ccd8edad7a384cb51a (commit) via 6b59dcfca094bc92dce78494e211f02294a6ce33 (commit) via d3d76f95b1121993a151ea49ac099fd5a2bd15db (commit) via 1513690bdb33f5da6eb33e8bcc71abec792e1bf6 (commit) via 90c2e1641eca21f1edbcf95aa21ee78b1c2f2d6a (commit) via 75a786b606d779b8864c8a716de79e67b5871a5a (commit) via 74225cce6298598290bee49b0d332507014f2eb6 (commit) via b2d5dd6d4fedd97e8cdf66a94672ce54430dc9a8 (commit) via 3f0d97d2af880895055f1063b637fde48b685b9b (commit) via b1c65a1e0113892e205407a1dce927613582b540 (commit) via d1c22409c54862129ddd7c8e78288ad6699e8f80 (commit) via 72d02bbfad6464c97b7271fb4ee3b78f4c9168b9 (commit) via 00567147f9e35983cba0f896a8f3af0995fc9b26 (commit) via 754129b119ee4f97cda77fdf6d8e42352c59e918 (commit) via 35c2cc5715a81db73addcc0b2ae8538df01597e5 (commit) via 3bbc9232f6bae50fc018847a4b1fda856ff1f1b5 (commit) via b1aad521407a2526c98ed5965523e8edf6880f43 (commit) via 879ad7fb6091a24a08958e5957de7fe96231b4d3 (commit) via 7d3d5dbd6c9e772281949d78787845791846b0c9 (commit) via 3a90a80c2b88e0d6e3aa403a7b655cf3bb141bc0 (commit) via c131aeaff68e52c3aa36418ae219862416c89e9b (commit) via bc4b68b4003a8385a874a4d301f25bd54028960b (commit) via 63249c6777d8b425e4ae9215e2d85f4928198b91 (commit) via e3c5d22a6f1c8b4e1443550f0480a0208bb3ed42 (commit) via 451a2f6806e4bc1c0b8c2b47e205916df509ed3f (commit) via 0b17f270bf3b0f4ff71c8dde3269054719fabe46 (commit) via 8999c8842cfc593139f960638ae3ec01ff246d99 (commit) via 32810952ccb7190822848f75b4c417f6e1b9ad5f (commit) via 77e9b64c80dc0821227ba59d483baec52a0d4aeb (commit) via c4cd0f7b952710f2f739338170ddf16a602ad6eb (commit) via 618097cb60e51fed8a08abc93c1a325d61bee291 (commit) via b151637d8866d759ae369f24b80ba847625dc700 (commit) via 64dc6c92f1b61b54744812c7de7a324ff648cdf9 (commit) via b4f6d69810f8953ebfacdfa9877abaf5a573d310 (commit) via 3343fb68e9867ac7b698cf9fda92188e3f3b5dd8 (commit) via 50a488f4f8b76173ff04672210f3e26a155ac333 (commit) via 58fcc270a78944d1c2d856f01a971640004e03d5 (commit) via f57c0abd4dd17519548f85135dd277bce56dc9b8 (commit) via 705ca9b0e68ea2d8782117c001b04b4155d1f97a (commit) via 98065e83ed74f7b7f20e98b157d76ffa654deeeb (commit) via 142eea7a3b12f8bf8e8d91d058fc09d03b7fa18e (commit) via 3e962cfae12c1fdd29e1883c9029168bdfe2f0f0 (commit) via 8a21c39670adfafdbdf2e5551b0d9436bb46bea1 (commit) via 9b56f77855de781afd53b77ce6c8ddd12c00fe76 (commit) via 0d7da887ad4d80e712bd488bd6906bd8fe4710fb (commit) via cbaab6dcb95a0f60ddbead07120e547a32638e82 (commit) via 511bdb1bd91ecfb4f0c9f4cf1c017b666bbbbaf1 (commit) via ddb3a8d9d0795f26295f1481281cad0f42caa4fe (commit) via e222360b3677690d704c469e68cf325a0844ebdb (commit) via bc3e1b292534d100ed2ee3fc29b6c56d556ba3d5 (commit) via 51d002bdef1b032bdb23c1591e05d27e22c895fc (commit) via bfc35ba280e0beb8b7129049ef14e18c2d32588d (commit) via 12eba2296f2efc3fb54a9b062aa3c35f2b0f197d (commit) via cae7b5a5b1ad97eee4ceecf40d09e0710e17c5d9 (commit) via fb5d2ce172b7621f235576cdf566d656692670b1 (commit) via d68506e9816aa2b780dbc18044cc940a28780556 (commit) via ff1dcdd6fde0a406d9fdb9edf574312d02129b1c (commit) via 1414cebe38a627e8fc6c2e3e0b1c8277f1056a20 (commit) via d81baab208e93a892049779b10433b5534945472 (commit) via 9f84d3130f687782cc69fb2c69e0a1bb9dfb630d (commit) via e1cf3df51e10284e6cfd63d1a3d9f04f2d935442 (commit) via 292a6b4e2f53e71d45104d9ee1eafda64ab1804b (commit) via e5db8f6fbba4715dc17cc1e3385cd47dcaa2cbd6 (commit) via b122df877b176fceabae4e31549847cb849c8fed (commit) via 33d8921fe3c3dfdce574ce4115a5b692d0baf47a (commit) via 841323bc3ecd3ebf3a0c129a8ffd8d407d5c8cdf (commit) via cebf16f471fe55591051d928526e293c7d7e0a23 (commit) via 6380cbd1236f76fcc6656f9f54831156fd030877 (commit) via 823c2183c22c3358a9d8d61b71993676f2c1aa5a (commit) via cd18d4be699a94949e4e5df351465326b8f6ca43 (commit) via d7cd8ad9ff5d3f2e38e4a8721a77879a4db4c7a1 (commit) via 07275e889598d7a4be4f1ca4ae849ab289982f35 (commit) via 8cc93ee11f1788332847c72afbbb2688b3206023 (commit) via bf137f5bb6c2ba2d13fd88b912705e4c2e9feb6f (commit) via b1d6635994673c9da5bba8e6b982c9227ed87cc8 (commit) via ea61e29cdbb4b50d43403c8ebb4af4c3d61ea391 (commit) via 331699d57658e651126bcbde4eb2e0753bbce1b1 (commit) via 525793ac7df9d9e6aafc3210494fe10ea56f7d23 (commit) via 71a8f9af7197c3e7cbbcc9d754a49fa752798ae1 (commit) via 6411b32c6e1c6ffa066d27b8acbb2178ec33578d (commit) via 071df633cd1fb02057ea8ab6c27c609d5f993401 (commit) via 449434145e45a0e0e5be0f35a428f047c72d9c9f (commit) via 5ad70e0974708c40992c199d758c7321d57a3e50 (commit) via e5877194d4b8c44c01f045bef5e1599e376a8e90 (commit) via 3f424d55eef2d683e16fdfee612993f5c41550ab (commit) via 9eacf9c8562eb0565febab4d979378189ac2a406 (commit) via 7c9de2bed226adf24f6a8313b5cca08e76186d77 (commit) via 533f1e118796bb44550f1270fa7b1fa4c12e030c (commit) via d3b91323f003b8f1b21a02b19215118739349177 (commit) via f0ed79fbc2abc4c75b934ae6b6f28ecef5fc7251 (commit) via a79fa1d627d96b002b199871d5ae4cc045fffee2 (commit) via 1b20d886cb1b4917adde9c1b13bd54bbedd24d2f (commit) via 52c2987084413a06da83dbd5dcb8abf6b66dcfc2 (commit) via fdeaa057c2f60b80890e24885db7b3b81bdd8ff2 (commit) via c655052559efdbc2dbfe16a69a5cef2f1d27e530 (commit) via ed0a0ba8a16fd3411a545dc53934ea08b620b35a (commit) via e843e8adf08b8d11cae9f9b40346d1680c01c180 (commit) via fafba33e8588074092ea302c2ea89c23ba188eab (commit) via e0dc69faef96155953681c74434bd1ee1b7e8f30 (commit) via 5c3a57a50de2f6ebd17aada9df5d2baa111827a1 (commit) via c3bcec9933d1656307aafc2b7c297c668bd91de6 (commit) via 401d89a036e21cf63f4a7d50e5e3b8e3ebdf58d9 (commit) via 4ad5ead0d9ddfa27c44b500787e9cff2efd645f1 (commit) via 9c4e34b28d045a0a556152b2c6980df623446e3d (commit) via 562e9f63224087b74124fb7631e863f293fc258f (commit) via c1a3a8ed51b34ba1ac559b83b25f3ad7812c18b5 (commit) via 635ba6a5b26678328d500c6dc7ebdbcaeaa71b27 (commit) via bc5c86e4811b69730b1fd6457f76dbea45b45b3c (commit) via e9007fefa0ab55f163ea5b518e4497354032741f (commit) via e12bc37dca92fb3c92cde6e1585cb85471d23c78 (commit) via cee03fd1d4de8c9435b4c9d0811d61ec4c9d8b68 (commit) via f90eb01ebb87ff25f4fca4ea878b610960ced8b9 (commit) via 6c49789edb5d4c24d679fc5e47aed4ac5470b1bf (commit) via 026344106b5282a59c6ae52f5768080df48f5651 (commit) via cec5747dc912254cdcda98b0d7185ce32f8c1bd3 (commit) via 0e067ff3baffcaf9840982aa46cacfe7508a782f (commit) via 6b406afb9af68575463fdb165f6649594c2ac04e (commit) via b06c4dc0e1905680c6776fb0eeb6758575a94dd3 (commit) via 99e7ba458b3e2fb3a4a60f589dd7d74361ad4059 (commit) via d7501a96b72a4c0d2602230cf6cb7a17fa39b8fe (commit) via 6d36ee2a20f848478c40dc2279dc77ab3aa73865 (commit) via 84fc763fce865f66014f0d3dfd32c06f3a294d8a (commit) via 9e51058b39f054c1e0803704c2fea4ac6aeb5094 (commit) via 279966278b82e1a7d0cb4977b637b7cc77b67cc9 (commit) via 9b16f05642a483ff6eddace27c07e7c75834c8c8 (commit) via d75dbbb2ec225dffac54c7247764c3256f2753dc (commit) via 1eebf112be1d6f20b65cfa8c2472bc7fbfe97682 (commit) via 9df0360568d663db4f37c6e770a4164c1bbfb522 (commit) via 67bf5c3a97b78588c69bb0ed8e44d81c39b5d8bd (commit) via 7b21511af2dd182ed3e860b319700cf7d803a8a8 (commit) via 0dcb85e89ef1c6aa6c55cc0f4528f4d57f31226f (commit) via 4335a5948f06fc70e77ffe947b6aabb538e4980a (commit) via 2d0476c7c65aab87e49a92cea65731904d26167b (commit) via 0a8db55873838c67f045d4124f566451019622a8 (commit) via 4e7418a998b81ff540a3cebbbe9736267c8b6e73 (commit) via 6a272035d8db802062b0d3f182c8494aa128d48b (commit) via 9782371f2200d3a1b6552ab9a167e80225031ed0 (commit) via fcaac741a528a9d7996ed93ba1da8befda721f6d (commit) via c2b08c797435bea89ae259dd16ebea0507c17a63 (commit) via 461f6df8a5eb5135f1494be959deef2d1931d345 (commit) via 781adc6748ba064737717c88b2cc1374cd1128ce (commit) via 65e8619acc66087a71b2ba11ee6babf1b2f59d5c (commit) via f60723b6a1adc1aa59fa50b73edc18ec474be6b6 (commit) via 0d4e628e81a9a04f537ad70bbd7d5caeb0f421f4 (commit) via 7e576fa244388aef1199d481ab7557502fb8be53 (commit) via f064979091baf471023e9a3a684cc9671de58d78 (commit) via 8fd3c449c6d06656f6515204df56997e9a37eb49 (commit) via 701b39d86e73ac50c5ee9593ded41656a4b5a26a (commit) via 842ed1fd21551de2332a86274b069b963c701eb3 (commit) via d2e895c2190ea7e99b2d076aa1bc0cb6ed7372ec (commit) via c5ae9f26a9b8c9f3bd081132839e4239101e59b5 (commit) via ec797ae23275585bf623b9b469b2bf84cbb5d7cd (commit) via f36498f3281c77df67c38508a67042c947ffebd8 (commit) via 5c1289aaba9339ccebae6abe9f3c17ce39a0fff6 (commit) via ecd6019c5d398867f32efd1270295576e7317363 (commit) via 182a817a40a1aea8f924bd7f21961139f0b3672b (commit) via ec64883ae7d2a545dafed2eb58310b24a401fa67 (commit) via 00a5af61dd2794316dbd50171b157a148a8629d2 (commit) via 762b480cc4423b85d501577c8978c8b3a201dc8e (commit) via 9ed062c1f447d5957ea7e49077be6576f5b2ec7e (commit) via 54dae9b23c4a2909788b680e4100a3f1eb5da3a7 (commit) via b7202d9446b5afdac94d1f91a7e0a45804a0cc35 (commit) via 69a840f3d84712af78267ff704b1e40ca42b77cb (commit) via 07842dc180f3abd59748b2221b94165e0624b769 (commit) via be267b17a2808f436334944364b0d47f3c084243 (commit) via 912a6366ac1fc43d254fc9301b8e653dd0ccb50f (commit) via d7a707a87fd4ea7514a7b27466797f00048496b6 (commit) via e317c06e0398b7782d88f3b47bcaa26f0be1639b (commit) via 91bc781441cafde27a9b9794eb3ecf6f0776e92f (commit) via d8c62d6a782fc6be97f47a82c8e2874eb788577a (commit) via 8ddfae9465e940dbcbd531b2966b1eba9a1fa415 (commit) via a76779bff60174dbde43e8c42d8590a6f1b300c8 (commit) via 26c8fcd7438d9bb22f7f8c13d25c234b954941db (commit) via 7b4c664bdaf4ef5906da5d507c31d5d09309e7ce (commit) via 61f3f68bc025f6805089af861ecf44d2ca090f1d (commit) via 7b5fe9c6e68bfbba5fce26c87687977c11ee7e77 (commit) via 82bca50c9c5fd587ac1ee033ad9e86335502ad94 (commit) via 3c950d6171b69175fed0d29d50f81dc367701cd0 (commit) via 6624878a88e90e09108abd157b4017666b872225 (commit) via 51d1705b87ee29f15a1c25743eb6c08f5574ac09 (commit) via 30169a3a47433aa08c56d96f628c182b09b0f936 (commit) via 03df93e99a852659e8a4350eb7c853872c738e68 (commit) via 20dab434a4aa3d0878004c7f025cdad21c0f01b6 (commit) via 9fa764c6251fe076d6467058f8fd4ef2de021dd3 (commit) via 0395279507e1cb10ed3ff10773e3f5c434e0895b (commit) via 8b71215c3d4f20308a0b36d03d66ddc5bee47d38 (commit) from 5487c71bbe42254d7eb384a3dbaa6ac2061df729 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit f824c939b9e23597a706fcaa328876b76e391f82 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Jul 26 19:58:36 2010 +0200
Remove python2.4 files at core update.
commit c4f0e01131eddfd5b6f8abf612f70128decf4e2b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Jul 25 20:20:10 2010 +0200
Add python update to core40.
commit 7924261f8f0ae888d24cfb31f18b71e1ecdcbd33 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Jul 25 20:13:50 2010 +0200
Updated python (2.7).
commit b6de67684f0495b24494b313049d8bfbe609f0a0 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Jul 25 10:37:25 2010 +0200
Add compat-wireless modules to core40.
commit 3e8c0bdbaf357d02a228bce213be3a2ca0250915 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Jul 24 21:01:20 2010 +0200
Put updates to core40.
commit 58070e2ca74912f5c79d8758c85a7fcc326c1ad7 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Jul 24 20:13:28 2010 +0200
Rootfile update: cpio.
commit 2a31c67afe9adc5d172ff338bfaa278adea7ec05 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sat Jul 24 10:59:48 2010 +0200
Mkinitcpio: fix bootproblem from usb if no other hdd is present.
commit 3e1bab93c1ab3eb6227001553640e0412c4d55eb Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Jul 23 17:40:53 2010 +0200
Fix mtab creation for grub installation.
commit 8e7778a8fca173fede71bde64c06eb48690d8a1f Merge: 31e0e08 9254944 Author: Christian Schmidt christian.schmidt@ipfire.org Date: Fri Jul 23 09:40:33 2010 +0200
Merge branch 'master' of git://git.ipfire.org/ipfire-2.x
commit 31e0e08a59b58622a6ad0b803a589427d01c0f30 Author: Christian Schmidt christian.schmidt@ipfire.org Date: Fri Jul 23 09:40:07 2010 +0200
Updated to the latest stables wireless.
commit 9254944067a862d84fc1762d2b919bb13801d8a5 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Jul 22 19:36:04 2010 +0200
Mkinitcpio: fix typo.
commit 90874a8a3a372b334ed71d0664b5b11b0f79e255 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Jul 22 18:07:12 2010 +0200
Mkinitcpio: Reduce initrd size by removing unneeded filesystems.
commit d9690aea6d81e23004c7ccd68e6cadb492131153 Author: Jan Paul Tuecking earl@ipfire.org Date: Thu Jul 22 17:51:38 2010 +0200
Fixed fr.pl to latest version
commit c679f3711abd468e8d9afa906b95f148be125fe8 Author: Jan Paul Tuecking earl@ipfire.org Date: Thu Jul 22 17:44:55 2010 +0200
Some cosmetic changes on time.cgi
commit ab8d438fdda2b682b9e08a25fd1710312e35d1f5 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jul 22 00:47:33 2010 +0200
initrd: Reset compression to normal level.
-9 will require more than 100M to decompress + kernel + initramfs content >= 150M.
commit d69c879e49632b2429a114737682c080bca96d30 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Jul 20 18:17:16 2010 +0200
Make installer system bootable from initramfs.
commit 0ff071f11c5216d9c0ff4526b7a42c47487c87be Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jul 17 18:19:38 2010 +0200
installer: Change format of initrd from squashfs to cpio.
commit f4cb450fcf85a1adf2925733d06f70ee015f7289 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Jul 17 17:57:09 2010 +0200
cpio: Update to 2.11.
commit 55b2f2eb09419c3c7b2bffd2c4e8141e3a37a9de Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jul 21 19:01:44 2010 +0200
dhcp: Oops, this version of dhcpd is very strict.
commit b64d57aac841cb0a569e9651cba629965d1e6783 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jun 30 20:37:43 2010 +0200
Default all processes to run with nice=0.
This should work much better for the CFS
commit 3bd3aa727fef40ff66935d8971c5a05e13e0baa0 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jul 21 17:50:04 2010 +0200
dhcp: Create local configuration file.
commit 8a19658294fc6207743641f09a150ccc65d30a44 Author: Jan Paul Tuecking earl@ipfire.org Date: Wed Jul 21 17:46:10 2010 +0200
Changed Update Booster (link) to Update Accelerator
commit 176b9e030d5a41b15824cb8ad4a73e9efb47a2dc Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Jul 20 07:00:17 2010 +0200
Start core40.
-----------------------------------------------------------------------
Summary of changes: config/backup/includes/pound | 1 + config/cdrom/README.txt | 7 +- config/cfgroot/general-functions.pl | 35 + config/cfgroot/graphs.pl | 16 +- config/collectd/collectd.conf | 11 +- config/collectd/collectd.custom | 1 + config/collectd/collectd.precache | 76 + config/etc/e2fsck.conf | 13 + config/etc/fstab | 6 +- config/etc/ipsec.user.conf | 2 + config/etc/ipsec.user.secrets | 2 + config/etc/modprobe.d/pcspeaker | 1 + config/guardian/guardian.pl | 8 +- config/httpd/vhosts.d/ipfire-interface-ssl.conf | 16 + config/httpd/vhosts.d/ipfire-interface.conf | 21 +- config/kernel/kernel.config.i586-ipfire | 9 +- config/kernel/kernel.config.i586-ipfire-xen | 9 +- config/menu/50-firewall.menu | 6 + config/outgoingfw/outgoingfw.pl | 135 +- config/rootfiles/common/apache2 | 1 + config/rootfiles/common/collectd | 2 + config/rootfiles/common/compat-wireless | 16 + config/rootfiles/common/configroot | 6 + config/rootfiles/common/cpio | 18 +- config/rootfiles/common/dosfstools | 25 +- config/rootfiles/common/e2fsprogs | 101 +- config/rootfiles/common/initscripts | 8 + config/rootfiles/common/ipaddr | 4 +- config/rootfiles/common/kudzu | 27 +- config/rootfiles/common/libevent | 24 + config/rootfiles/common/libpng | 10 +- config/rootfiles/common/libxml2 | 10 +- config/rootfiles/common/libxslt | 10 +- config/rootfiles/common/linux | 14 +- config/rootfiles/common/linux-firmware | 6 - config/rootfiles/common/mISDN | 40 +- config/rootfiles/common/mISDNuser | 31 +- config/rootfiles/common/misc-progs | 6 +- config/rootfiles/common/ncurses | 22 +- config/rootfiles/common/newt | 4 +- config/rootfiles/common/pcre | 12 +- config/rootfiles/common/ppp | 25 +- config/rootfiles/common/python | 7244 ++++++++++++-------- config/rootfiles/common/python-setuptools | 90 +- config/rootfiles/common/reiser4progs | 15 +- config/rootfiles/common/reiserfsprogs | 10 +- config/rootfiles/common/rp-pppoe | 33 - config/rootfiles/common/smartmontools | 32 +- config/rootfiles/common/snort | 675 +-- config/rootfiles/common/squidguard | 3 +- config/rootfiles/common/stage2 | 4 + config/rootfiles/common/strongswan | 15 + config/rootfiles/common/uClibc | 11 + config/rootfiles/common/usb_modeswitch | 5 +- config/rootfiles/common/zlib | 2 +- config/rootfiles/{oldcore/24 => core/38}/exclude | 0 .../{oldcore/32 => core/38}/filelists/Net_SSLeay | 0 config/rootfiles/core/38/filelists/collectd | 1 + .../28 => core/38}/filelists/compat-wireless | 0 config/rootfiles/core/38/filelists/dosfstools | 1 + config/rootfiles/core/38/filelists/e2fsprogs | 1 + config/rootfiles/core/38/filelists/files | 169 + config/rootfiles/core/38/filelists/fuse | 1 + config/rootfiles/core/38/filelists/grub | 1 + .../{oldcore/28 => core/38}/filelists/iptables | 0 config/rootfiles/core/38/filelists/liboping | 1 + .../{oldcore/28 => core/38}/filelists/linux | 0 .../28 => core/38}/filelists/linux-firmware | 0 config/rootfiles/core/38/filelists/mISDN | 1 + .../{oldcore/28 => core/38}/filelists/mISDNuser | 0 config/rootfiles/core/38/filelists/menu | 8 + .../{oldcore/34 => core/38}/filelists/mkinitcpio | 0 .../{oldcore/36 => core/38}/filelists/openssh | 0 .../{oldcore/28 => core/38}/filelists/openssl | 0 config/rootfiles/core/38/filelists/pcre | 1 + config/rootfiles/core/38/filelists/reiser4progs | 1 + config/rootfiles/core/38/filelists/reiserfsprogs | 1 + config/rootfiles/core/38/filelists/rrdtool | 1 + .../34 => core/38}/filelists/smartmontools | 0 .../{oldcore/28 => core/38}/filelists/snort | 0 config/rootfiles/core/38/filelists/strongswan | 1 + .../34 => core/38}/filelists/usb_modeswitch | 0 config/rootfiles/core/38/filelists/xz | 1 + config/rootfiles/core/38/filelists/zlib | 1 + config/rootfiles/{oldcore/24 => core/38}/meta | 0 config/rootfiles/core/38/update.sh | 277 + config/rootfiles/core/39/exclude | 2 + config/rootfiles/core/39/filelists/files | 17 + config/rootfiles/core/39/filelists/libevent | 1 + config/rootfiles/core/39/filelists/libpng | 1 + config/rootfiles/core/39/filelists/ppp | 1 + config/rootfiles/core/39/filelists/strongswan | 1 + config/rootfiles/core/39/filelists/terminfo-screen | 11 + config/rootfiles/{oldcore/24 => core/39}/meta | 0 config/rootfiles/core/39/update.sh | 48 + config/rootfiles/{oldcore/24 => core/40}/exclude | 0 config/rootfiles/core/40/filelists/compat-wireless | 206 + config/rootfiles/core/40/filelists/files | 14 + .../{oldcore/34 => core/40}/filelists/mkinitcpio | 0 config/rootfiles/core/40/filelists/python | 1 + config/rootfiles/{oldcore/24 => core/40}/meta | 0 config/rootfiles/core/40/update.sh | 51 + config/rootfiles/oldcore/37/update.sh | 15 +- config/rootfiles/packages/alsa | 4 +- config/rootfiles/packages/amavisd | 2 +- config/rootfiles/packages/asterisk | 2 +- config/rootfiles/packages/clamav | 15 +- config/rootfiles/packages/cryptsetup-disabled | 10 - config/rootfiles/packages/ddrescue | 3 + config/rootfiles/packages/esniper | 1078 --- config/rootfiles/packages/fetchmail | 8 +- config/rootfiles/packages/gnump3d | 2 +- config/rootfiles/packages/gutenprint | 2 +- config/rootfiles/packages/hostapd | 2 +- config/rootfiles/packages/icecc | 2 +- config/rootfiles/packages/ipfireseeder | 2 +- config/rootfiles/packages/lcr | 2 +- config/rootfiles/packages/libtiff | 407 +- config/rootfiles/packages/linux-xen | 185 +- config/rootfiles/packages/mc | 90 +- config/rootfiles/packages/minicom | 26 + config/rootfiles/packages/mldonkey | 2 +- config/rootfiles/packages/netsnmpd | 2 +- config/rootfiles/packages/nfs | 69 +- config/rootfiles/packages/nut | 18 +- config/rootfiles/packages/openvmtools | 39 + config/rootfiles/packages/portmap | 2 +- config/rootfiles/packages/pound | 8 + config/rootfiles/packages/python-clientform | 2 +- config/rootfiles/packages/python-feedparser | 5 +- config/rootfiles/packages/python-mechanize | 2 +- config/rootfiles/packages/python-rssdler | 5 +- config/rootfiles/packages/spamassassin | 2 +- config/rootfiles/packages/tcptrack | 2 - config/rootfiles/packages/teamspeak | 2 +- config/rootfiles/packages/tftpd | 2 +- config/rootfiles/packages/urlgrabber | 34 +- config/rootfiles/packages/vdradmin | 39 +- config/rootfiles/packages/watchdog | 2 + config/rootfiles/packages/x11libs-disabled | 2827 -------- config/rootfiles/packages/xen-disabled | 667 -- config/snort/snort.conf | 971 +--- config/squidclamav/squidclamav.conf | 2 +- config/syslinux/syslinux.cfg | 8 +- config/udev/blacklist | 28 - doc/packages-list.txt | 124 +- html/cgi-bin/connections.cgi | 2 +- html/cgi-bin/dhcp.cgi | 1 + html/cgi-bin/extrahd.cgi | 2 +- html/cgi-bin/ids.cgi | 229 +- html/cgi-bin/iptables.cgi | 11 +- html/cgi-bin/outgoingfw.cgi | 185 +- html/cgi-bin/outgoinggrp.cgi | 212 + html/cgi-bin/ovpnmain.cgi | 85 +- html/cgi-bin/pppsetup.cgi | 19 +- html/cgi-bin/samba.cgi | 12 +- html/cgi-bin/services.cgi | 26 +- html/cgi-bin/time.cgi | 33 +- html/cgi-bin/updatexlrator.cgi | 50 +- html/cgi-bin/urlfilter.cgi | 22 +- html/cgi-bin/vpnmain.cgi | 60 +- html/cgi-bin/wireless.cgi | 2 +- html/cgi-bin/wlanap.cgi | 12 +- html/html/images/go-down.png | Bin 683 -> 652 bytes html/html/themes/ipfire/include/functions.pl | 4 +- langs/de/cgi-bin/de.pl | 29 +- langs/en/cgi-bin/en.pl | 25 +- langs/es/cgi-bin/es.pl | 2136 ++++++ langs/es/install/lang_es.c | 566 ++ langs/fr/cgi-bin/fr.pl | 29 +- langs/list | 3 +- lfs/GeoIP | 4 +- lfs/Net_SSLeay | 4 +- lfs/alsa | 18 +- lfs/atl1c | 61 - lfs/atl2 | 86 - lfs/clamav | 6 +- lfs/compat-wireless | 51 +- lfs/configroot | 11 +- lfs/cpio | 7 +- lfs/cryptsetup | 85 - lfs/cyrus-imapd | 2 +- lfs/ddrescue | 84 + lfs/dosfstools | 7 +- lfs/e1000 | 90 + lfs/e1000e | 9 +- lfs/e2fsprogs | 4 +- lfs/elinks | 6 +- lfs/esniper | 91 - lfs/et131x | 61 - lfs/faad | 84 - lfs/fetchmail | 7 +- lfs/flash-images | 7 + lfs/gcc | 3 +- lfs/grub | 1 + lfs/guardian | 2 +- lfs/hostapd | 6 +- lfs/hso | 87 - lfs/initrd | 9 +- lfs/initscripts | 5 + lfs/ipfireseeder | 6 +- lfs/kvm-kmod | 4 +- lfs/lcr | 10 +- lfs/libevent | 77 + lfs/libpng | 8 +- lfs/libtiff | 6 +- lfs/linux | 73 +- lfs/mISDN | 23 +- lfs/mISDNuser | 9 +- lfs/mc | 13 +- lfs/memtest | 5 +- lfs/minicom | 86 + lfs/mkinitcpio | 4 +- lfs/mpd | 2 +- lfs/nfs | 32 +- lfs/nut | 5 +- lfs/open-vm-tools | 82 - lfs/openssl | 4 +- lfs/openswan | 122 - lfs/openvmtools | 92 + lfs/openvpn | 4 +- lfs/postfix | 11 +- lfs/pound | 86 + lfs/ppp | 4 +- lfs/python | 6 +- lfs/python-clientform | 2 +- lfs/python-feedparser | 2 +- lfs/python-mechanize | 2 +- lfs/python-rssdler | 2 +- lfs/python-setuptools | 8 +- lfs/qemu | 6 +- lfs/qemu-kqemu | 6 +- lfs/r8101 | 43 +- lfs/r8168 | 6 +- lfs/r8169 | 6 +- lfs/reiser4progs | 8 +- lfs/reiserfsprogs | 8 +- lfs/rp-pppoe | 77 - lfs/samba | 8 +- lfs/smartmontools | 4 +- lfs/snort | 6 +- lfs/squid | 8 +- lfs/squidclamav | 6 +- lfs/squidguard | 4 +- lfs/strongswan | 14 +- lfs/tcptrack | 84 - lfs/usb_modeswitch | 8 +- lfs/v4l-dvb | 5 +- lfs/vdradmin | 8 +- lfs/watchdog | 6 +- lfs/x11libs | 97 - lfs/xen | 95 - make.sh | 50 +- src/atl1c/Makefile | 13 - src/atl1c/atl1c.h | 605 -- src/atl1c/atl1c_ethtool.c | 319 - src/atl1c/atl1c_hw.c | 527 -- src/atl1c/atl1c_hw.h | 859 --- src/atl1c/atl1c_main.c | 2801 -------- src/et131x/Kconfig | 18 - src/et131x/Makefile | 25 - src/et131x/README | 25 - src/et131x/et1310_address_map.h | 2399 ------- src/et131x/et1310_eeprom.c | 480 -- src/et131x/et1310_eeprom.h | 89 - src/et131x/et1310_jagcore.c | 220 - src/et131x/et1310_jagcore.h | 112 - src/et131x/et1310_mac.c | 792 --- src/et131x/et1310_mac.h | 93 - src/et131x/et1310_phy.c | 1281 ---- src/et131x/et1310_phy.h | 910 --- src/et131x/et1310_pm.c | 207 - src/et131x/et1310_pm.h | 125 - src/et131x/et1310_rx.c | 1391 ---- src/et131x/et1310_rx.h | 373 - src/et131x/et1310_tx.c | 1525 ---- src/et131x/et1310_tx.h | 242 - src/et131x/et131x_adapter.h | 347 - src/et131x/et131x_config.c | 325 - src/et131x/et131x_config.h | 67 - src/et131x/et131x_debug.c | 218 - src/et131x/et131x_debug.h | 201 - src/et131x/et131x_defs.h | 128 - src/et131x/et131x_initpci.c | 1046 --- src/et131x/et131x_initpci.h | 73 - src/et131x/et131x_isr.c | 488 -- src/et131x/et131x_isr.h | 65 - src/et131x/et131x_netdev.c | 856 --- src/et131x/et131x_netdev.h | 64 - src/et131x/et131x_version.h | 81 - src/hwdata/pci.ids | 1252 +++- src/hwdata/usb.ids | 1392 ++++- src/initscripts/helper/getdnsfromdhcpc.pl | 2 +- src/initscripts/init.d/dnsmasq | 8 +- src/initscripts/init.d/firewall | 4 +- src/initscripts/init.d/functions | 10 +- src/initscripts/init.d/leds | 70 + src/initscripts/init.d/mISDN | 11 +- src/initscripts/init.d/modules | 11 +- src/initscripts/init.d/network | 7 +- src/initscripts/init.d/networking/dhcpcd.exe | 4 +- src/initscripts/init.d/networking/red | 9 +- src/initscripts/init.d/networking/red.up/50-ovpn | 2 +- src/initscripts/init.d/ntp | 7 + src/initscripts/init.d/openvmtools | 64 + src/initscripts/init.d/pound | 58 + src/initscripts/init.d/rc | 6 +- src/initscripts/init.d/snort | 86 +- src/initscripts/sysconfig/modules | 4 + src/install+setup/install/main.c | 17 +- src/install+setup/install/mountdest.sh | 27 +- src/install+setup/libsmooth/main.c | 1 + src/install+setup/setup/passwords.c | 2 +- src/misc-progs/Makefile | 2 +- src/misc-progs/ipsecctrl.c | 74 +- src/misc-progs/rebuildhosts.c | 330 +- src/misc-progs/syslogdctrl.c | 11 +- src/misc-progs/updxlratorctrl.c | 33 + src/misc-progs/urlfilterctrl.c | 33 + src/misc-progs/wirelessctrl.c | 7 +- src/pakfire/lib/functions.pl | 2 +- src/pakfire/pakfire.conf | 2 +- src/paks/esniper/install.sh | 35 - src/paks/esniper/uninstall.sh | 29 - src/paks/linux-xen/install.sh | 6 +- src/paks/linux-xen/uninstall.sh | 4 +- src/paks/pound/install.sh | 32 + src/paks/pound/uninstall.sh | 29 + src/paks/{esniper => pound}/update.sh | 0 src/paks/squidclamav/update.sh | 13 +- src/patches/Python-2.4.3-gdbm-1.patch | 32 - src/patches/Python-2.7-gdbm-1.patch | 21 + src/patches/atl2_add_tx_bytes_statistic.patch | 15 - src/patches/ccache-2.4.patch | 12 - .../compat-wireless-2.6.34-usbnet_compile.patch | 28 + src/patches/compat-xen-1.patch | 67 - src/patches/compat-xen-2.patch | 67 - src/patches/cpio-2.6-security_fixes-1.patch | 370 - src/patches/grub-0.97_grub-install_virtio.patch | 55 +- src/patches/hostapd-usb_hw_did_not_ack.patch | 21 - src/patches/imq-skbuff.patch | 65 - .../ip_conntrack_standalone-patch-for-ipfire.patch | 11 - .../iptables-1.4.1.1-ipp2p-0.8.2-pomng.patch | 481 -- src/patches/iptables-1.4.2-imq.patch | 99 - src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch | 96 +- src/patches/linux-2.6.24-leds-alix.patch | 203 - src/patches/linux-2.6.27-atom-clockmod.patch | 12 - src/patches/linux-2.6.27-atom-coretemp.patch | 58 - src/patches/linux-2.6.27-imq.patch | 1150 ---- .../linux-2.6.27.19-ipp2p-0.8.2-pomng.patch | 980 --- src/patches/linux-2.6.27.21-imq-test3-xen.patch | 1212 ---- src/patches/linux-2.6.27.21-imq-test3.patch | 1279 ---- ...ux-2.6.27.25-option_add_vf-k3565-z_usbids.patch | 26 - .../linux-2.6.27.39_e100-wakeonlan-fix.patch | 73 - ...inux-2.6.32-ath5k_fix_setup_for_CAB_queue.patch | 75 - src/patches/linux-2.6.32.11-netdev-1.patch | 478 ++ ...inux-2.6.32.11-option_add_vodafone_usbids.patch | 23 + src/patches/linux-2.6.32.8-xen-patch-fixes.patch | 13 - src/patches/mISDN-enable_disabled_cards.patch | 20 - src/patches/mISDN-hfcusb_bchannels.patch | 56 - src/patches/openssh-4.7p1-padlock.patch | 141 - src/patches/openssl-0.9.8g-engine-padlock.patch | 24 - src/patches/openssl-0.9.8g-sha-padlock.patch | 620 -- src/patches/openswan-2.6.16-clear-1.patch | 21 - src/patches/openswan-2.6.16-startklips-1.patch | 64 - src/patches/openswan-2.6.16-updown.klips-1.patch | 30 - .../openswan-2.6.23-updown-add_ipfire-snat.patch | 24 - src/patches/openswan-2.6.24_noxmlto.patch | 68 - .../portmap-5beta-compilation_fixes-3.patch | 705 -- src/patches/portmap-5beta-glibc_errno_fix-1.patch | 17 - src/patches/skbuff-xen-imq.diff | 21 - src/patches/strongswan-4.3.6_ipfire.patch | 264 - src/patches/strongswan-4.4.0_ipfire.patch | 286 + src/patches/suse_xen_series.conf | 1751 ----- src/patches/sysklogd-1.4.1-8bit-1.patch | 23 - src/patches/sysklogd-1.4.1-fixes-1.patch | 833 --- .../sysklogd-1.4.1_xen_empty_buffer_check.patch | 30 - src/patches/xen-co_assignment.patch | 22 - src/patches/xen-cpufreq.patch | 19 - src/patches/xen-passthrough-fix.patch | 36 - src/patches/xend-config.patch | 99 - src/r8101/Makefile | 12 - src/r8101/r8101.c | 3464 ---------- src/scripts/asterisk | Bin 1027532 -> 0 bytes src/scripts/backupiso | 2 +- src/scripts/vpn-watch | 40 +- 386 files changed, 14678 insertions(+), 46607 deletions(-) create mode 100644 config/backup/includes/pound create mode 100644 config/collectd/collectd.custom create mode 100644 config/collectd/collectd.precache create mode 100644 config/etc/e2fsck.conf create mode 100644 config/etc/ipsec.user.conf create mode 100644 config/etc/ipsec.user.secrets create mode 100644 config/etc/modprobe.d/pcspeaker create mode 100644 config/rootfiles/common/compat-wireless create mode 100644 config/rootfiles/common/libevent delete mode 100644 config/rootfiles/common/rp-pppoe copy config/rootfiles/{oldcore/24 => core/38}/exclude (100%) copy config/rootfiles/{oldcore/32 => core/38}/filelists/Net_SSLeay (100%) create mode 120000 config/rootfiles/core/38/filelists/collectd copy config/rootfiles/{oldcore/28 => core/38}/filelists/compat-wireless (100%) create mode 120000 config/rootfiles/core/38/filelists/dosfstools create mode 120000 config/rootfiles/core/38/filelists/e2fsprogs create mode 100644 config/rootfiles/core/38/filelists/files create mode 120000 config/rootfiles/core/38/filelists/fuse create mode 120000 config/rootfiles/core/38/filelists/grub copy config/rootfiles/{oldcore/28 => core/38}/filelists/iptables (100%) create mode 120000 config/rootfiles/core/38/filelists/liboping copy config/rootfiles/{oldcore/28 => core/38}/filelists/linux (100%) copy config/rootfiles/{oldcore/28 => core/38}/filelists/linux-firmware (100%) create mode 120000 config/rootfiles/core/38/filelists/mISDN copy config/rootfiles/{oldcore/28 => core/38}/filelists/mISDNuser (100%) create mode 100644 config/rootfiles/core/38/filelists/menu copy config/rootfiles/{oldcore/34 => core/38}/filelists/mkinitcpio (100%) copy config/rootfiles/{oldcore/36 => core/38}/filelists/openssh (100%) copy config/rootfiles/{oldcore/28 => core/38}/filelists/openssl (100%) create mode 120000 config/rootfiles/core/38/filelists/pcre create mode 120000 config/rootfiles/core/38/filelists/reiser4progs create mode 120000 config/rootfiles/core/38/filelists/reiserfsprogs create mode 120000 config/rootfiles/core/38/filelists/rrdtool copy config/rootfiles/{oldcore/34 => core/38}/filelists/smartmontools (100%) copy config/rootfiles/{oldcore/28 => core/38}/filelists/snort (100%) create mode 120000 config/rootfiles/core/38/filelists/strongswan copy config/rootfiles/{oldcore/34 => core/38}/filelists/usb_modeswitch (100%) create mode 120000 config/rootfiles/core/38/filelists/xz create mode 120000 config/rootfiles/core/38/filelists/zlib copy config/rootfiles/{oldcore/24 => core/38}/meta (100%) create mode 100644 config/rootfiles/core/38/update.sh create mode 100644 config/rootfiles/core/39/exclude create mode 100644 config/rootfiles/core/39/filelists/files create mode 120000 config/rootfiles/core/39/filelists/libevent create mode 120000 config/rootfiles/core/39/filelists/libpng create mode 120000 config/rootfiles/core/39/filelists/ppp create mode 120000 config/rootfiles/core/39/filelists/strongswan create mode 100644 config/rootfiles/core/39/filelists/terminfo-screen copy config/rootfiles/{oldcore/24 => core/39}/meta (100%) create mode 100644 config/rootfiles/core/39/update.sh copy config/rootfiles/{oldcore/24 => core/40}/exclude (100%) create mode 100644 config/rootfiles/core/40/filelists/compat-wireless create mode 100644 config/rootfiles/core/40/filelists/files copy config/rootfiles/{oldcore/34 => core/40}/filelists/mkinitcpio (100%) create mode 120000 config/rootfiles/core/40/filelists/python copy config/rootfiles/{oldcore/24 => core/40}/meta (100%) create mode 100644 config/rootfiles/core/40/update.sh delete mode 100644 config/rootfiles/packages/cryptsetup-disabled create mode 100644 config/rootfiles/packages/ddrescue delete mode 100644 config/rootfiles/packages/esniper create mode 100644 config/rootfiles/packages/minicom create mode 100644 config/rootfiles/packages/openvmtools create mode 100644 config/rootfiles/packages/pound delete mode 100644 config/rootfiles/packages/tcptrack delete mode 100644 config/rootfiles/packages/x11libs-disabled delete mode 100644 config/rootfiles/packages/xen-disabled create mode 100644 html/cgi-bin/outgoinggrp.cgi create mode 100644 langs/es/cgi-bin/es.pl create mode 100644 langs/es/install/lang_es.c delete mode 100644 lfs/atl1c delete mode 100644 lfs/atl2 delete mode 100644 lfs/cryptsetup create mode 100644 lfs/ddrescue create mode 100644 lfs/e1000 delete mode 100644 lfs/esniper delete mode 100644 lfs/et131x delete mode 100644 lfs/faad delete mode 100644 lfs/hso create mode 100644 lfs/libevent create mode 100644 lfs/minicom delete mode 100644 lfs/open-vm-tools delete mode 100644 lfs/openswan create mode 100644 lfs/openvmtools create mode 100644 lfs/pound delete mode 100644 lfs/rp-pppoe delete mode 100644 lfs/tcptrack delete mode 100644 lfs/x11libs delete mode 100644 lfs/xen delete mode 100644 src/atl1c/Makefile delete mode 100644 src/atl1c/atl1c.h delete mode 100644 src/atl1c/atl1c_ethtool.c delete mode 100644 src/atl1c/atl1c_hw.c delete mode 100644 src/atl1c/atl1c_hw.h delete mode 100644 src/atl1c/atl1c_main.c delete mode 100644 src/et131x/Kconfig delete mode 100644 src/et131x/Makefile delete mode 100644 src/et131x/README delete mode 100644 src/et131x/et1310_address_map.h delete mode 100644 src/et131x/et1310_eeprom.c delete mode 100644 src/et131x/et1310_eeprom.h delete mode 100644 src/et131x/et1310_jagcore.c delete mode 100644 src/et131x/et1310_jagcore.h delete mode 100644 src/et131x/et1310_mac.c delete mode 100644 src/et131x/et1310_mac.h delete mode 100644 src/et131x/et1310_phy.c delete mode 100644 src/et131x/et1310_phy.h delete mode 100644 src/et131x/et1310_pm.c delete mode 100644 src/et131x/et1310_pm.h delete mode 100644 src/et131x/et1310_rx.c delete mode 100644 src/et131x/et1310_rx.h delete mode 100644 src/et131x/et1310_tx.c delete mode 100644 src/et131x/et1310_tx.h delete mode 100644 src/et131x/et131x_adapter.h delete mode 100644 src/et131x/et131x_config.c delete mode 100644 src/et131x/et131x_config.h delete mode 100644 src/et131x/et131x_debug.c delete mode 100644 src/et131x/et131x_debug.h delete mode 100644 src/et131x/et131x_defs.h delete mode 100644 src/et131x/et131x_initpci.c delete mode 100644 src/et131x/et131x_initpci.h delete mode 100644 src/et131x/et131x_isr.c delete mode 100644 src/et131x/et131x_isr.h delete mode 100644 src/et131x/et131x_netdev.c delete mode 100644 src/et131x/et131x_netdev.h delete mode 100644 src/et131x/et131x_version.h create mode 100644 src/initscripts/init.d/leds create mode 100755 src/initscripts/init.d/openvmtools create mode 100644 src/initscripts/init.d/pound create mode 100644 src/misc-progs/updxlratorctrl.c create mode 100644 src/misc-progs/urlfilterctrl.c delete mode 100644 src/paks/esniper/install.sh delete mode 100644 src/paks/esniper/uninstall.sh create mode 100644 src/paks/pound/install.sh create mode 100644 src/paks/pound/uninstall.sh rename src/paks/{esniper => pound}/update.sh (100%) delete mode 100644 src/patches/Python-2.4.3-gdbm-1.patch create mode 100644 src/patches/Python-2.7-gdbm-1.patch delete mode 100644 src/patches/atl2_add_tx_bytes_statistic.patch delete mode 100644 src/patches/ccache-2.4.patch create mode 100644 src/patches/compat-wireless-2.6.34-usbnet_compile.patch delete mode 100644 src/patches/compat-xen-1.patch delete mode 100644 src/patches/compat-xen-2.patch delete mode 100644 src/patches/cpio-2.6-security_fixes-1.patch delete mode 100644 src/patches/hostapd-usb_hw_did_not_ack.patch delete mode 100644 src/patches/imq-skbuff.patch delete mode 100644 src/patches/ip_conntrack_standalone-patch-for-ipfire.patch delete mode 100644 src/patches/iptables-1.4.1.1-ipp2p-0.8.2-pomng.patch delete mode 100644 src/patches/iptables-1.4.2-imq.patch delete mode 100644 src/patches/linux-2.6.24-leds-alix.patch delete mode 100644 src/patches/linux-2.6.27-atom-clockmod.patch delete mode 100644 src/patches/linux-2.6.27-atom-coretemp.patch delete mode 100644 src/patches/linux-2.6.27-imq.patch delete mode 100644 src/patches/linux-2.6.27.19-ipp2p-0.8.2-pomng.patch delete mode 100644 src/patches/linux-2.6.27.21-imq-test3-xen.patch delete mode 100644 src/patches/linux-2.6.27.21-imq-test3.patch delete mode 100644 src/patches/linux-2.6.27.25-option_add_vf-k3565-z_usbids.patch delete mode 100644 src/patches/linux-2.6.27.39_e100-wakeonlan-fix.patch delete mode 100644 src/patches/linux-2.6.32-ath5k_fix_setup_for_CAB_queue.patch create mode 100644 src/patches/linux-2.6.32.11-netdev-1.patch create mode 100644 src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch delete mode 100644 src/patches/linux-2.6.32.8-xen-patch-fixes.patch delete mode 100644 src/patches/mISDN-enable_disabled_cards.patch delete mode 100644 src/patches/mISDN-hfcusb_bchannels.patch delete mode 100644 src/patches/openssh-4.7p1-padlock.patch delete mode 100644 src/patches/openssl-0.9.8g-engine-padlock.patch delete mode 100644 src/patches/openssl-0.9.8g-sha-padlock.patch delete mode 100644 src/patches/openswan-2.6.16-clear-1.patch delete mode 100644 src/patches/openswan-2.6.16-startklips-1.patch delete mode 100644 src/patches/openswan-2.6.16-updown.klips-1.patch delete mode 100644 src/patches/openswan-2.6.23-updown-add_ipfire-snat.patch delete mode 100644 src/patches/openswan-2.6.24_noxmlto.patch delete mode 100644 src/patches/portmap-5beta-compilation_fixes-3.patch delete mode 100644 src/patches/portmap-5beta-glibc_errno_fix-1.patch delete mode 100644 src/patches/skbuff-xen-imq.diff delete mode 100644 src/patches/strongswan-4.3.6_ipfire.patch create mode 100644 src/patches/strongswan-4.4.0_ipfire.patch delete mode 100644 src/patches/suse_xen_series.conf delete mode 100644 src/patches/sysklogd-1.4.1-8bit-1.patch delete mode 100644 src/patches/sysklogd-1.4.1-fixes-1.patch delete mode 100644 src/patches/sysklogd-1.4.1_xen_empty_buffer_check.patch delete mode 100644 src/patches/xen-co_assignment.patch delete mode 100644 src/patches/xen-cpufreq.patch delete mode 100644 src/patches/xen-passthrough-fix.patch delete mode 100644 src/patches/xend-config.patch delete mode 100644 src/r8101/Makefile delete mode 100644 src/r8101/r8101.c delete mode 100644 src/scripts/asterisk
Difference in files: diff --git a/config/backup/includes/pound b/config/backup/includes/pound new file mode 100644 index 0000000..a1ec94b --- /dev/null +++ b/config/backup/includes/pound @@ -0,0 +1 @@ +/etc/pound.cfg diff --git a/config/cdrom/README.txt b/config/cdrom/README.txt index 5f0c7ae..e342bc4 100644 --- a/config/cdrom/README.txt +++ b/config/cdrom/README.txt @@ -5,10 +5,9 @@ Installation ------------
Please read the IPFire Installation manual before installing the firewall. -This document is located on our wiki (http://wiki.ipfire.org/Installation) -but temporarily only available in german. It will guide you through -the installation process and will help you make the necessary -decisions during the installation process. +This document is located on our wiki (http://wiki.ipfire.org/en/installation/start) +It will guide you through the installation process and will help +you make the necessary decisions during the installation process.
License ------- diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index a5862e8..84aa8aa 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -103,6 +103,41 @@ sub writehash close FILE; }
+sub writehashpart +{ + # This function replaces the given hash in the original hash by keeping the old + # content and just replacing the new content + + my $filename = $_[0]; + my $newhash = $_[1]; + my %oldhash; + my ($var, $val); + + readhash("${filename}", %oldhash); + + foreach $var (keys %$newhash){ + $oldhash{$var}=$newhash->{$var}; + } + + # write cgi vars to the file. + open(FILE, ">${filename}") or die "Unable to write file $filename"; + flock FILE, 2; + foreach $var (keys %oldhash) + { + if ( $var eq "__CGI__"){next;} + $val = $oldhash{$var}; + # Darren Critchley Jan 17, 2003 added the following because when submitting with a graphic, the x and y + # location of the mouse are submitted as well, this was being written to the settings file causing + # some serious grief! This skips the variable.x and variable.y + if (!($var =~ /(.x|.y)$/)) { + if ($val =~ / /) { + $val = "'$val'"; } + if (!($var =~ /^ACTION/)) { + print FILE "${var}=${val}\n"; } + } + } + close FILE; +}
sub age { diff --git a/config/cfgroot/graphs.pl b/config/cfgroot/graphs.pl index e629059..c300b0a 100644 --- a/config/cfgroot/graphs.pl +++ b/config/cfgroot/graphs.pl @@ -249,7 +249,7 @@ sub updateloadgraph { "-h 125", "-l 0", "-r", - "-t Load Average".$Lang::tr{'graph per'}." ".$Lang::tr{$period}, + "-t Load Average ".$Lang::tr{'graph per'}." ".$Lang::tr{$period}, "-v ".$Lang::tr{'processes'}, "--color=SHADEA".$color{"color19"}, "--color=SHADEB".$color{"color19"}, @@ -355,8 +355,8 @@ sub updateswapgraph { "--color=SHADEA".$color{"color19"}, "--color=SHADEB".$color{"color19"}, "--color=BACK".$color{"color21"}, - "DEF:used=".$mainsettings{'RRDLOG'}."/collectd/localhost/swap/swap-used.rrd:value:AVERAGE", "DEF:free=".$mainsettings{'RRDLOG'}."/collectd/localhost/swap/swap-free.rrd:value:AVERAGE", + "DEF:used=".$mainsettings{'RRDLOG'}."/collectd/localhost/swap/swap-used.rrd:value:AVERAGE", "DEF:cached=".$mainsettings{'RRDLOG'}."/collectd/localhost/swap/swap-cached.rrd:value:AVERAGE", "CDEF:total=used,free,cached,+,+", "CDEF:usedpct=100,used,total,/,*", @@ -372,16 +372,16 @@ sub updateswapgraph { "GPRINT:usedpct:AVERAGE:%3.2lf%%", "GPRINT:usedpct:MIN:%3.2lf%%", "GPRINT:usedpct:LAST:%3.2lf%%\j", - "STACK:freepct".$color{"color12"}."A0:".sprintf("%-25s",$Lang::tr{'free swap'}), - "GPRINT:freepct:MAX:%3.2lf%%", - "GPRINT:freepct:AVERAGE:%3.2lf%%", - "GPRINT:freepct:MIN:%3.2lf%%", - "GPRINT:freepct:LAST:%3.2lf%%\j", "STACK:cachedpct".$color{"color13"}."A0:".sprintf("%-25s",$Lang::tr{'cached swap'}), "GPRINT:cachedpct:MAX:%3.2lf%%", "GPRINT:cachedpct:AVERAGE:%3.2lf%%", "GPRINT:cachedpct:MIN:%3.2lf%%", "GPRINT:cachedpct:LAST:%3.2lf%%\j", + "STACK:freepct".$color{"color12"}."A0:".sprintf("%-25s",$Lang::tr{'free swap'}), + "GPRINT:freepct:MAX:%3.2lf%%", + "GPRINT:freepct:AVERAGE:%3.2lf%%", + "GPRINT:freepct:MIN:%3.2lf%%", + "GPRINT:freepct:LAST:%3.2lf%%\j", ); $ERROR = RRDs::error; print "Error in RRD::graph for memory: ".$ERROR."\n" if $ERROR; @@ -1042,7 +1042,7 @@ sub updatecpufreqgraph { # Generate the Thermal Zone Temp CPU Graph
sub updatethermaltempgraph { - my $thermalcount = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/thermal-thermal_zone* | wc -l`; + my $thermalcount = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/thermal-thermal_zone* | wc -l 2>/dev/null`; my $period = $_[0]; my @command = ( "-", diff --git a/config/collectd/collectd.conf b/config/collectd/collectd.conf index b0166e5..939dd4b 100644 --- a/config/collectd/collectd.conf +++ b/config/collectd/collectd.conf @@ -10,7 +10,7 @@ PIDFile "/var/run/collectd.pid" PluginDir "/usr/lib/collectd" TypesDB "/usr/share/collectd/types.db" Interval 30 -ReadThreads 3 +ReadThreads 1
LoadPlugin cpu #LoadPlugin cpufreq @@ -27,6 +27,9 @@ LoadPlugin sensors LoadPlugin swap LoadPlugin syslog #LoadPlugin wireless +LoadPlugin match_regex + +include "/etc/collectd.precache"
<Plugin interface> Interface "lo" @@ -46,9 +49,6 @@ LoadPlugin syslog Chain filter FORWARD DROP_OUTPUT Chain filter PSCAN DROP_PScan Chain filter NEWNOTSYN DROP_NEWNOTSYN - Chain filter OUTGOINGFW DROP_OUTGOINGFW - Chain filter INPUT DROP_Wirelessinput - Chain filter FORWARD DROP_Wirelessforward </Plugin>
#<Plugin logfile> @@ -58,6 +58,8 @@ LoadPlugin syslog
<Plugin ping> Host "gateway" + interval 30 + timeout 10 </Plugin>
<Plugin processes> @@ -87,3 +89,4 @@ LoadPlugin syslog </Plugin>
#include "/etc/collectd.thermal" +include "/etc/collectd.custom" diff --git a/config/collectd/collectd.custom b/config/collectd/collectd.custom new file mode 100644 index 0000000..7443bf3 --- /dev/null +++ b/config/collectd/collectd.custom @@ -0,0 +1 @@ +# Use this file to add custom configs and rules for collectd diff --git a/config/collectd/collectd.precache b/config/collectd/collectd.precache new file mode 100644 index 0000000..8c4a5bb --- /dev/null +++ b/config/collectd/collectd.precache @@ -0,0 +1,76 @@ +PreCacheChain "PreCache" +<Chain "PostCache"> + <Rule "ignore_ps_count"> + <Match "regex"> + Plugin "^processes$" + Type "^ps_count$" + </Match> + Target "stop" + </Rule> + <Rule "ignore_ps_pagefaults"> + <Match "regex"> + Plugin "^processes$" + Type "^ps_pagefaults$" + </Match> + Target "stop" + </Rule> + <Rule "ignore_ps_stacksize"> + <Match "regex"> + Plugin "^processes$" + Type "^ps_stacksize$" + </Match> + Target "stop" + </Rule> + <Rule "ignore_ps_state"> + <Match "regex"> + Plugin "^processes$" + Type "^ps_state$" + </Match> + Target "stop" + </Rule> + <Rule "ignore_ps_vm"> + <Match "regex"> + Plugin "^processes$" + Type "^ps_vm$" + </Match> + Target "stop" + </Rule> + <Rule "ignore_if_errors"> + <Match "regex"> + Plugin "^interface$" + Type "^if_errors$" + </Match> + Target "stop" + </Rule> + <Rule "ignore_if_packets"> + <Match "regex"> + Plugin "^interface$" + Type "^if_packets$" + </Match> + Target "stop" + </Rule> + <Rule "ignore_disk_merged"> + <Match "regex"> + Plugin "^disk$" + Type "^disk_merged$" + </Match> + Target "stop" + </Rule> + <Rule "ignore_disk_ops"> + <Match "regex"> + Plugin "^disk$" + Type "^disk_ops$" + </Match> + Target "stop" + </Rule> + <Rule "ignore_disk_time"> + <Match "regex"> + Plugin "^disk$" + Type "^disk_time$" + </Match> + Target "stop" + </Rule> + <Target "write"> + Plugin "rrdtool" + </Target> +</Chain> diff --git a/config/etc/e2fsck.conf b/config/etc/e2fsck.conf new file mode 100644 index 0000000..61aee5d --- /dev/null +++ b/config/etc/e2fsck.conf @@ -0,0 +1,13 @@ +[problems] + +# Superblock last mount time is in the future (PR_0_FUTURE_SB_LAST_MOUNT). +0x000031 = { + preen_ok = true + preen_nomessage = true +} + +# Superblock last write time is in the future (PR_0_FUTURE_SB_LAST_WRITE). +0x000032 = { + preen_ok = true + preen_nomessage = true +} \ No newline at end of file diff --git a/config/etc/fstab b/config/etc/fstab index 1786028..c0f98b3 100644 --- a/config/etc/fstab +++ b/config/etc/fstab @@ -9,6 +9,6 @@ proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 devpts /dev/pts devpts gid=4,mode=620 0 0 #none /tmp tmpfs defaults 0 0 -none /var/log/rrd tmpfs defaults,size=112M 0 0 -none /var/lock tmpfs defaults,size=8M 0 0 -none /var/run tmpfs defaults,size=8M 0 0 +none /var/log/rrd tmpfs defaults,size=64M 0 0 +none /var/lock tmpfs defaults,size=2M 0 0 +none /var/run tmpfs defaults,size=2M 0 0 diff --git a/config/etc/ipsec.user.conf b/config/etc/ipsec.user.conf new file mode 100644 index 0000000..19f35db --- /dev/null +++ b/config/etc/ipsec.user.conf @@ -0,0 +1,2 @@ +# user connections that should not overwritten by the webif +# diff --git a/config/etc/ipsec.user.secrets b/config/etc/ipsec.user.secrets new file mode 100644 index 0000000..0e0858a --- /dev/null +++ b/config/etc/ipsec.user.secrets @@ -0,0 +1,2 @@ +# user secrets that should not overwritten by the webif +# diff --git a/config/etc/modprobe.d/pcspeaker b/config/etc/modprobe.d/pcspeaker new file mode 100644 index 0000000..d4e7e94 --- /dev/null +++ b/config/etc/modprobe.d/pcspeaker @@ -0,0 +1 @@ +blacklist snd_pcsp diff --git a/config/guardian/guardian.pl b/config/guardian/guardian.pl index 5c42186..8c2e3b7 100644 --- a/config/guardian/guardian.pl +++ b/config/guardian/guardian.pl @@ -34,12 +34,13 @@ if ($hostipaddr !~ /\d+.\d+.\d+.\d+/) {
$networkaddr = $hostipaddr; $networkaddr =~ s/\d+$/0/; -$gatewayaddr = $hostipaddr; -$gatewayaddr =~ s/\d+$/$hostgatewaybyte/; +$gatewayaddr = `cat /var/ipfire/red/remote-ipaddress 2>/dev/null`; $broadcastaddr = $hostipaddr; $broadcastaddr =~ s/\d+$/255/; &build_ignore_hash;
+print "My gatewayaddess is: $gatewayaddr\n"; + # This is the target hash. If a packet was destened to any of these, then the # sender of that packet will get denied, unless it is on the ignore list..
@@ -210,7 +211,8 @@ sub build_ignore_hash { if ($ignorefile ne "") { open (IGNORE, $ignorefile); while (<IGNORE>) { - chop; + $_=~ s/\s+$//; + chomp; next if (/#/); #skip comments next if (/^\s*$/); # and blank lines $ignore{$_}=1; diff --git a/config/httpd/vhosts.d/ipfire-interface-ssl.conf b/config/httpd/vhosts.d/ipfire-interface-ssl.conf index 0d0fa98..7b10832 100644 --- a/config/httpd/vhosts.d/ipfire-interface-ssl.conf +++ b/config/httpd/vhosts.d/ipfire-interface-ssl.conf @@ -69,4 +69,20 @@ downgrade-1.0 force-response-1.0 CustomLog /var/log/httpd/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b" + + Alias /updatecache/ /var/updatecache/ + <Directory /var/updatecache> + Options ExecCGI + AllowOverride None + Order deny,allow + Allow from all + </Directory> + + Alias /repository/ /var/urlrepo/ + <Directory /var/urlrepo> + Options ExecCGI + AllowOverride None + Order deny,allow + Allow from all + </Directory> </VirtualHost> diff --git a/config/httpd/vhosts.d/ipfire-interface.conf b/config/httpd/vhosts.d/ipfire-interface.conf index bf55b2b..8783c63 100644 --- a/config/httpd/vhosts.d/ipfire-interface.conf +++ b/config/httpd/vhosts.d/ipfire-interface.conf @@ -51,11 +51,18 @@ Require user dial admin </Directory> Alias /updatecache/ /var/updatecache/ -<Directory /var/updatecache> - Options ExecCGI - AllowOverride None - Order deny,allow - Allow from all -</Directory> - + <Directory /var/updatecache> + Options ExecCGI + AllowOverride None + Order deny,allow + Allow from all + </Directory> + Alias /repository/ /var/urlrepo/ + <Directory /var/urlrepo> + Options ExecCGI + AllowOverride None + Order deny,allow + Allow from all + </Directory> + Alias /wpad.dat /srv/web/ipfire/html/proxy.pac </VirtualHost> diff --git a/config/kernel/kernel.config.i586-ipfire b/config/kernel/kernel.config.i586-ipfire index 606bf8e..9e77db1 100644 --- a/config/kernel/kernel.config.i586-ipfire +++ b/config/kernel/kernel.config.i586-ipfire @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.10 -# Tue Mar 30 18:43:57 2010 +# Linux kernel version: 2.6.32.11 +# Sun Apr 18 15:29:55 2010 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -2135,7 +2135,7 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_PCSPKR=y +CONFIG_INPUT_PCSPKR=m CONFIG_INPUT_APANEL=m # CONFIG_INPUT_WISTRON_BTNS is not set # CONFIG_INPUT_ATLAS_BTNS is not set @@ -3129,7 +3129,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y +# CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set # CONFIG_USB_MON is not set CONFIG_USB_WUSB=m @@ -3368,6 +3368,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set diff --git a/config/kernel/kernel.config.i586-ipfire-xen b/config/kernel/kernel.config.i586-ipfire-xen index 3c26cd9..a43e699 100644 --- a/config/kernel/kernel.config.i586-ipfire-xen +++ b/config/kernel/kernel.config.i586-ipfire-xen @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.10 -# Tue Mar 30 18:36:37 2010 +# Linux kernel version: 2.6.32.11 +# Mon Apr 19 11:38:34 2010 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -1884,7 +1884,7 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_PCSPKR=y +CONFIG_INPUT_PCSPKR=m CONFIG_INPUT_APANEL=m # CONFIG_INPUT_WISTRON_BTNS is not set # CONFIG_INPUT_ATLAS_BTNS is not set @@ -2879,7 +2879,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y +# CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set # CONFIG_USB_MON is not set CONFIG_USB_WUSB=m @@ -3119,6 +3119,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # +CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set diff --git a/config/menu/50-firewall.menu b/config/menu/50-firewall.menu index d8a4908..de28f8e 100644 --- a/config/menu/50-firewall.menu +++ b/config/menu/50-firewall.menu @@ -28,6 +28,12 @@ 'title' => "$Lang::tr{'outgoing firewall'}", 'enabled' => 1, }; + $subfirewall->{'51.outgoinggrp'} = { + 'caption' => $Lang::tr{'outgoing firewall groups'}, + 'uri' => '/cgi-bin/outgoinggrp.cgi', + 'title' => "$Lang::tr{'outgoing firewall groups'}", + 'enabled' => 1, + }; $subfirewall->{'60.upnp'} = { 'caption' => 'UPnP', 'uri' => '/cgi-bin/upnp.cgi', diff --git a/config/outgoingfw/outgoingfw.pl b/config/outgoingfw/outgoingfw.pl index ac27a58..1bdd612 100644 --- a/config/outgoingfw/outgoingfw.pl +++ b/config/outgoingfw/outgoingfw.pl @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 2005-2010 IPTifre Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -37,7 +37,6 @@ my @configline = (); my $p2pentry = ""; my @p2ps = (); my @p2pline = (); -my @proto = (); my $CMD = ""; my $P2PSTRING = "";
@@ -65,8 +64,10 @@ $outfwsettings{'DISPLAY_SMAC'} = ''; $outfwsettings{'DISPLAY_SIP'} = ''; $outfwsettings{'POLICY'} = 'MODE0';
+my @SOURCE = ""; my $SOURCE = ""; my $DESTINATION = ""; +my @PROTO = ""; my $PROTO = ""; my $DPORT = ""; my $DEV = ""; @@ -114,93 +115,111 @@ if ( $outfwsettings{'POLICY'} eq 'MODE1' ) {
foreach $configentry (sort @configs) { - $SOURCE = ""; + @SOURCE = ""; $DESTINATION = ""; $PROTO = ""; $DPORT = ""; $DEV = ""; $MAC = ""; @configline = split( /;/, $configentry ); + if ($outfwsettings{'STATE'} eq $configline[0]) { if ($configline[2] eq 'green') { - $SOURCE = "$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}"; + @SOURCE = ("$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}"); $DEV = $netsettings{'GREEN_DEV'}; } elsif ($configline[2] eq 'red') { - $SOURCE = "$netsettings{'RED_IP'}"; + @SOURCE = ("$netsettings{'RED_IP'}"); $DEV = ""; } elsif ($configline[2] eq 'blue') { - $SOURCE = "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}"; + @SOURCE = ("$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}"); $DEV = $netsettings{'BLUE_DEV'}; } elsif ($configline[2] eq 'orange') { - $SOURCE = "$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"; + @SOURCE = ("$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"); $DEV = $netsettings{'ORANGE_DEV'}; + } elsif ($configline[2] eq 'ipsec') { + @SOURCE = ""; + $DEV = "ipsec+"; + } elsif ($configline[2] eq 'ovpn') { + @SOURCE = ""; + $DEV = "tun+"; } elsif ($configline[2] eq 'ip') { - $SOURCE = "$configline[5]"; + @SOURCE = ("$configline[5]"); + $DEV = ""; + } elsif ($configline[2] eq 'all') { + @SOURCE = ("0/0"); $DEV = ""; - } else { - $SOURCE = "0/0"; + } else { + if ( -e "/var/ipfire/outgoing/groups/ipgroups/$configline[2]" ) + { + @SOURCE = `cat /var/ipfire/outgoing/groups/ipgroups/$configline[2]`; + } $DEV = ""; }
if ($configline[7]) { $DESTINATION = "$configline[7]"; } else { $DESTINATION = "0/0"; } if ($configline[3] eq 'tcp') { - @proto = ("tcp"); + @PROTO = ("tcp"); } elsif ($configline[3] eq 'udp') { - @proto = ("udp"); + @PROTO = ("udp"); } elsif ($configline[3] eq 'esp') { - @proto = ("esp"); + @PROTO = ("esp"); } elsif ($configline[3] eq 'gre') { - @proto = ("gre"); + @PROTO = ("gre"); } else { - @proto = ("tcp","udp"); + @PROTO = ("tcp","udp"); } - - - foreach $PROTO (@proto) { - $CMD = "/sbin/iptables -A OUTGOINGFW -s $SOURCE -d $DESTINATION -p $PROTO"; - - if ($configline[8] && $configline[3] ne 'esp' && $configline[3] ne 'gre') { - $DPORT = "$configline[8]"; - $CMD = "$CMD --dport $DPORT"; - } - - if ($DEV) { - $CMD = "$CMD -i $DEV"; - } - - if ($configline[6]) { - $MAC = "$configline[6]"; - $CMD = "$CMD -m mac --mac-source $MAC"; - } - - if ($configline[17] && $configline[18]) { - if ($configline[10]){$DAY = "Mon,"} - if ($configline[11]){$DAY .= "Tue,"} - if ($configline[12]){$DAY .= "Wed,"} - if ($configline[13]){$DAY .= "Thu,"} - if ($configline[14]){$DAY .= "Fri,"} - if ($configline[15]){$DAY .= "Sat,"} - if ($configline[16]){$DAY .= "Sun"} - $CMD = "$CMD -m time --timestart $configline[17] --timestop $configline[18] --weekdays $DAY"; - } - - $CMD = "$CMD -o $netsettings{'RED_DEV'}";
- if ($configline[9] eq "aktiv") { + foreach $PROTO (@PROTO){ + foreach $SOURCE (@SOURCE) { + $SOURCE =~ s/\s//gi; + + if ( $SOURCE eq "" ){next;} + + $CMD = "/sbin/iptables -A OUTGOINGFW -s $SOURCE -d $DESTINATION -p $PROTO"; + + if ($configline[8] && ( $configline[3] ne 'esp' || $configline[3] ne 'gre') ) { + $DPORT = "$configline[8]"; + $CMD = "$CMD -m multiport --destination-port $DPORT"; + } + + if ($DEV) { + $CMD = "$CMD -i $DEV"; + } + + if ($configline[6]) { + $MAC = "$configline[6]"; + $CMD = "$CMD -m mac --mac-source $MAC"; + } + + if ($configline[17] && $configline[18]) { + if ($configline[10]){$DAY = "Mon,"} + if ($configline[11]){$DAY .= "Tue,"} + if ($configline[12]){$DAY .= "Wed,"} + if ($configline[13]){$DAY .= "Thu,"} + if ($configline[14]){$DAY .= "Fri,"} + if ($configline[15]){$DAY .= "Sat,"} + if ($configline[16]){$DAY .= "Sun"} + $CMD = "$CMD -m time --timestart $configline[17] --timestop $configline[18] --weekdays $DAY"; + } + + $CMD = "$CMD -o $netsettings{'RED_DEV'}"; + + if ($configline[9] eq "aktiv") { + if ($DEBUG) { + print "$CMD -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW '\n"; + } else { + system("$CMD -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW '"); + } + } + if ($DEBUG) { - print "$CMD -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW'\n"; + print "$CMD -j $DO\n"; } else { - system("$CMD -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW'"); + system("$CMD -j $DO"); } } - - if ($DEBUG) { - print "$CMD -j $DO\n"; - } else { - system("$CMD -j $DO"); - } - } + } } }
@@ -236,7 +255,7 @@ if ($P2PSTRING) {
if ( $outfwsettings{'POLICY'} eq 'MODE1' ) { if ( $outfwsettings{'MODE1LOG'} eq 'on' ) { - $CMD = "/sbin/iptables -A OUTGOINGFW -o $netsettings{'RED_DEV'} -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW'"; + $CMD = "/sbin/iptables -A OUTGOINGFW -o $netsettings{'RED_DEV'} -m limit --limit 10/minute -j LOG --log-prefix 'DROP_OUTGOINGFW '"; if ($DEBUG) { print "$CMD\n"; } else { @@ -250,4 +269,4 @@ if ( $outfwsettings{'POLICY'} eq 'MODE1' ) { } else { system("$CMD"); } -} \ No newline at end of file +} diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index e6abdc2..a67a44f 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1339,6 +1339,7 @@ srv/web/ipfire/cgi-bin/netexternal.cgi srv/web/ipfire/cgi-bin/netinternal.cgi srv/web/ipfire/cgi-bin/netother.cgi srv/web/ipfire/cgi-bin/outgoingfw.cgi +srv/web/ipfire/cgi-bin/outgoinggrp.cgi srv/web/ipfire/cgi-bin/optionsfw.cgi srv/web/ipfire/cgi-bin/ovpnmain.cgi srv/web/ipfire/cgi-bin/pakfire.cgi diff --git a/config/rootfiles/common/collectd b/config/rootfiles/common/collectd index 0fe7afc..fd20d06 100644 --- a/config/rootfiles/common/collectd +++ b/config/rootfiles/common/collectd @@ -1,4 +1,6 @@ etc/collectd.conf +etc/collectd.custom +etc/collectd.precache etc/collectd.thermal etc/rc.d/rc0.d/K50collectd etc/rc.d/rc3.d/S21collectd diff --git a/config/rootfiles/common/compat-wireless b/config/rootfiles/common/compat-wireless new file mode 100644 index 0000000..3f88467 --- /dev/null +++ b/config/rootfiles/common/compat-wireless @@ -0,0 +1,16 @@ +etc/udev/rules.d/50-compat_firmware.rules +#lib/modules/2.6.32.12-ipfire/kernel/compat +#lib/modules/2.6.32.12-ipfire/kernel/compat/compat.ko +#lib/modules/2.6.32.12-ipfire/kernel/compat/compat_firmware_class.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/bluetooth/ath3k.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/bluetooth/btuart_cs.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/net/wireless/mac80211_hwsim.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko +#lib/modules/2.6.32.12-ipfire/kernel/drivers/net/wireless/wl12xx/wl1271.ko +#lib/modules/2.6.32.12-ipfire/kernel/net/bluetooth/bluetooth.ko +lib/udev/compat_firmware.sh diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot index efbc5fe..d047104 100644 --- a/config/rootfiles/common/configroot +++ b/config/rootfiles/common/configroot @@ -22,6 +22,7 @@ var/ipfire/ddns var/ipfire/dhcp #var/ipfire/dhcp/advoptions #var/ipfire/dhcp/advoptions-list +#var/ipfire/dhcp/dhcpd.conf.local #var/ipfire/dhcp/fixleases #var/ipfire/dhcp/settings var/ipfire/dhcpc @@ -54,6 +55,7 @@ var/ipfire/lang.pl var/ipfire/langs #var/ipfire/langs/de.pl #var/ipfire/langs/en.pl +#var/ipfire/langs/es.pl #var/ipfire/langs/fr.pl #var/ipfire/langs/list var/ipfire/logging @@ -61,6 +63,7 @@ var/ipfire/logging var/ipfire/mac #var/ipfire/mac/settings var/ipfire/main +#var/ipfire/main/disable_nf_sip #var/ipfire/main/hosts #var/ipfire/main/settings #var/ipfire/menu.d @@ -96,6 +99,9 @@ var/ipfire/outgoing #var/ipfire/outgoing/bin #var/ipfire/outgoing/bin/outgoingfw.pl var/ipfire/outgoing/defaultservices +#var/ipfire/outgoing/groups +#var/ipfire/outgoing/groups/ipgroups +#var/ipfire/outgoing/ipgroups #var/ipfire/outgoing/p2protocols #var/ipfire/outgoing/rules #var/ipfire/outgoing/settings diff --git a/config/rootfiles/common/cpio b/config/rootfiles/common/cpio index 3f201c0..53bb1e0 100644 --- a/config/rootfiles/common/cpio +++ b/config/rootfiles/common/cpio @@ -1,14 +1,19 @@ bin/cpio bin/mt -#usr/info/cpio.info -#usr/man/man1/cpio.1 -#usr/man/man1/mt.1 +#usr/share/info/cpio.info #usr/share/locale/da/LC_MESSAGES/cpio.mo #usr/share/locale/de/LC_MESSAGES/cpio.mo #usr/share/locale/es/LC_MESSAGES/cpio.mo +#usr/share/locale/fi/LC_MESSAGES/cpio.mo #usr/share/locale/fr/LC_MESSAGES/cpio.mo +#usr/share/locale/ga +#usr/share/locale/ga/LC_MESSAGES +#usr/share/locale/ga/LC_MESSAGES/cpio.mo #usr/share/locale/gl/LC_MESSAGES/cpio.mo #usr/share/locale/hu/LC_MESSAGES/cpio.mo +#usr/share/locale/id +#usr/share/locale/id/LC_MESSAGES +#usr/share/locale/id/LC_MESSAGES/cpio.mo #usr/share/locale/ko/LC_MESSAGES/cpio.mo #usr/share/locale/nl/LC_MESSAGES/cpio.mo #usr/share/locale/pl/LC_MESSAGES/cpio.mo @@ -17,4 +22,11 @@ bin/mt #usr/share/locale/ru/LC_MESSAGES/cpio.mo #usr/share/locale/sv/LC_MESSAGES/cpio.mo #usr/share/locale/tr/LC_MESSAGES/cpio.mo +#usr/share/locale/uk/LC_MESSAGES/cpio.mo +#usr/share/locale/vi +#usr/share/locale/vi/LC_MESSAGES +#usr/share/locale/vi/LC_MESSAGES/cpio.mo #usr/share/locale/zh_CN/LC_MESSAGES/cpio.mo +#usr/share/locale/zh_TW/LC_MESSAGES/cpio.mo +#usr/share/man/man1/cpio.1 +#usr/share/man/man1/mt.1 diff --git a/config/rootfiles/common/dosfstools b/config/rootfiles/common/dosfstools index f4c82df..2a1b0ef 100644 --- a/config/rootfiles/common/dosfstools +++ b/config/rootfiles/common/dosfstools @@ -1,12 +1,25 @@ sbin/dosfsck +sbin/dosfslabel sbin/fsck.msdos sbin/fsck.vfat sbin/mkdosfs sbin/mkfs.msdos sbin/mkfs.vfat -#usr/man/man8/dosfsck.8 -#usr/man/man8/fsck.msdos.8 -#usr/man/man8/fsck.vfat.8 -#usr/man/man8/mkdosfs.8 -#usr/man/man8/mkfs.msdos.8 -#usr/man/man8/mkfs.vfat.8 +#share/doc +#share/doc/dosfstools +#share/doc/dosfstools/ANNOUNCE.mkdosfs +#share/doc/dosfstools/ChangeLog +#share/doc/dosfstools/ChangeLog.dosfsck +#share/doc/dosfstools/ChangeLog.dosfstools-2.x +#share/doc/dosfstools/ChangeLog.mkdosfs +#share/doc/dosfstools/README.dosfsck +#share/doc/dosfstools/README.dosfstools-2.x +#share/doc/dosfstools/README.mkdosfs +#share/doc/dosfstools/TODO.dosfstools-2.x +#share/man/man8/dosfsck.8 +#share/man/man8/dosfslabel.8 +#share/man/man8/fsck.msdos.8 +#share/man/man8/fsck.vfat.8 +#share/man/man8/mkdosfs.8 +#share/man/man8/mkfs.msdos.8 +#share/man/man8/mkfs.vfat.8 diff --git a/config/rootfiles/common/e2fsprogs b/config/rootfiles/common/e2fsprogs index 57ff884..a293290 100644 --- a/config/rootfiles/common/e2fsprogs +++ b/config/rootfiles/common/e2fsprogs @@ -18,21 +18,26 @@ sbin/dumpe2fs sbin/e2fsck sbin/e2image sbin/e2label +sbin/e2undo sbin/findfs sbin/fsck sbin/fsck.ext2 sbin/fsck.ext3 +sbin/fsck.ext4 +sbin/fsck.ext4dev #sbin/logsave sbin/mke2fs sbin/mkfs.ext2 sbin/mkfs.ext3 +sbin/mkfs.ext4 +sbin/mkfs.ext4dev sbin/resize2fs sbin/tune2fs usr/bin/chattr #usr/bin/compile_et usr/bin/lsattr #usr/bin/mk_cmds -#usr/bin/uuidgen +usr/bin/uuidgen #usr/include/blkid #usr/include/blkid/blkid.h #usr/include/blkid/blkid_types.h @@ -48,12 +53,13 @@ usr/bin/lsattr #usr/include/ext2fs/ext2_io.h #usr/include/ext2fs/ext2_types.h #usr/include/ext2fs/ext2fs.h +#usr/include/ext2fs/ext3_extents.h +#usr/include/ext2fs/tdb.h #usr/include/ss #usr/include/ss/ss.h #usr/include/ss/ss_err.h #usr/include/uuid #usr/include/uuid/uuid.h -#usr/info/libext2fs.info.gz #usr/lib/e2initrd_helper #usr/lib/libblkid.a usr/lib/libblkid.so @@ -74,51 +80,60 @@ usr/lib/libuuid.so #usr/lib/pkgconfig/ext2fs.pc #usr/lib/pkgconfig/ss.pc #usr/lib/pkgconfig/uuid.pc -#usr/man/man1/chattr.1 -#usr/man/man1/compile_et.1 -#usr/man/man1/lsattr.1 -#usr/man/man1/mk_cmds.1 -#usr/man/man1/uuidgen.1 -#usr/man/man3/com_err.3 -#usr/man/man3/libblkid.3 -#usr/man/man3/uuid.3 -#usr/man/man3/uuid_clear.3 -#usr/man/man3/uuid_compare.3 -#usr/man/man3/uuid_copy.3 -#usr/man/man3/uuid_generate.3 -#usr/man/man3/uuid_generate_random.3 -#usr/man/man3/uuid_generate_time.3 -#usr/man/man3/uuid_is_null.3 -#usr/man/man3/uuid_parse.3 -#usr/man/man3/uuid_time.3 -#usr/man/man3/uuid_unparse.3 -#usr/man/man5/e2fsck.conf.5 -#usr/man/man5/mke2fs.conf.5 -#usr/man/man8 -#usr/man/man8/badblocks.8 -#usr/man/man8/blkid.8 -#usr/man/man8/debugfs.8 -#usr/man/man8/dumpe2fs.8 -#usr/man/man8/e2fsck.8 -#usr/man/man8/e2image.8 -#usr/man/man8/e2label.8 -#usr/man/man8/filefrag.8 -#usr/man/man8/findfs.8 -#usr/man/man8/fsck.8 -#usr/man/man8/fsck.ext2.8 -#usr/man/man8/fsck.ext3.8 -#usr/man/man8/logsave.8 -#usr/man/man8/mke2fs.8 -#usr/man/man8/mkfs.ext2.8 -#usr/man/man8/mkfs.ext3.8 -#usr/man/man8/mklost+found.8 -#usr/man/man8/resize2fs.8 -#usr/man/man8/tune2fs.8 -#usr/sbin/filefrag +usr/sbin/e2freefrag +usr/sbin/filefrag usr/sbin/mklost+found +usr/sbin/uuidd #usr/share/et #usr/share/et/et_c.awk #usr/share/et/et_h.awk +#usr/share/info/libext2fs.info.gz +#usr/share/man/man1/chattr.1 +#usr/share/man/man1/compile_et.1 +#usr/share/man/man1/lsattr.1 +#usr/share/man/man1/mk_cmds.1 +#usr/share/man/man1/uuidgen.1 +#usr/share/man/man3/com_err.3 +#usr/share/man/man3/libblkid.3 +#usr/share/man/man3/uuid.3 +#usr/share/man/man3/uuid_clear.3 +#usr/share/man/man3/uuid_compare.3 +#usr/share/man/man3/uuid_copy.3 +#usr/share/man/man3/uuid_generate.3 +#usr/share/man/man3/uuid_generate_random.3 +#usr/share/man/man3/uuid_generate_time.3 +#usr/share/man/man3/uuid_is_null.3 +#usr/share/man/man3/uuid_parse.3 +#usr/share/man/man3/uuid_time.3 +#usr/share/man/man3/uuid_unparse.3 +#usr/share/man/man5/e2fsck.conf.5 +#usr/share/man/man5/mke2fs.conf.5 +#usr/share/man/man8/badblocks.8 +#usr/share/man/man8/blkid.8 +#usr/share/man/man8/debugfs.8 +#usr/share/man/man8/dumpe2fs.8 +#usr/share/man/man8/e2freefrag.8 +#usr/share/man/man8/e2fsck.8 +#usr/share/man/man8/e2image.8 +#usr/share/man/man8/e2label.8 +#usr/share/man/man8/e2undo.8 +#usr/share/man/man8/filefrag.8 +#usr/share/man/man8/findfs.8 +#usr/share/man/man8/fsck.8 +#usr/share/man/man8/fsck.ext2.8 +#usr/share/man/man8/fsck.ext3.8 +#usr/share/man/man8/fsck.ext4.8 +#usr/share/man/man8/fsck.ext4dev.8 +#usr/share/man/man8/logsave.8 +#usr/share/man/man8/mke2fs.8 +#usr/share/man/man8/mkfs.ext2.8 +#usr/share/man/man8/mkfs.ext3.8 +#usr/share/man/man8/mkfs.ext4.8 +#usr/share/man/man8/mkfs.ext4dev.8 +#usr/share/man/man8/mklost+found.8 +#usr/share/man/man8/resize2fs.8 +#usr/share/man/man8/tune2fs.8 +#usr/share/man/man8/uuidd.8 #usr/share/ss #usr/share/ss/ct_c.awk #usr/share/ss/ct_c.sed diff --git a/config/rootfiles/common/initscripts b/config/rootfiles/common/initscripts index c641821..180666f 100644 --- a/config/rootfiles/common/initscripts +++ b/config/rootfiles/common/initscripts @@ -37,6 +37,7 @@ etc/rc.d/init.d/halt etc/rc.d/init.d/ipsec #etc/rc.d/init.d/lcd4linux #etc/rc.d/init.d/lcr +etc/rc.d/init.d/leds etc/rc.d/init.d/localnet #etc/rc.d/init.d/mediatomb #etc/rc.d/init.d/messagebus @@ -77,11 +78,13 @@ etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl etc/rc.d/init.d/networking/red.up/99-pakfire-update +#etc/rc.d/init.d/openvmtools #etc/rc.d/init.d/nfs-server etc/rc.d/init.d/ntp #etc/rc.d/init.d/nut #etc/rc.d/init.d/portmap #etc/rc.d/init.d/postfix +#etc/rc.d/init.d/pound etc/rc.d/init.d/random etc/rc.d/init.d/rc etc/rc.d/init.d/reboot @@ -116,6 +119,8 @@ etc/rc.d/rc0.d/K08fcron etc/rc.d/rc0.d/K28apache etc/rc.d/rc0.d/K30sshd etc/rc.d/rc0.d/K45random +etc/rc.d/rc0.d/K78snort +etc/rc.d/rc0.d/K79leds etc/rc.d/rc0.d/K80network #etc/rc.d/rc0.d/K84bluetooth #etc/rc.d/rc0.d/K85messagebus @@ -133,6 +138,7 @@ etc/rc.d/rc3.d/S10sysklogd #etc/rc.d/rc3.d/S18cpufreq etc/rc.d/rc3.d/S19smartenabler etc/rc.d/rc3.d/S20network +etc/rc.d/rc3.d/S21leds etc/rc.d/rc3.d/S25random etc/rc.d/rc3.d/S30sshd etc/rc.d/rc3.d/S32apache @@ -148,6 +154,8 @@ etc/rc.d/rc6.d/K08fcron etc/rc.d/rc6.d/K28apache etc/rc.d/rc6.d/K30sshd etc/rc.d/rc6.d/K45random +etc/rc.d/rc6.d/K78snort +etc/rc.d/rc6.d/K79leds etc/rc.d/rc6.d/K80network #etc/rc.d/rc6.d/K84bluetooth #etc/rc.d/rc6.d/K85messagebus diff --git a/config/rootfiles/common/ipaddr b/config/rootfiles/common/ipaddr index bec4903..17998cc 100644 --- a/config/rootfiles/common/ipaddr +++ b/config/rootfiles/common/ipaddr @@ -1,2 +1,2 @@ -#usr/lib/python2.4/ipaddr.py -usr/lib/python2.4/ipaddr.pyc +#usr/lib/python2.7/ipaddr.py +usr/lib/python2.7/ipaddr.pyc diff --git a/config/rootfiles/common/kudzu b/config/rootfiles/common/kudzu index a67a182..5776f0f 100644 --- a/config/rootfiles/common/kudzu +++ b/config/rootfiles/common/kudzu @@ -24,13 +24,26 @@ sbin/kudzu #usr/include/kudzu/usb.h #usr/lib/libkudzu.a #usr/lib/libkudzu_loader.a -#usr/lib/python2.4/site-packages/_kudzumodule.so -#usr/lib/python2.4/site-packages/drv_libxml2.pyc -#usr/lib/python2.4/site-packages/kudzu.py -#usr/lib/python2.4/site-packages/kudzu.pyc -#usr/lib/python2.4/site-packages/libxslt.pyc -#usr/lib/python2.4/site-packages/libxml2.pyc -#usr/lib/python2.4/site-packages/snack.pyc +#usr/lib/python2.7/lib2to3/tests/data/bom.pyc +#usr/lib/python2.7/lib2to3/tests/data/crlf.pyc +#usr/lib/python2.7/lib2to3/tests/data/different_encoding.pyc +#usr/lib/python2.7/lib2to3/tests/data/fixers/bad_order.pyc +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.pyc +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.pyc +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.pyc +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.pyc +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.pyc +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.pyc +#usr/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.pyc +#usr/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.pyc +#usr/lib/python2.7/lib2to3/tests/data/infinite_recursion.pyc +#usr/lib/python2.7/lib2to3/tests/data/py2_test_grammar.pyc +#usr/lib/python2.7/site-packages/_kudzumodule.so +#usr/lib/python2.7/site-packages/drv_libxml2.pyc +#usr/lib/python2.7/site-packages/kudzu.py +#usr/lib/python2.7/site-packages/kudzu.pyc +#usr/lib/python2.7/site-packages/libxslt.pyc +#usr/lib/python2.7/site-packages/snack.pyc usr/sbin/kudzu #usr/share/locale/ar #usr/share/locale/ar/LC_MESSAGES diff --git a/config/rootfiles/common/libevent b/config/rootfiles/common/libevent new file mode 100644 index 0000000..77bbade --- /dev/null +++ b/config/rootfiles/common/libevent @@ -0,0 +1,24 @@ +#usr/bin/event_rpcgen.py +#usr/include/evdns.h +#usr/include/event-config.h +#usr/include/event.h +#usr/include/evhttp.h +#usr/include/evrpc.h +#usr/include/evutil.h +usr/lib/libevent-1.4.so.2 +usr/lib/libevent-1.4.so.2.2.0 +#usr/lib/libevent.a +#usr/lib/libevent.la +#usr/lib/libevent.so +usr/lib/libevent_core-1.4.so.2 +usr/lib/libevent_core-1.4.so.2.2.0 +#usr/lib/libevent_core.a +#usr/lib/libevent_core.la +#usr/lib/libevent_core.so +usr/lib/libevent_extra-1.4.so.2 +usr/lib/libevent_extra-1.4.so.2.2.0 +#usr/lib/libevent_extra.a +#usr/lib/libevent_extra.la +#usr/lib/libevent_extra.so +#usr/share/man/man3/evdns.3 +#usr/share/man/man3/event.3 diff --git a/config/rootfiles/common/libpng b/config/rootfiles/common/libpng index c1700a6..2b2ab10 100644 --- a/config/rootfiles/common/libpng +++ b/config/rootfiles/common/libpng @@ -9,14 +9,14 @@ #usr/lib/libpng.la usr/lib/libpng.so usr/lib/libpng.so.3 -usr/lib/libpng.so.3.12.0 +usr/lib/libpng.so.3.44.0 #usr/lib/libpng12.a #usr/lib/libpng12.la usr/lib/libpng12.so usr/lib/libpng12.so.0 -usr/lib/libpng12.so.0.12.0 +usr/lib/libpng12.so.0.44.0 #usr/lib/pkgconfig/libpng.pc #usr/lib/pkgconfig/libpng12.pc -#usr/man/man3/libpng.3 -#usr/man/man3/libpngpf.3 -#usr/man/man5/png.5 +#usr/share/man/man3/libpng.3 +#usr/share/man/man3/libpngpf.3 +#usr/share/man/man5/png.5 diff --git a/config/rootfiles/common/libxml2 b/config/rootfiles/common/libxml2 index 8e78911..ea2eb77 100644 --- a/config/rootfiles/common/libxml2 +++ b/config/rootfiles/common/libxml2 @@ -56,11 +56,11 @@ usr/lib/libxml2.so usr/lib/libxml2.so.2 usr/lib/libxml2.so.2.6.26 #usr/lib/pkgconfig/libxml-2.0.pc -usr/lib/python2.4/site-packages/drv_libxml2.py -usr/lib/python2.4/site-packages/libxml2.py -#usr/lib/python2.4/site-packages/libxml2mod.a -#usr/lib/python2.4/site-packages/libxml2mod.la -usr/lib/python2.4/site-packages/libxml2mod.so +usr/lib/python2.7/site-packages/drv_libxml2.py +usr/lib/python2.7/site-packages/libxml2.py +#usr/lib/python2.7/site-packages/libxml2mod.a +#usr/lib/python2.7/site-packages/libxml2mod.la +usr/lib/python2.7/site-packages/libxml2mod.so #usr/lib/xml2Conf.sh #usr/man/man1/xml2-config.1 #usr/man/man1/xmlcatalog.1 diff --git a/config/rootfiles/common/libxslt b/config/rootfiles/common/libxslt index 3815de8..a6e2ab3 100644 --- a/config/rootfiles/common/libxslt +++ b/config/rootfiles/common/libxslt @@ -38,11 +38,11 @@ usr/lib/libxslt.so.1 usr/lib/libxslt.so.1.1.17 #usr/lib/pkgconfig/libexslt.pc #usr/lib/pkgconfig/libxslt.pc -usr/lib/python2.4/site-packages/libxml2.pyc -usr/lib/python2.4/site-packages/libxslt.py -#usr/lib/python2.4/site-packages/libxsltmod.a -#usr/lib/python2.4/site-packages/libxsltmod.la -usr/lib/python2.4/site-packages/libxsltmod.so +usr/lib/python2.7/site-packages/libxml2.pyc +#usr/lib/python2.7/site-packages/libxslt.py +#usr/lib/python2.7/site-packages/libxsltmod.a +#usr/lib/python2.7/site-packages/libxsltmod.la +usr/lib/python2.7/site-packages/libxsltmod.so #usr/lib/xsltConf.sh #usr/man/man1/xsltproc.1 #usr/man/man3/libexslt.3 diff --git a/config/rootfiles/common/linux b/config/rootfiles/common/linux index fea66f7..adc8316 100644 --- a/config/rootfiles/common/linux +++ b/config/rootfiles/common/linux @@ -3,15 +3,9 @@ boot/System.map-ipfire boot/config-KVER-ipfire boot/vmlinuz-KVER-ipfire boot/vmlinuz-ipfire -#lib/firmware/bnx2/bnx2-mips-06-5.0.0.j3.fw -#lib/firmware/bnx2/bnx2-mips-09-5.0.0.j3.fw -#lib/firmware/bnx2/bnx2-rv2p-09-5.0.0.j3.fw -#lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j3.fw -#lib/firmware/bnx2x-e1-5.0.21.0.fw -#lib/firmware/bnx2x-e1h-5.0.21.0.fw -#lib/firmware/cxgb3/ael2005_opt_edc.bin -#lib/firmware/keyspan/usa28x.fw -#lib/firmware/keyspan/usa49w.fw +etc/modprobe.d/framebuffer +etc/modprobe.d/isdn +#lib/firmware/keyspan/usa19qi.fw lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/build #lib/modules/KVER-ipfire/kernel @@ -549,6 +543,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/keyspan_remote.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/powermate.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/winbond-cir.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/wm831x-on.ko @@ -638,6 +633,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-backlight.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-default-on.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-netdev.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-timer.ko #lib/modules/KVER-ipfire/kernel/drivers/lguest #lib/modules/KVER-ipfire/kernel/drivers/lguest/lg.ko diff --git a/config/rootfiles/common/linux-firmware b/config/rootfiles/common/linux-firmware index 4a41ef6..4343666 100644 --- a/config/rootfiles/common/linux-firmware +++ b/config/rootfiles/common/linux-firmware @@ -281,11 +281,5 @@ lib/firmware/yamaha/ds1_ctrl.fw lib/firmware/yamaha/ds1_dsp.fw lib/firmware/yamaha/ds1e_ctrl.fw lib/firmware/yamaha/yss225_registers.bin -lib/firmware/bnx2/bnx2-mips-06-5.0.0.j6.fw -lib/firmware/bnx2/bnx2-mips-09-5.0.0.j9.fw -lib/firmware/bnx2/bnx2-rv2p-09-5.0.0.j10.fw -lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw lib/firmware/bnx2x-e1-5.0.21.0.fw -lib/firmware/bnx2x-e1-5.2.13.0.fw lib/firmware/bnx2x-e1h-5.0.21.0.fw -lib/firmware/bnx2x-e1h-5.2.13.0.fw diff --git a/config/rootfiles/common/mISDN b/config/rootfiles/common/mISDN index 84697b3..4cf067a 100644 --- a/config/rootfiles/common/mISDN +++ b/config/rootfiles/common/mISDN @@ -1,17 +1,23 @@ -#lib/modules/2.6.27.21-ipfire/mISDN -#lib/modules/2.6.27.21-ipfire/mISDN/hfcmulti.ko -#lib/modules/2.6.27.21-ipfire/mISDN/hfcpci.ko -#lib/modules/2.6.27.21-ipfire/mISDN/hfcsusb.ko -#lib/modules/2.6.27.21-ipfire/mISDN/l1oip.ko -#lib/modules/2.6.27.21-ipfire/mISDN/mISDN_core.ko -#lib/modules/2.6.27.21-ipfire/mISDN/mISDN_dsp.ko -#lib/modules/2.6.27.21-ipfire/mISDN/mISDN_dsp_kb1ec.ko -#lib/modules/2.6.27.21-ipfire/mISDN/mISDN_dsp_mec2.ko -#lib/modules/2.6.27.21-ipfire/mISDN/mISDN_dsp_mg2ec.ko -#lib/modules/2.6.27.21-ipfire/mISDN/mISDN_dsp_octwareec.ko -#lib/modules/2.6.27.21-ipfire/mISDN/mISDN_dsp_oslec.ko -#lib/modules/2.6.27.21-ipfire/mISDN/mISDN_dtmf.ko -#lib/modules/2.6.27.21-ipfire/mISDN/mISDN_l1loop.ko -#lib/modules/2.6.27.21-ipfire/mISDN/octvqe -#lib/modules/2.6.27.21-ipfire/mISDN/octvqe/octvqe.ko -#lib/modules/2.6.27.21-ipfire/mISDN/xhfc.ko +etc/modprobe.d/mISDN +#lib/modules/2.6.32.15-ipfire/mISDN +#lib/modules/2.6.32.15-ipfire/mISDN/avmfritz.ko +#lib/modules/2.6.32.15-ipfire/mISDN/hfcmulti.ko +#lib/modules/2.6.32.15-ipfire/mISDN/hfcpci.ko +#lib/modules/2.6.32.15-ipfire/mISDN/hfcsusb.ko +#lib/modules/2.6.32.15-ipfire/mISDN/l1oip.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_core.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_kb1ec.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_mec2.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_mg2ec.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_octwareec.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_dsp_oslec.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDN_l1loop.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDNinfineon.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDNipac.ko +#lib/modules/2.6.32.15-ipfire/mISDN/mISDNisar.ko +#lib/modules/2.6.32.15-ipfire/mISDN/octvqe +#lib/modules/2.6.32.15-ipfire/mISDN/octvqe/octvqe.ko +#lib/modules/2.6.32.15-ipfire/mISDN/speedfax.ko +#lib/modules/2.6.32.15-ipfire/mISDN/w6692.ko +#lib/modules/2.6.32.15-ipfire/mISDN/xhfc.ko diff --git a/config/rootfiles/common/mISDNuser b/config/rootfiles/common/mISDNuser index 6e5b152..d75a666 100644 --- a/config/rootfiles/common/mISDNuser +++ b/config/rootfiles/common/mISDNuser @@ -1,18 +1,25 @@ -etc/rc.d/init.d/mISDN usr/bin/l1oipctrl usr/bin/misdn_bridge -usr/bin/misdn_cleanl2 usr/bin/misdn_info usr/bin/misdn_log -usr/bin/misdn_rename -#usr/include/mISDNuser -#usr/include/mISDNuser/compat_af_isdn.h -#usr/include/mISDNuser/isdn_net.h -#usr/include/mISDNuser/l3dss1.h -#usr/include/mISDNuser/mISDNif.h -#usr/include/mISDNuser/mbuffer.h -#usr/include/mISDNuser/mlayer3.h -#usr/include/mISDNuser/q931.h +#usr/include/mISDN +#usr/include/mISDN/l3dss1.h +#usr/include/mISDN/mISDNcompat.h +#usr/include/mISDN/mISDNif.h +#usr/include/mISDN/mbuffer.h +#usr/include/mISDN/mlayer3.h +#usr/include/mISDN/q931.h +#usr/include/mISDN/suppserv.h #usr/lib/libmisdn.a +#usr/lib/libmisdn.la usr/lib/libmisdn.so -#usr/lib/libmisdn_pic.a +usr/lib/libmisdn.so.0 +usr/lib/libmisdn.so.0.2.1 +#usr/lib/libsuppserv.a +#usr/lib/libsuppserv.la +usr/lib/libsuppserv.so +usr/lib/libsuppserv.so.0 +usr/lib/libsuppserv.so.0.1.1 +usr/sbin/misdn_cleanl2 +usr/sbin/misdn_rename +etc/rc.d/init.d/mISDN diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 4c4b9c7..7746d03 100644 --- a/config/rootfiles/common/misc-progs +++ b/config/rootfiles/common/misc-progs @@ -1,6 +1,5 @@ -usr/local/bin/setaliases -#usr/local/bin/applejuicectrl usr/local/bin/addonctrl +#usr/local/bin/applejuicectrl usr/local/bin/backupctrl #usr/local/bin/clamavctrl usr/local/bin/dhcpctrl @@ -20,6 +19,7 @@ usr/local/bin/qosctrl usr/local/bin/rebuildhosts usr/local/bin/redctrl #usr/local/bin/sambactrl +usr/local/bin/setaliases usr/local/bin/setdmzholes usr/local/bin/setportfw usr/local/bin/setxtaccess @@ -30,7 +30,9 @@ usr/local/bin/sshctrl usr/local/bin/syslogdctrl usr/local/bin/timectrl #usr/local/bin/tripwirectrl +usr/local/bin/updxlratorctrl usr/local/bin/updxsetperms usr/local/bin/upnpctrl +usr/local/bin/urlfilterctrl usr/local/bin/wirelessctrl #usr/local/bin/wlanapctrl diff --git a/config/rootfiles/common/ncurses b/config/rootfiles/common/ncurses index afe6e39..953afad 100644 --- a/config/rootfiles/common/ncurses +++ b/config/rootfiles/common/ncurses @@ -2464,17 +2464,17 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/s/scoansi #usr/share/terminfo/s/scoansi-new #usr/share/terminfo/s/scoansi-old -#usr/share/terminfo/s/screen -#usr/share/terminfo/s/screen-bce -#usr/share/terminfo/s/screen-s -#usr/share/terminfo/s/screen-w -#usr/share/terminfo/s/screen.linux -#usr/share/terminfo/s/screen.teraterm -#usr/share/terminfo/s/screen.xterm-new -#usr/share/terminfo/s/screen.xterm-r6 -#usr/share/terminfo/s/screen.xterm-xfree86 -#usr/share/terminfo/s/screen2 -#usr/share/terminfo/s/screen3 +usr/share/terminfo/s/screen +usr/share/terminfo/s/screen-bce +usr/share/terminfo/s/screen-s +usr/share/terminfo/s/screen-w +usr/share/terminfo/s/screen.linux +usr/share/terminfo/s/screen.teraterm +usr/share/terminfo/s/screen.xterm-new +usr/share/terminfo/s/screen.xterm-r6 +usr/share/terminfo/s/screen.xterm-xfree86 +usr/share/terminfo/s/screen2 +usr/share/terminfo/s/screen3 #usr/share/terminfo/s/screwpoint #usr/share/terminfo/s/scrhp #usr/share/terminfo/s/sibo diff --git a/config/rootfiles/common/newt b/config/rootfiles/common/newt index e836154..f5f0fa4 100644 --- a/config/rootfiles/common/newt +++ b/config/rootfiles/common/newt @@ -4,5 +4,5 @@ usr/lib/libnewt.so usr/lib/libnewt.so.0.51 usr/lib/libnewt.so.0.51.6 -#usr/lib/python2.4/site-packages/_snackmodule.so -#usr/lib/python2.4/site-packages/snack.py +#usr/lib/python2.7/site-packages/_snackmodule.so +#usr/lib/python2.7/site-packages/snack.py diff --git a/config/rootfiles/common/pcre b/config/rootfiles/common/pcre index a9afe7a..d031bd3 100644 --- a/config/rootfiles/common/pcre +++ b/config/rootfiles/common/pcre @@ -14,14 +14,14 @@ lib/libpcre.so.0.0.1 usr/lib/libpcre.so #usr/lib/libpcrecpp.a #usr/lib/libpcrecpp.la -#usr/lib/libpcrecpp.so -#usr/lib/libpcrecpp.so.0 -#usr/lib/libpcrecpp.so.0.0.0 +usr/lib/libpcrecpp.so +usr/lib/libpcrecpp.so.0 +usr/lib/libpcrecpp.so.0.0.0 #usr/lib/libpcreposix.a #usr/lib/libpcreposix.la -#usr/lib/libpcreposix.so -#usr/lib/libpcreposix.so.0 -#usr/lib/libpcreposix.so.0.0.0 +usr/lib/libpcreposix.so +usr/lib/libpcreposix.so.0 +usr/lib/libpcreposix.so.0.0.0 #usr/lib/pkgconfig/libpcre.pc #usr/man/man1/pcregrep.1 #usr/man/man1/pcretest.1 diff --git a/config/rootfiles/common/ppp b/config/rootfiles/common/ppp index beb732a..60e6f5b 100644 --- a/config/rootfiles/common/ppp +++ b/config/rootfiles/common/ppp @@ -25,21 +25,24 @@ etc/ppp/standardloginscript #usr/include/pppd/pathnames.h #usr/include/pppd/pppcrypt.h #usr/include/pppd/pppd.h +#usr/include/pppd/session.h #usr/include/pppd/sha1.h #usr/include/pppd/spinlock.h #usr/include/pppd/tdb.h #usr/include/pppd/upap.h -#usr/lib/pppd -#usr/lib/pppd/2.4.4 -usr/lib/pppd/2.4.4/minconn.so -usr/lib/pppd/2.4.4/passprompt.so -usr/lib/pppd/2.4.4/passwordfd.so -usr/lib/pppd/2.4.4/pppoatm.so -usr/lib/pppd/2.4.4/radattr.so -usr/lib/pppd/2.4.4/radius.so -usr/lib/pppd/2.4.4/radrealms.so -usr/lib/pppd/2.4.4/rp-pppoe.so -usr/lib/pppd/2.4.4/winbind.so +usr/lib/pppd +usr/lib/pppd/2.4.5 +usr/lib/pppd/2.4.5/minconn.so +usr/lib/pppd/2.4.5/openl2tp.so +usr/lib/pppd/2.4.5/passprompt.so +usr/lib/pppd/2.4.5/passwordfd.so +usr/lib/pppd/2.4.5/pppoatm.so +usr/lib/pppd/2.4.5/pppol2tp.so +usr/lib/pppd/2.4.5/radattr.so +usr/lib/pppd/2.4.5/radius.so +usr/lib/pppd/2.4.5/radrealms.so +usr/lib/pppd/2.4.5/rp-pppoe.so +usr/lib/pppd/2.4.5/winbind.so usr/sbin/chat usr/sbin/pppd usr/sbin/pppdump diff --git a/config/rootfiles/common/python b/config/rootfiles/common/python index e0ed9ae..e31e2a2 100644 --- a/config/rootfiles/common/python +++ b/config/rootfiles/common/python @@ -1,2913 +1,4339 @@ +#usr/bin/2to3 #usr/bin/idle #usr/bin/pydoc usr/bin/python -#usr/bin/python2.4 +usr/bin/python-config +usr/bin/python2.7 +usr/bin/python2.7-config #usr/bin/smtpd.py -#usr/include/python2.4 -#usr/include/python2.4/Python.h -#usr/include/python2.4/abstract.h -#usr/include/python2.4/bitset.h -#usr/include/python2.4/boolobject.h -#usr/include/python2.4/bufferobject.h -#usr/include/python2.4/cStringIO.h -#usr/include/python2.4/cellobject.h -#usr/include/python2.4/ceval.h -#usr/include/python2.4/classobject.h -#usr/include/python2.4/cobject.h -#usr/include/python2.4/codecs.h -#usr/include/python2.4/compile.h -#usr/include/python2.4/complexobject.h -#usr/include/python2.4/datetime.h -#usr/include/python2.4/descrobject.h -#usr/include/python2.4/dictobject.h -#usr/include/python2.4/enumobject.h -#usr/include/python2.4/errcode.h -#usr/include/python2.4/eval.h -#usr/include/python2.4/fileobject.h -#usr/include/python2.4/floatobject.h -#usr/include/python2.4/frameobject.h -#usr/include/python2.4/funcobject.h -#usr/include/python2.4/genobject.h -#usr/include/python2.4/graminit.h -#usr/include/python2.4/grammar.h -#usr/include/python2.4/import.h -#usr/include/python2.4/intobject.h -#usr/include/python2.4/intrcheck.h -#usr/include/python2.4/iterobject.h -#usr/include/python2.4/listobject.h -#usr/include/python2.4/longintrepr.h -#usr/include/python2.4/longobject.h -#usr/include/python2.4/marshal.h -#usr/include/python2.4/metagrammar.h -#usr/include/python2.4/methodobject.h -#usr/include/python2.4/modsupport.h -#usr/include/python2.4/moduleobject.h -#usr/include/python2.4/node.h -#usr/include/python2.4/object.h -#usr/include/python2.4/objimpl.h -#usr/include/python2.4/opcode.h -#usr/include/python2.4/osdefs.h -#usr/include/python2.4/parsetok.h -#usr/include/python2.4/patchlevel.h -#usr/include/python2.4/pgen.h -#usr/include/python2.4/pgenheaders.h -#usr/include/python2.4/py_curses.h -#usr/include/python2.4/pyconfig.h -#usr/include/python2.4/pydebug.h -#usr/include/python2.4/pyerrors.h -#usr/include/python2.4/pyfpe.h -#usr/include/python2.4/pygetopt.h -#usr/include/python2.4/pymactoolbox.h -#usr/include/python2.4/pymem.h -#usr/include/python2.4/pyport.h -#usr/include/python2.4/pystate.h -#usr/include/python2.4/pystrtod.h -#usr/include/python2.4/pythonrun.h -#usr/include/python2.4/pythread.h -#usr/include/python2.4/rangeobject.h -#usr/include/python2.4/setobject.h -#usr/include/python2.4/sliceobject.h -#usr/include/python2.4/stringobject.h -#usr/include/python2.4/structmember.h -#usr/include/python2.4/structseq.h -#usr/include/python2.4/symtable.h -#usr/include/python2.4/sysmodule.h -#usr/include/python2.4/timefuncs.h -#usr/include/python2.4/token.h -#usr/include/python2.4/traceback.h -#usr/include/python2.4/tupleobject.h -#usr/include/python2.4/ucnhash.h -#usr/include/python2.4/unicodeobject.h -#usr/include/python2.4/weakrefobject.h -usr/lib/libpython2.4.so -usr/lib/libpython2.4.so.1.0 -#usr/lib/python2.4 -#usr/lib/python2.4/BaseHTTPServer.py -usr/lib/python2.4/BaseHTTPServer.pyc -#usr/lib/python2.4/BaseHTTPServer.pyo -#usr/lib/python2.4/Bastion.py -usr/lib/python2.4/Bastion.pyc -#usr/lib/python2.4/Bastion.pyo -#usr/lib/python2.4/CGIHTTPServer.py -usr/lib/python2.4/CGIHTTPServer.pyc -#usr/lib/python2.4/CGIHTTPServer.pyo -#usr/lib/python2.4/ConfigParser.py -usr/lib/python2.4/ConfigParser.pyc -#usr/lib/python2.4/ConfigParser.pyo -#usr/lib/python2.4/Cookie.py -usr/lib/python2.4/Cookie.pyc -#usr/lib/python2.4/Cookie.pyo -#usr/lib/python2.4/DocXMLRPCServer.py -usr/lib/python2.4/DocXMLRPCServer.pyc -#usr/lib/python2.4/DocXMLRPCServer.pyo -#usr/lib/python2.4/HTMLParser.py -usr/lib/python2.4/HTMLParser.pyc -#usr/lib/python2.4/HTMLParser.pyo -#usr/lib/python2.4/LICENSE.txt -#usr/lib/python2.4/MimeWriter.py -usr/lib/python2.4/MimeWriter.pyc -#usr/lib/python2.4/MimeWriter.pyo -#usr/lib/python2.4/Queue.py -usr/lib/python2.4/Queue.pyc -#usr/lib/python2.4/Queue.pyo -#usr/lib/python2.4/SimpleHTTPServer.py -usr/lib/python2.4/SimpleHTTPServer.pyc -#usr/lib/python2.4/SimpleHTTPServer.pyo -#usr/lib/python2.4/SimpleXMLRPCServer.py -usr/lib/python2.4/SimpleXMLRPCServer.pyc -#usr/lib/python2.4/SimpleXMLRPCServer.pyo -#usr/lib/python2.4/SocketServer.py -usr/lib/python2.4/SocketServer.pyc -#usr/lib/python2.4/SocketServer.pyo -#usr/lib/python2.4/StringIO.py -usr/lib/python2.4/StringIO.pyc -#usr/lib/python2.4/StringIO.pyo -#usr/lib/python2.4/UserDict.py -usr/lib/python2.4/UserDict.pyc -#usr/lib/python2.4/UserDict.pyo -#usr/lib/python2.4/UserList.py -usr/lib/python2.4/UserList.pyc -#usr/lib/python2.4/UserList.pyo -#usr/lib/python2.4/UserString.py -usr/lib/python2.4/UserString.pyc -#usr/lib/python2.4/UserString.pyo -#usr/lib/python2.4/_LWPCookieJar.py -usr/lib/python2.4/_LWPCookieJar.pyc -#usr/lib/python2.4/_LWPCookieJar.pyo -#usr/lib/python2.4/_MozillaCookieJar.py -usr/lib/python2.4/_MozillaCookieJar.pyc -#usr/lib/python2.4/_MozillaCookieJar.pyo -#usr/lib/python2.4/__future__.py -usr/lib/python2.4/__future__.pyc -#usr/lib/python2.4/__future__.pyo -#usr/lib/python2.4/__phello__.foo.py -usr/lib/python2.4/__phello__.foo.pyc -#usr/lib/python2.4/__phello__.foo.pyo -#usr/lib/python2.4/_strptime.py -usr/lib/python2.4/_strptime.pyc -#usr/lib/python2.4/_strptime.pyo -#usr/lib/python2.4/_threading_local.py -usr/lib/python2.4/_threading_local.pyc -#usr/lib/python2.4/_threading_local.pyo -#usr/lib/python2.4/aifc.py -usr/lib/python2.4/aifc.pyc -#usr/lib/python2.4/aifc.pyo -#usr/lib/python2.4/anydbm.py -usr/lib/python2.4/anydbm.pyc -#usr/lib/python2.4/anydbm.pyo -#usr/lib/python2.4/asynchat.py -usr/lib/python2.4/asynchat.pyc -#usr/lib/python2.4/asynchat.pyo -#usr/lib/python2.4/asyncore.py -usr/lib/python2.4/asyncore.pyc -#usr/lib/python2.4/asyncore.pyo -#usr/lib/python2.4/atexit.py -usr/lib/python2.4/atexit.pyc -#usr/lib/python2.4/atexit.pyo -#usr/lib/python2.4/audiodev.py -usr/lib/python2.4/audiodev.pyc -#usr/lib/python2.4/audiodev.pyo -#usr/lib/python2.4/base64.py -usr/lib/python2.4/base64.pyc -#usr/lib/python2.4/base64.pyo -#usr/lib/python2.4/bdb.py -usr/lib/python2.4/bdb.pyc -#usr/lib/python2.4/bdb.pyo -#usr/lib/python2.4/binhex.py -usr/lib/python2.4/binhex.pyc -#usr/lib/python2.4/binhex.pyo -#usr/lib/python2.4/bisect.py -usr/lib/python2.4/bisect.pyc -#usr/lib/python2.4/bisect.pyo -#usr/lib/python2.4/bsddb -#usr/lib/python2.4/bsddb/__init__.py -usr/lib/python2.4/bsddb/__init__.pyc -#usr/lib/python2.4/bsddb/__init__.pyo -#usr/lib/python2.4/bsddb/db.py -usr/lib/python2.4/bsddb/db.pyc -#usr/lib/python2.4/bsddb/db.pyo -#usr/lib/python2.4/bsddb/dbobj.py -usr/lib/python2.4/bsddb/dbobj.pyc -#usr/lib/python2.4/bsddb/dbobj.pyo -#usr/lib/python2.4/bsddb/dbrecio.py -usr/lib/python2.4/bsddb/dbrecio.pyc -#usr/lib/python2.4/bsddb/dbrecio.pyo -#usr/lib/python2.4/bsddb/dbshelve.py -usr/lib/python2.4/bsddb/dbshelve.pyc -#usr/lib/python2.4/bsddb/dbshelve.pyo -#usr/lib/python2.4/bsddb/dbtables.py -usr/lib/python2.4/bsddb/dbtables.pyc -#usr/lib/python2.4/bsddb/dbtables.pyo -#usr/lib/python2.4/bsddb/dbutils.py -usr/lib/python2.4/bsddb/dbutils.pyc -#usr/lib/python2.4/bsddb/dbutils.pyo -#usr/lib/python2.4/bsddb/test -#usr/lib/python2.4/bsddb/test/__init__.py -usr/lib/python2.4/bsddb/test/__init__.pyc -#usr/lib/python2.4/bsddb/test/__init__.pyo -#usr/lib/python2.4/bsddb/test/test_1413192.py -usr/lib/python2.4/bsddb/test/test_1413192.pyc -#usr/lib/python2.4/bsddb/test/test_1413192.pyo -#usr/lib/python2.4/bsddb/test/test_all.py -usr/lib/python2.4/bsddb/test/test_all.pyc -#usr/lib/python2.4/bsddb/test/test_all.pyo -#usr/lib/python2.4/bsddb/test/test_associate.py -usr/lib/python2.4/bsddb/test/test_associate.pyc -#usr/lib/python2.4/bsddb/test/test_associate.pyo -#usr/lib/python2.4/bsddb/test/test_basics.py -usr/lib/python2.4/bsddb/test/test_basics.pyc -#usr/lib/python2.4/bsddb/test/test_basics.pyo -#usr/lib/python2.4/bsddb/test/test_compat.py -usr/lib/python2.4/bsddb/test/test_compat.pyc -#usr/lib/python2.4/bsddb/test/test_compat.pyo -#usr/lib/python2.4/bsddb/test/test_dbobj.py -usr/lib/python2.4/bsddb/test/test_dbobj.pyc -#usr/lib/python2.4/bsddb/test/test_dbobj.pyo -#usr/lib/python2.4/bsddb/test/test_dbshelve.py -usr/lib/python2.4/bsddb/test/test_dbshelve.pyc -#usr/lib/python2.4/bsddb/test/test_dbshelve.pyo -#usr/lib/python2.4/bsddb/test/test_dbtables.py -usr/lib/python2.4/bsddb/test/test_dbtables.pyc -#usr/lib/python2.4/bsddb/test/test_dbtables.pyo -#usr/lib/python2.4/bsddb/test/test_env_close.py -usr/lib/python2.4/bsddb/test/test_env_close.pyc -#usr/lib/python2.4/bsddb/test/test_env_close.pyo -#usr/lib/python2.4/bsddb/test/test_get_none.py -usr/lib/python2.4/bsddb/test/test_get_none.pyc -#usr/lib/python2.4/bsddb/test/test_get_none.pyo -#usr/lib/python2.4/bsddb/test/test_join.py -usr/lib/python2.4/bsddb/test/test_join.pyc -#usr/lib/python2.4/bsddb/test/test_join.pyo -#usr/lib/python2.4/bsddb/test/test_lock.py -usr/lib/python2.4/bsddb/test/test_lock.pyc -#usr/lib/python2.4/bsddb/test/test_lock.pyo -#usr/lib/python2.4/bsddb/test/test_misc.py -usr/lib/python2.4/bsddb/test/test_misc.pyc -#usr/lib/python2.4/bsddb/test/test_misc.pyo -#usr/lib/python2.4/bsddb/test/test_queue.py -usr/lib/python2.4/bsddb/test/test_queue.pyc -#usr/lib/python2.4/bsddb/test/test_queue.pyo -#usr/lib/python2.4/bsddb/test/test_recno.py -usr/lib/python2.4/bsddb/test/test_recno.pyc -#usr/lib/python2.4/bsddb/test/test_recno.pyo -#usr/lib/python2.4/bsddb/test/test_thread.py -usr/lib/python2.4/bsddb/test/test_thread.pyc -#usr/lib/python2.4/bsddb/test/test_thread.pyo -#usr/lib/python2.4/calendar.py -usr/lib/python2.4/calendar.pyc -#usr/lib/python2.4/calendar.pyo -#usr/lib/python2.4/cgi.py -usr/lib/python2.4/cgi.pyc -#usr/lib/python2.4/cgi.pyo -#usr/lib/python2.4/cgitb.py -usr/lib/python2.4/cgitb.pyc -#usr/lib/python2.4/cgitb.pyo -#usr/lib/python2.4/chunk.py -usr/lib/python2.4/chunk.pyc -#usr/lib/python2.4/chunk.pyo -#usr/lib/python2.4/cmd.py -usr/lib/python2.4/cmd.pyc -#usr/lib/python2.4/cmd.pyo -#usr/lib/python2.4/code.py -usr/lib/python2.4/code.pyc -#usr/lib/python2.4/code.pyo -#usr/lib/python2.4/codecs.py -usr/lib/python2.4/codecs.pyc -#usr/lib/python2.4/codecs.pyo -#usr/lib/python2.4/codeop.py -usr/lib/python2.4/codeop.pyc -#usr/lib/python2.4/codeop.pyo -#usr/lib/python2.4/colorsys.py -usr/lib/python2.4/colorsys.pyc -#usr/lib/python2.4/colorsys.pyo -#usr/lib/python2.4/commands.py -usr/lib/python2.4/commands.pyc -#usr/lib/python2.4/commands.pyo -#usr/lib/python2.4/compileall.py -usr/lib/python2.4/compileall.pyc -#usr/lib/python2.4/compileall.pyo -#usr/lib/python2.4/compiler -#usr/lib/python2.4/compiler/__init__.py -usr/lib/python2.4/compiler/__init__.pyc -#usr/lib/python2.4/compiler/__init__.pyo -#usr/lib/python2.4/compiler/ast.py -usr/lib/python2.4/compiler/ast.pyc -#usr/lib/python2.4/compiler/ast.pyo -#usr/lib/python2.4/compiler/consts.py -usr/lib/python2.4/compiler/consts.pyc -#usr/lib/python2.4/compiler/consts.pyo -#usr/lib/python2.4/compiler/future.py -usr/lib/python2.4/compiler/future.pyc -#usr/lib/python2.4/compiler/future.pyo -#usr/lib/python2.4/compiler/misc.py -usr/lib/python2.4/compiler/misc.pyc -#usr/lib/python2.4/compiler/misc.pyo -#usr/lib/python2.4/compiler/pyassem.py -usr/lib/python2.4/compiler/pyassem.pyc -#usr/lib/python2.4/compiler/pyassem.pyo -#usr/lib/python2.4/compiler/pycodegen.py -usr/lib/python2.4/compiler/pycodegen.pyc -#usr/lib/python2.4/compiler/pycodegen.pyo -#usr/lib/python2.4/compiler/symbols.py -usr/lib/python2.4/compiler/symbols.pyc -#usr/lib/python2.4/compiler/symbols.pyo -#usr/lib/python2.4/compiler/syntax.py -usr/lib/python2.4/compiler/syntax.pyc -#usr/lib/python2.4/compiler/syntax.pyo -#usr/lib/python2.4/compiler/transformer.py -usr/lib/python2.4/compiler/transformer.pyc -#usr/lib/python2.4/compiler/transformer.pyo -#usr/lib/python2.4/compiler/visitor.py -usr/lib/python2.4/compiler/visitor.pyc -#usr/lib/python2.4/compiler/visitor.pyo -#usr/lib/python2.4/config -#usr/lib/python2.4/config/Makefile -#usr/lib/python2.4/config/Setup -#usr/lib/python2.4/config/Setup.config -#usr/lib/python2.4/config/Setup.local -#usr/lib/python2.4/config/config.c -#usr/lib/python2.4/config/config.c.in -#usr/lib/python2.4/config/install-sh -#usr/lib/python2.4/config/libpython2.4.a -#usr/lib/python2.4/config/makesetup -#usr/lib/python2.4/config/python.o -#usr/lib/python2.4/cookielib.py -usr/lib/python2.4/cookielib.pyc -#usr/lib/python2.4/cookielib.pyo -#usr/lib/python2.4/copy.py -usr/lib/python2.4/copy.pyc -#usr/lib/python2.4/copy.pyo -#usr/lib/python2.4/copy_reg.py -usr/lib/python2.4/copy_reg.pyc -#usr/lib/python2.4/copy_reg.pyo -#usr/lib/python2.4/csv.py -usr/lib/python2.4/csv.pyc -#usr/lib/python2.4/csv.pyo -#usr/lib/python2.4/curses -#usr/lib/python2.4/curses/__init__.py -usr/lib/python2.4/curses/__init__.pyc -#usr/lib/python2.4/curses/__init__.pyo -#usr/lib/python2.4/curses/ascii.py -usr/lib/python2.4/curses/ascii.pyc -#usr/lib/python2.4/curses/ascii.pyo -#usr/lib/python2.4/curses/has_key.py -usr/lib/python2.4/curses/has_key.pyc -#usr/lib/python2.4/curses/has_key.pyo -#usr/lib/python2.4/curses/panel.py -usr/lib/python2.4/curses/panel.pyc -#usr/lib/python2.4/curses/panel.pyo -#usr/lib/python2.4/curses/textpad.py -usr/lib/python2.4/curses/textpad.pyc -#usr/lib/python2.4/curses/textpad.pyo -#usr/lib/python2.4/curses/wrapper.py -usr/lib/python2.4/curses/wrapper.pyc -#usr/lib/python2.4/curses/wrapper.pyo -#usr/lib/python2.4/dbhash.py -usr/lib/python2.4/dbhash.pyc -#usr/lib/python2.4/dbhash.pyo -#usr/lib/python2.4/decimal.py -usr/lib/python2.4/decimal.pyc -#usr/lib/python2.4/decimal.pyo -#usr/lib/python2.4/difflib.py -usr/lib/python2.4/difflib.pyc -#usr/lib/python2.4/difflib.pyo -#usr/lib/python2.4/dircache.py -usr/lib/python2.4/dircache.pyc -#usr/lib/python2.4/dircache.pyo -#usr/lib/python2.4/dis.py -usr/lib/python2.4/dis.pyc -#usr/lib/python2.4/dis.pyo -#usr/lib/python2.4/distutils -#usr/lib/python2.4/distutils/README -#usr/lib/python2.4/distutils/__init__.py -#usr/lib/python2.4/distutils/__init__.pyc -#usr/lib/python2.4/distutils/__init__.pyo -#usr/lib/python2.4/distutils/archive_util.py -#usr/lib/python2.4/distutils/archive_util.pyc -#usr/lib/python2.4/distutils/archive_util.pyo -#usr/lib/python2.4/distutils/bcppcompiler.py -#usr/lib/python2.4/distutils/bcppcompiler.pyc -#usr/lib/python2.4/distutils/bcppcompiler.pyo -#usr/lib/python2.4/distutils/ccompiler.py -#usr/lib/python2.4/distutils/ccompiler.pyc -#usr/lib/python2.4/distutils/ccompiler.pyo -#usr/lib/python2.4/distutils/cmd.py -#usr/lib/python2.4/distutils/cmd.pyc -#usr/lib/python2.4/distutils/cmd.pyo -#usr/lib/python2.4/distutils/command -#usr/lib/python2.4/distutils/command/__init__.py -#usr/lib/python2.4/distutils/command/__init__.pyc -#usr/lib/python2.4/distutils/command/__init__.pyo -#usr/lib/python2.4/distutils/command/bdist.py -#usr/lib/python2.4/distutils/command/bdist.pyc -#usr/lib/python2.4/distutils/command/bdist.pyo -#usr/lib/python2.4/distutils/command/bdist_dumb.py -#usr/lib/python2.4/distutils/command/bdist_dumb.pyc -#usr/lib/python2.4/distutils/command/bdist_dumb.pyo -#usr/lib/python2.4/distutils/command/bdist_rpm.py -#usr/lib/python2.4/distutils/command/bdist_rpm.pyc -#usr/lib/python2.4/distutils/command/bdist_rpm.pyo -#usr/lib/python2.4/distutils/command/bdist_wininst.py -#usr/lib/python2.4/distutils/command/bdist_wininst.pyc -#usr/lib/python2.4/distutils/command/bdist_wininst.pyo -#usr/lib/python2.4/distutils/command/build.py -#usr/lib/python2.4/distutils/command/build.pyc -#usr/lib/python2.4/distutils/command/build.pyo -#usr/lib/python2.4/distutils/command/build_clib.py -#usr/lib/python2.4/distutils/command/build_clib.pyc -#usr/lib/python2.4/distutils/command/build_clib.pyo -#usr/lib/python2.4/distutils/command/build_ext.py -#usr/lib/python2.4/distutils/command/build_ext.pyc -#usr/lib/python2.4/distutils/command/build_ext.pyo -#usr/lib/python2.4/distutils/command/build_py.py -#usr/lib/python2.4/distutils/command/build_py.pyc -#usr/lib/python2.4/distutils/command/build_py.pyo -#usr/lib/python2.4/distutils/command/build_scripts.py -#usr/lib/python2.4/distutils/command/build_scripts.pyc -#usr/lib/python2.4/distutils/command/build_scripts.pyo -#usr/lib/python2.4/distutils/command/clean.py -#usr/lib/python2.4/distutils/command/clean.pyc -#usr/lib/python2.4/distutils/command/clean.pyo -#usr/lib/python2.4/distutils/command/command_template -#usr/lib/python2.4/distutils/command/config.py -#usr/lib/python2.4/distutils/command/config.pyc -#usr/lib/python2.4/distutils/command/config.pyo -#usr/lib/python2.4/distutils/command/install.py -#usr/lib/python2.4/distutils/command/install.pyc -#usr/lib/python2.4/distutils/command/install.pyo -#usr/lib/python2.4/distutils/command/install_data.py -#usr/lib/python2.4/distutils/command/install_data.pyc -#usr/lib/python2.4/distutils/command/install_data.pyo -#usr/lib/python2.4/distutils/command/install_headers.py -#usr/lib/python2.4/distutils/command/install_headers.pyc -#usr/lib/python2.4/distutils/command/install_headers.pyo -#usr/lib/python2.4/distutils/command/install_lib.py -#usr/lib/python2.4/distutils/command/install_lib.pyc -#usr/lib/python2.4/distutils/command/install_lib.pyo -#usr/lib/python2.4/distutils/command/install_scripts.py -#usr/lib/python2.4/distutils/command/install_scripts.pyc -#usr/lib/python2.4/distutils/command/install_scripts.pyo -#usr/lib/python2.4/distutils/command/register.py -#usr/lib/python2.4/distutils/command/register.pyc -#usr/lib/python2.4/distutils/command/register.pyo -#usr/lib/python2.4/distutils/command/sdist.py -#usr/lib/python2.4/distutils/command/sdist.pyc -#usr/lib/python2.4/distutils/command/sdist.pyo -#usr/lib/python2.4/distutils/command/wininst-6.exe -#usr/lib/python2.4/distutils/command/wininst-7.1.exe -#usr/lib/python2.4/distutils/core.py -#usr/lib/python2.4/distutils/core.pyc -#usr/lib/python2.4/distutils/core.pyo -#usr/lib/python2.4/distutils/cygwinccompiler.py -#usr/lib/python2.4/distutils/cygwinccompiler.pyc -#usr/lib/python2.4/distutils/cygwinccompiler.pyo -#usr/lib/python2.4/distutils/debug.py -#usr/lib/python2.4/distutils/debug.pyc -#usr/lib/python2.4/distutils/debug.pyo -#usr/lib/python2.4/distutils/dep_util.py -#usr/lib/python2.4/distutils/dep_util.pyc -#usr/lib/python2.4/distutils/dep_util.pyo -#usr/lib/python2.4/distutils/dir_util.py -#usr/lib/python2.4/distutils/dir_util.pyc -#usr/lib/python2.4/distutils/dir_util.pyo -#usr/lib/python2.4/distutils/dist.py -#usr/lib/python2.4/distutils/dist.pyc -#usr/lib/python2.4/distutils/dist.pyo -#usr/lib/python2.4/distutils/emxccompiler.py -#usr/lib/python2.4/distutils/emxccompiler.pyc -#usr/lib/python2.4/distutils/emxccompiler.pyo -#usr/lib/python2.4/distutils/errors.py -#usr/lib/python2.4/distutils/errors.pyc -#usr/lib/python2.4/distutils/errors.pyo -#usr/lib/python2.4/distutils/extension.py -#usr/lib/python2.4/distutils/extension.pyc -#usr/lib/python2.4/distutils/extension.pyo -#usr/lib/python2.4/distutils/fancy_getopt.py -#usr/lib/python2.4/distutils/fancy_getopt.pyc -#usr/lib/python2.4/distutils/fancy_getopt.pyo -#usr/lib/python2.4/distutils/file_util.py -#usr/lib/python2.4/distutils/file_util.pyc -#usr/lib/python2.4/distutils/file_util.pyo -#usr/lib/python2.4/distutils/filelist.py -#usr/lib/python2.4/distutils/filelist.pyc -#usr/lib/python2.4/distutils/filelist.pyo -#usr/lib/python2.4/distutils/log.py -#usr/lib/python2.4/distutils/log.pyc -#usr/lib/python2.4/distutils/log.pyo -#usr/lib/python2.4/distutils/msvccompiler.py -#usr/lib/python2.4/distutils/msvccompiler.pyc -#usr/lib/python2.4/distutils/msvccompiler.pyo -#usr/lib/python2.4/distutils/mwerkscompiler.py -#usr/lib/python2.4/distutils/mwerkscompiler.pyc -#usr/lib/python2.4/distutils/mwerkscompiler.pyo -#usr/lib/python2.4/distutils/spawn.py -#usr/lib/python2.4/distutils/spawn.pyc -#usr/lib/python2.4/distutils/spawn.pyo -#usr/lib/python2.4/distutils/sysconfig.py -#usr/lib/python2.4/distutils/sysconfig.pyc -#usr/lib/python2.4/distutils/sysconfig.pyo -#usr/lib/python2.4/distutils/tests -#usr/lib/python2.4/distutils/tests/__init__.py -#usr/lib/python2.4/distutils/tests/__init__.pyc -#usr/lib/python2.4/distutils/tests/__init__.pyo -#usr/lib/python2.4/distutils/tests/support.py -#usr/lib/python2.4/distutils/tests/support.pyc -#usr/lib/python2.4/distutils/tests/support.pyo -#usr/lib/python2.4/distutils/tests/test_build_py.py -#usr/lib/python2.4/distutils/tests/test_build_py.pyc -#usr/lib/python2.4/distutils/tests/test_build_py.pyo -#usr/lib/python2.4/distutils/tests/test_build_scripts.py -#usr/lib/python2.4/distutils/tests/test_build_scripts.pyc -#usr/lib/python2.4/distutils/tests/test_build_scripts.pyo -#usr/lib/python2.4/distutils/tests/test_dist.py -#usr/lib/python2.4/distutils/tests/test_dist.pyc -#usr/lib/python2.4/distutils/tests/test_dist.pyo -#usr/lib/python2.4/distutils/tests/test_install.py -#usr/lib/python2.4/distutils/tests/test_install.pyc -#usr/lib/python2.4/distutils/tests/test_install.pyo -#usr/lib/python2.4/distutils/tests/test_install_scripts.py -#usr/lib/python2.4/distutils/tests/test_install_scripts.pyc -#usr/lib/python2.4/distutils/tests/test_install_scripts.pyo -#usr/lib/python2.4/distutils/text_file.py -#usr/lib/python2.4/distutils/text_file.pyc -#usr/lib/python2.4/distutils/text_file.pyo -#usr/lib/python2.4/distutils/unixccompiler.py -#usr/lib/python2.4/distutils/unixccompiler.pyc -#usr/lib/python2.4/distutils/unixccompiler.pyo -#usr/lib/python2.4/distutils/util.py -#usr/lib/python2.4/distutils/util.pyc -#usr/lib/python2.4/distutils/util.pyo -#usr/lib/python2.4/distutils/version.py -#usr/lib/python2.4/distutils/version.pyc -#usr/lib/python2.4/distutils/version.pyo -#usr/lib/python2.4/doctest.py -usr/lib/python2.4/doctest.pyc -#usr/lib/python2.4/doctest.pyo -#usr/lib/python2.4/dumbdbm.py -usr/lib/python2.4/dumbdbm.pyc -#usr/lib/python2.4/dumbdbm.pyo -#usr/lib/python2.4/dummy_thread.py -usr/lib/python2.4/dummy_thread.pyc -#usr/lib/python2.4/dummy_thread.pyo -#usr/lib/python2.4/dummy_threading.py -usr/lib/python2.4/dummy_threading.pyc -#usr/lib/python2.4/dummy_threading.pyo -#usr/lib/python2.4/email -#usr/lib/python2.4/email/Charset.py -usr/lib/python2.4/email/Charset.pyc -#usr/lib/python2.4/email/Charset.pyo -#usr/lib/python2.4/email/Encoders.py -usr/lib/python2.4/email/Encoders.pyc -#usr/lib/python2.4/email/Encoders.pyo -#usr/lib/python2.4/email/Errors.py -usr/lib/python2.4/email/Errors.pyc -#usr/lib/python2.4/email/Errors.pyo -#usr/lib/python2.4/email/FeedParser.py -usr/lib/python2.4/email/FeedParser.pyc -#usr/lib/python2.4/email/FeedParser.pyo -#usr/lib/python2.4/email/Generator.py -usr/lib/python2.4/email/Generator.pyc -#usr/lib/python2.4/email/Generator.pyo -#usr/lib/python2.4/email/Header.py -usr/lib/python2.4/email/Header.pyc -#usr/lib/python2.4/email/Header.pyo -#usr/lib/python2.4/email/Iterators.py -usr/lib/python2.4/email/Iterators.pyc -#usr/lib/python2.4/email/Iterators.pyo -#usr/lib/python2.4/email/MIMEAudio.py -usr/lib/python2.4/email/MIMEAudio.pyc -#usr/lib/python2.4/email/MIMEAudio.pyo -#usr/lib/python2.4/email/MIMEBase.py -usr/lib/python2.4/email/MIMEBase.pyc -#usr/lib/python2.4/email/MIMEBase.pyo -#usr/lib/python2.4/email/MIMEImage.py -usr/lib/python2.4/email/MIMEImage.pyc -#usr/lib/python2.4/email/MIMEImage.pyo -#usr/lib/python2.4/email/MIMEMessage.py -usr/lib/python2.4/email/MIMEMessage.pyc -#usr/lib/python2.4/email/MIMEMessage.pyo -#usr/lib/python2.4/email/MIMEMultipart.py -usr/lib/python2.4/email/MIMEMultipart.pyc -#usr/lib/python2.4/email/MIMEMultipart.pyo -#usr/lib/python2.4/email/MIMENonMultipart.py -usr/lib/python2.4/email/MIMENonMultipart.pyc -#usr/lib/python2.4/email/MIMENonMultipart.pyo -#usr/lib/python2.4/email/MIMEText.py -usr/lib/python2.4/email/MIMEText.pyc -#usr/lib/python2.4/email/MIMEText.pyo -#usr/lib/python2.4/email/Message.py -usr/lib/python2.4/email/Message.pyc -#usr/lib/python2.4/email/Message.pyo -#usr/lib/python2.4/email/Parser.py -usr/lib/python2.4/email/Parser.pyc -#usr/lib/python2.4/email/Parser.pyo -#usr/lib/python2.4/email/Utils.py -usr/lib/python2.4/email/Utils.pyc -#usr/lib/python2.4/email/Utils.pyo -#usr/lib/python2.4/email/__init__.py -usr/lib/python2.4/email/__init__.pyc -#usr/lib/python2.4/email/__init__.pyo -#usr/lib/python2.4/email/_parseaddr.py -usr/lib/python2.4/email/_parseaddr.pyc -#usr/lib/python2.4/email/_parseaddr.pyo -#usr/lib/python2.4/email/base64MIME.py -usr/lib/python2.4/email/base64MIME.pyc -#usr/lib/python2.4/email/base64MIME.pyo -#usr/lib/python2.4/email/quopriMIME.py -usr/lib/python2.4/email/quopriMIME.pyc -#usr/lib/python2.4/email/quopriMIME.pyo -#usr/lib/python2.4/email/test -#usr/lib/python2.4/email/test/__init__.py -#usr/lib/python2.4/email/test/__init__.pyc -#usr/lib/python2.4/email/test/__init__.pyo -#usr/lib/python2.4/email/test/data -#usr/lib/python2.4/email/test/data/PyBanner048.gif -#usr/lib/python2.4/email/test/data/audiotest.au -#usr/lib/python2.4/email/test/data/msg_01.txt -#usr/lib/python2.4/email/test/data/msg_02.txt -#usr/lib/python2.4/email/test/data/msg_03.txt -#usr/lib/python2.4/email/test/data/msg_04.txt -#usr/lib/python2.4/email/test/data/msg_05.txt -#usr/lib/python2.4/email/test/data/msg_06.txt -#usr/lib/python2.4/email/test/data/msg_07.txt -#usr/lib/python2.4/email/test/data/msg_08.txt -#usr/lib/python2.4/email/test/data/msg_09.txt -#usr/lib/python2.4/email/test/data/msg_10.txt -#usr/lib/python2.4/email/test/data/msg_11.txt -#usr/lib/python2.4/email/test/data/msg_12.txt -#usr/lib/python2.4/email/test/data/msg_12a.txt -#usr/lib/python2.4/email/test/data/msg_13.txt -#usr/lib/python2.4/email/test/data/msg_14.txt -#usr/lib/python2.4/email/test/data/msg_15.txt -#usr/lib/python2.4/email/test/data/msg_16.txt -#usr/lib/python2.4/email/test/data/msg_17.txt -#usr/lib/python2.4/email/test/data/msg_18.txt -#usr/lib/python2.4/email/test/data/msg_19.txt -#usr/lib/python2.4/email/test/data/msg_20.txt -#usr/lib/python2.4/email/test/data/msg_21.txt -#usr/lib/python2.4/email/test/data/msg_22.txt -#usr/lib/python2.4/email/test/data/msg_23.txt -#usr/lib/python2.4/email/test/data/msg_24.txt -#usr/lib/python2.4/email/test/data/msg_25.txt -#usr/lib/python2.4/email/test/data/msg_26.txt -#usr/lib/python2.4/email/test/data/msg_27.txt -#usr/lib/python2.4/email/test/data/msg_28.txt -#usr/lib/python2.4/email/test/data/msg_29.txt -#usr/lib/python2.4/email/test/data/msg_30.txt -#usr/lib/python2.4/email/test/data/msg_31.txt -#usr/lib/python2.4/email/test/data/msg_32.txt -#usr/lib/python2.4/email/test/data/msg_33.txt -#usr/lib/python2.4/email/test/data/msg_34.txt -#usr/lib/python2.4/email/test/data/msg_35.txt -#usr/lib/python2.4/email/test/data/msg_36.txt -#usr/lib/python2.4/email/test/data/msg_37.txt -#usr/lib/python2.4/email/test/data/msg_38.txt -#usr/lib/python2.4/email/test/data/msg_39.txt -#usr/lib/python2.4/email/test/data/msg_40.txt -#usr/lib/python2.4/email/test/data/msg_41.txt -#usr/lib/python2.4/email/test/data/msg_42.txt -#usr/lib/python2.4/email/test/data/msg_43.txt -#usr/lib/python2.4/email/test/data/msg_44.txt -#usr/lib/python2.4/email/test/test_email.py -#usr/lib/python2.4/email/test/test_email.pyc -#usr/lib/python2.4/email/test/test_email.pyo -#usr/lib/python2.4/email/test/test_email_codecs.py -#usr/lib/python2.4/email/test/test_email_codecs.pyc -#usr/lib/python2.4/email/test/test_email_codecs.pyo -#usr/lib/python2.4/email/test/test_email_torture.py -#usr/lib/python2.4/email/test/test_email_torture.pyc -#usr/lib/python2.4/email/test/test_email_torture.pyo -#usr/lib/python2.4/encodings -#usr/lib/python2.4/encodings/__init__.py -usr/lib/python2.4/encodings/__init__.pyc -#usr/lib/python2.4/encodings/__init__.pyo -#usr/lib/python2.4/encodings/aliases.py -usr/lib/python2.4/encodings/aliases.pyc -#usr/lib/python2.4/encodings/aliases.pyo -#usr/lib/python2.4/encodings/ascii.py -usr/lib/python2.4/encodings/ascii.pyc -#usr/lib/python2.4/encodings/ascii.pyo -#usr/lib/python2.4/encodings/base64_codec.py -usr/lib/python2.4/encodings/base64_codec.pyc -#usr/lib/python2.4/encodings/base64_codec.pyo -#usr/lib/python2.4/encodings/big5.py -usr/lib/python2.4/encodings/big5.pyc -#usr/lib/python2.4/encodings/big5.pyo -#usr/lib/python2.4/encodings/big5hkscs.py -usr/lib/python2.4/encodings/big5hkscs.pyc -#usr/lib/python2.4/encodings/big5hkscs.pyo -#usr/lib/python2.4/encodings/bz2_codec.py -usr/lib/python2.4/encodings/bz2_codec.pyc -#usr/lib/python2.4/encodings/bz2_codec.pyo -#usr/lib/python2.4/encodings/charmap.py -usr/lib/python2.4/encodings/charmap.pyc -#usr/lib/python2.4/encodings/charmap.pyo -#usr/lib/python2.4/encodings/cp037.py -#usr/lib/python2.4/encodings/cp037.pyc -#usr/lib/python2.4/encodings/cp037.pyo -#usr/lib/python2.4/encodings/cp1006.py -#usr/lib/python2.4/encodings/cp1006.pyc -#usr/lib/python2.4/encodings/cp1006.pyo -#usr/lib/python2.4/encodings/cp1026.py -#usr/lib/python2.4/encodings/cp1026.pyc -#usr/lib/python2.4/encodings/cp1026.pyo -#usr/lib/python2.4/encodings/cp1140.py -#usr/lib/python2.4/encodings/cp1140.pyc -#usr/lib/python2.4/encodings/cp1140.pyo -#usr/lib/python2.4/encodings/cp1250.py -#usr/lib/python2.4/encodings/cp1250.pyc -#usr/lib/python2.4/encodings/cp1250.pyo -#usr/lib/python2.4/encodings/cp1251.py -#usr/lib/python2.4/encodings/cp1251.pyc -#usr/lib/python2.4/encodings/cp1251.pyo -#usr/lib/python2.4/encodings/cp1252.py -#usr/lib/python2.4/encodings/cp1252.pyc -#usr/lib/python2.4/encodings/cp1252.pyo -#usr/lib/python2.4/encodings/cp1253.py -#usr/lib/python2.4/encodings/cp1253.pyc -#usr/lib/python2.4/encodings/cp1253.pyo -#usr/lib/python2.4/encodings/cp1254.py -#usr/lib/python2.4/encodings/cp1254.pyc -#usr/lib/python2.4/encodings/cp1254.pyo -#usr/lib/python2.4/encodings/cp1255.py -#usr/lib/python2.4/encodings/cp1255.pyc -#usr/lib/python2.4/encodings/cp1255.pyo -#usr/lib/python2.4/encodings/cp1256.py -#usr/lib/python2.4/encodings/cp1256.pyc -#usr/lib/python2.4/encodings/cp1256.pyo -#usr/lib/python2.4/encodings/cp1257.py -#usr/lib/python2.4/encodings/cp1257.pyc -#usr/lib/python2.4/encodings/cp1257.pyo -#usr/lib/python2.4/encodings/cp1258.py -#usr/lib/python2.4/encodings/cp1258.pyc -#usr/lib/python2.4/encodings/cp1258.pyo -#usr/lib/python2.4/encodings/cp424.py -#usr/lib/python2.4/encodings/cp424.pyc -#usr/lib/python2.4/encodings/cp424.pyo -#usr/lib/python2.4/encodings/cp437.py -#usr/lib/python2.4/encodings/cp437.pyc -#usr/lib/python2.4/encodings/cp437.pyo -#usr/lib/python2.4/encodings/cp500.py -#usr/lib/python2.4/encodings/cp500.pyc -#usr/lib/python2.4/encodings/cp500.pyo -#usr/lib/python2.4/encodings/cp737.py -#usr/lib/python2.4/encodings/cp737.pyc -#usr/lib/python2.4/encodings/cp737.pyo -#usr/lib/python2.4/encodings/cp775.py -#usr/lib/python2.4/encodings/cp775.pyc -#usr/lib/python2.4/encodings/cp775.pyo -#usr/lib/python2.4/encodings/cp850.py -#usr/lib/python2.4/encodings/cp850.pyc -#usr/lib/python2.4/encodings/cp850.pyo -#usr/lib/python2.4/encodings/cp852.py -#usr/lib/python2.4/encodings/cp852.pyc -#usr/lib/python2.4/encodings/cp852.pyo -#usr/lib/python2.4/encodings/cp855.py -#usr/lib/python2.4/encodings/cp855.pyc -#usr/lib/python2.4/encodings/cp855.pyo -#usr/lib/python2.4/encodings/cp856.py -#usr/lib/python2.4/encodings/cp856.pyc -#usr/lib/python2.4/encodings/cp856.pyo -#usr/lib/python2.4/encodings/cp857.py -#usr/lib/python2.4/encodings/cp857.pyc -#usr/lib/python2.4/encodings/cp857.pyo -#usr/lib/python2.4/encodings/cp860.py -#usr/lib/python2.4/encodings/cp860.pyc -#usr/lib/python2.4/encodings/cp860.pyo -#usr/lib/python2.4/encodings/cp861.py -#usr/lib/python2.4/encodings/cp861.pyc -#usr/lib/python2.4/encodings/cp861.pyo -#usr/lib/python2.4/encodings/cp862.py -#usr/lib/python2.4/encodings/cp862.pyc -#usr/lib/python2.4/encodings/cp862.pyo -#usr/lib/python2.4/encodings/cp863.py -#usr/lib/python2.4/encodings/cp863.pyc -#usr/lib/python2.4/encodings/cp863.pyo -#usr/lib/python2.4/encodings/cp864.py -#usr/lib/python2.4/encodings/cp864.pyc -#usr/lib/python2.4/encodings/cp864.pyo -#usr/lib/python2.4/encodings/cp865.py -#usr/lib/python2.4/encodings/cp865.pyc -#usr/lib/python2.4/encodings/cp865.pyo -#usr/lib/python2.4/encodings/cp866.py -#usr/lib/python2.4/encodings/cp866.pyc -#usr/lib/python2.4/encodings/cp866.pyo -#usr/lib/python2.4/encodings/cp869.py -#usr/lib/python2.4/encodings/cp869.pyc -#usr/lib/python2.4/encodings/cp869.pyo -#usr/lib/python2.4/encodings/cp874.py -#usr/lib/python2.4/encodings/cp874.pyc -#usr/lib/python2.4/encodings/cp874.pyo -#usr/lib/python2.4/encodings/cp875.py -#usr/lib/python2.4/encodings/cp875.pyc -#usr/lib/python2.4/encodings/cp875.pyo -#usr/lib/python2.4/encodings/cp932.py -#usr/lib/python2.4/encodings/cp932.pyc -#usr/lib/python2.4/encodings/cp932.pyo -#usr/lib/python2.4/encodings/cp949.py -#usr/lib/python2.4/encodings/cp949.pyc -#usr/lib/python2.4/encodings/cp949.pyo -#usr/lib/python2.4/encodings/cp950.py -#usr/lib/python2.4/encodings/cp950.pyc -#usr/lib/python2.4/encodings/cp950.pyo -#usr/lib/python2.4/encodings/euc_jis_2004.py -#usr/lib/python2.4/encodings/euc_jis_2004.pyc -#usr/lib/python2.4/encodings/euc_jis_2004.pyo -#usr/lib/python2.4/encodings/euc_jisx0213.py -#usr/lib/python2.4/encodings/euc_jisx0213.pyc -#usr/lib/python2.4/encodings/euc_jisx0213.pyo -#usr/lib/python2.4/encodings/euc_jp.py -#usr/lib/python2.4/encodings/euc_jp.pyc -#usr/lib/python2.4/encodings/euc_jp.pyo -#usr/lib/python2.4/encodings/euc_kr.py -#usr/lib/python2.4/encodings/euc_kr.pyc -#usr/lib/python2.4/encodings/euc_kr.pyo -#usr/lib/python2.4/encodings/gb18030.py -#usr/lib/python2.4/encodings/gb18030.pyc -#usr/lib/python2.4/encodings/gb18030.pyo -#usr/lib/python2.4/encodings/gb2312.py -#usr/lib/python2.4/encodings/gb2312.pyc -#usr/lib/python2.4/encodings/gb2312.pyo -#usr/lib/python2.4/encodings/gbk.py -#usr/lib/python2.4/encodings/gbk.pyc -#usr/lib/python2.4/encodings/gbk.pyo -#usr/lib/python2.4/encodings/hex_codec.py -usr/lib/python2.4/encodings/hex_codec.pyc -#usr/lib/python2.4/encodings/hex_codec.pyo -#usr/lib/python2.4/encodings/hp_roman8.py -#usr/lib/python2.4/encodings/hp_roman8.pyc -#usr/lib/python2.4/encodings/hp_roman8.pyo -#usr/lib/python2.4/encodings/hz.py -#usr/lib/python2.4/encodings/hz.pyc -#usr/lib/python2.4/encodings/hz.pyo -#usr/lib/python2.4/encodings/idna.py -#usr/lib/python2.4/encodings/idna.pyc -#usr/lib/python2.4/encodings/idna.pyo -#usr/lib/python2.4/encodings/iso2022_jp.py -#usr/lib/python2.4/encodings/iso2022_jp.pyc -#usr/lib/python2.4/encodings/iso2022_jp.pyo -#usr/lib/python2.4/encodings/iso2022_jp_1.py -#usr/lib/python2.4/encodings/iso2022_jp_1.pyc -#usr/lib/python2.4/encodings/iso2022_jp_1.pyo -#usr/lib/python2.4/encodings/iso2022_jp_2.py -#usr/lib/python2.4/encodings/iso2022_jp_2.pyc -#usr/lib/python2.4/encodings/iso2022_jp_2.pyo -#usr/lib/python2.4/encodings/iso2022_jp_2004.py -#usr/lib/python2.4/encodings/iso2022_jp_2004.pyc -#usr/lib/python2.4/encodings/iso2022_jp_2004.pyo -#usr/lib/python2.4/encodings/iso2022_jp_3.py -#usr/lib/python2.4/encodings/iso2022_jp_3.pyc -#usr/lib/python2.4/encodings/iso2022_jp_3.pyo -#usr/lib/python2.4/encodings/iso2022_jp_ext.py -#usr/lib/python2.4/encodings/iso2022_jp_ext.pyc -#usr/lib/python2.4/encodings/iso2022_jp_ext.pyo -#usr/lib/python2.4/encodings/iso2022_kr.py -#usr/lib/python2.4/encodings/iso2022_kr.pyc -#usr/lib/python2.4/encodings/iso2022_kr.pyo -#usr/lib/python2.4/encodings/iso8859_1.py -usr/lib/python2.4/encodings/iso8859_1.pyc -#usr/lib/python2.4/encodings/iso8859_1.pyo -#usr/lib/python2.4/encodings/iso8859_10.py -usr/lib/python2.4/encodings/iso8859_10.pyc -#usr/lib/python2.4/encodings/iso8859_10.pyo -#usr/lib/python2.4/encodings/iso8859_11.py -usr/lib/python2.4/encodings/iso8859_11.pyc -#usr/lib/python2.4/encodings/iso8859_11.pyo -#usr/lib/python2.4/encodings/iso8859_13.py -usr/lib/python2.4/encodings/iso8859_13.pyc -#usr/lib/python2.4/encodings/iso8859_13.pyo -#usr/lib/python2.4/encodings/iso8859_14.py -usr/lib/python2.4/encodings/iso8859_14.pyc -#usr/lib/python2.4/encodings/iso8859_14.pyo -#usr/lib/python2.4/encodings/iso8859_15.py -usr/lib/python2.4/encodings/iso8859_15.pyc -#usr/lib/python2.4/encodings/iso8859_15.pyo -#usr/lib/python2.4/encodings/iso8859_16.py -usr/lib/python2.4/encodings/iso8859_16.pyc -#usr/lib/python2.4/encodings/iso8859_16.pyo -#usr/lib/python2.4/encodings/iso8859_2.py -usr/lib/python2.4/encodings/iso8859_2.pyc -#usr/lib/python2.4/encodings/iso8859_2.pyo -#usr/lib/python2.4/encodings/iso8859_3.py -usr/lib/python2.4/encodings/iso8859_3.pyc -#usr/lib/python2.4/encodings/iso8859_3.pyo -#usr/lib/python2.4/encodings/iso8859_4.py -usr/lib/python2.4/encodings/iso8859_4.pyc -#usr/lib/python2.4/encodings/iso8859_4.pyo -#usr/lib/python2.4/encodings/iso8859_5.py -usr/lib/python2.4/encodings/iso8859_5.pyc -#usr/lib/python2.4/encodings/iso8859_5.pyo -#usr/lib/python2.4/encodings/iso8859_6.py -usr/lib/python2.4/encodings/iso8859_6.pyc -#usr/lib/python2.4/encodings/iso8859_6.pyo -#usr/lib/python2.4/encodings/iso8859_7.py -usr/lib/python2.4/encodings/iso8859_7.pyc -#usr/lib/python2.4/encodings/iso8859_7.pyo -#usr/lib/python2.4/encodings/iso8859_8.py -usr/lib/python2.4/encodings/iso8859_8.pyc -#usr/lib/python2.4/encodings/iso8859_8.pyo -#usr/lib/python2.4/encodings/iso8859_9.py -usr/lib/python2.4/encodings/iso8859_9.pyc -#usr/lib/python2.4/encodings/iso8859_9.pyo -#usr/lib/python2.4/encodings/johab.py -#usr/lib/python2.4/encodings/johab.pyc -#usr/lib/python2.4/encodings/johab.pyo -#usr/lib/python2.4/encodings/koi8_r.py -usr/lib/python2.4/encodings/koi8_r.pyc -#usr/lib/python2.4/encodings/koi8_r.pyo -#usr/lib/python2.4/encodings/koi8_u.py -#usr/lib/python2.4/encodings/koi8_u.pyc -#usr/lib/python2.4/encodings/koi8_u.pyo -#usr/lib/python2.4/encodings/latin_1.py -usr/lib/python2.4/encodings/latin_1.pyc -#usr/lib/python2.4/encodings/latin_1.pyo -#usr/lib/python2.4/encodings/mac_cyrillic.py -#usr/lib/python2.4/encodings/mac_cyrillic.pyc -#usr/lib/python2.4/encodings/mac_cyrillic.pyo -#usr/lib/python2.4/encodings/mac_greek.py -#usr/lib/python2.4/encodings/mac_greek.pyc -#usr/lib/python2.4/encodings/mac_greek.pyo -#usr/lib/python2.4/encodings/mac_iceland.py -#usr/lib/python2.4/encodings/mac_iceland.pyc -#usr/lib/python2.4/encodings/mac_iceland.pyo -#usr/lib/python2.4/encodings/mac_latin2.py -#usr/lib/python2.4/encodings/mac_latin2.pyc -#usr/lib/python2.4/encodings/mac_latin2.pyo -#usr/lib/python2.4/encodings/mac_roman.py -#usr/lib/python2.4/encodings/mac_roman.pyc -#usr/lib/python2.4/encodings/mac_roman.pyo -#usr/lib/python2.4/encodings/mac_turkish.py -#usr/lib/python2.4/encodings/mac_turkish.pyc -#usr/lib/python2.4/encodings/mac_turkish.pyo -#usr/lib/python2.4/encodings/mbcs.py -#usr/lib/python2.4/encodings/mbcs.pyc -#usr/lib/python2.4/encodings/mbcs.pyo -#usr/lib/python2.4/encodings/palmos.py -#usr/lib/python2.4/encodings/palmos.pyc -#usr/lib/python2.4/encodings/palmos.pyo -#usr/lib/python2.4/encodings/ptcp154.py -#usr/lib/python2.4/encodings/ptcp154.pyc -#usr/lib/python2.4/encodings/ptcp154.pyo -#usr/lib/python2.4/encodings/punycode.py -#usr/lib/python2.4/encodings/punycode.pyc -#usr/lib/python2.4/encodings/punycode.pyo -#usr/lib/python2.4/encodings/quopri_codec.py -#usr/lib/python2.4/encodings/quopri_codec.pyc -#usr/lib/python2.4/encodings/quopri_codec.pyo -#usr/lib/python2.4/encodings/raw_unicode_escape.py -usr/lib/python2.4/encodings/raw_unicode_escape.pyc -#usr/lib/python2.4/encodings/raw_unicode_escape.pyo -#usr/lib/python2.4/encodings/rot_13.py -#usr/lib/python2.4/encodings/rot_13.pyc -#usr/lib/python2.4/encodings/rot_13.pyo -#usr/lib/python2.4/encodings/shift_jis.py -#usr/lib/python2.4/encodings/shift_jis.pyc -#usr/lib/python2.4/encodings/shift_jis.pyo -#usr/lib/python2.4/encodings/shift_jis_2004.py -#usr/lib/python2.4/encodings/shift_jis_2004.pyc -#usr/lib/python2.4/encodings/shift_jis_2004.pyo -#usr/lib/python2.4/encodings/shift_jisx0213.py -#usr/lib/python2.4/encodings/shift_jisx0213.pyc -#usr/lib/python2.4/encodings/shift_jisx0213.pyo -#usr/lib/python2.4/encodings/string_escape.py -usr/lib/python2.4/encodings/string_escape.pyc -#usr/lib/python2.4/encodings/string_escape.pyo -#usr/lib/python2.4/encodings/tis_620.py -#usr/lib/python2.4/encodings/tis_620.pyc -#usr/lib/python2.4/encodings/tis_620.pyo -#usr/lib/python2.4/encodings/undefined.py -usr/lib/python2.4/encodings/undefined.pyc -#usr/lib/python2.4/encodings/undefined.pyo -#usr/lib/python2.4/encodings/unicode_escape.py -usr/lib/python2.4/encodings/unicode_escape.pyc -#usr/lib/python2.4/encodings/unicode_escape.pyo -#usr/lib/python2.4/encodings/unicode_internal.py -usr/lib/python2.4/encodings/unicode_internal.pyc -#usr/lib/python2.4/encodings/unicode_internal.pyo -#usr/lib/python2.4/encodings/utf_16.py -usr/lib/python2.4/encodings/utf_16.pyc -#usr/lib/python2.4/encodings/utf_16.pyo -#usr/lib/python2.4/encodings/utf_16_be.py -usr/lib/python2.4/encodings/utf_16_be.pyc -#usr/lib/python2.4/encodings/utf_16_be.pyo -#usr/lib/python2.4/encodings/utf_16_le.py -usr/lib/python2.4/encodings/utf_16_le.pyc -#usr/lib/python2.4/encodings/utf_16_le.pyo -#usr/lib/python2.4/encodings/utf_7.py -usr/lib/python2.4/encodings/utf_7.pyc -#usr/lib/python2.4/encodings/utf_7.pyo -#usr/lib/python2.4/encodings/utf_8.py -usr/lib/python2.4/encodings/utf_8.pyc -#usr/lib/python2.4/encodings/utf_8.pyo -#usr/lib/python2.4/encodings/uu_codec.py -usr/lib/python2.4/encodings/uu_codec.pyc -#usr/lib/python2.4/encodings/uu_codec.pyo -#usr/lib/python2.4/encodings/zlib_codec.py -usr/lib/python2.4/encodings/zlib_codec.pyc -#usr/lib/python2.4/encodings/zlib_codec.pyo -#usr/lib/python2.4/filecmp.py -usr/lib/python2.4/filecmp.pyc -#usr/lib/python2.4/filecmp.pyo -#usr/lib/python2.4/fileinput.py -usr/lib/python2.4/fileinput.pyc -#usr/lib/python2.4/fileinput.pyo -#usr/lib/python2.4/fnmatch.py -usr/lib/python2.4/fnmatch.pyc -#usr/lib/python2.4/fnmatch.pyo -#usr/lib/python2.4/formatter.py -usr/lib/python2.4/formatter.pyc -#usr/lib/python2.4/formatter.pyo -#usr/lib/python2.4/fpformat.py -usr/lib/python2.4/fpformat.pyc -#usr/lib/python2.4/fpformat.pyo -#usr/lib/python2.4/ftplib.py -usr/lib/python2.4/ftplib.pyc -#usr/lib/python2.4/ftplib.pyo -#usr/lib/python2.4/getopt.py -usr/lib/python2.4/getopt.pyc -#usr/lib/python2.4/getopt.pyo -#usr/lib/python2.4/getpass.py -usr/lib/python2.4/getpass.pyc -#usr/lib/python2.4/getpass.pyo -#usr/lib/python2.4/gettext.py -usr/lib/python2.4/gettext.pyc -#usr/lib/python2.4/gettext.pyo -#usr/lib/python2.4/glob.py -usr/lib/python2.4/glob.pyc -#usr/lib/python2.4/glob.pyo -#usr/lib/python2.4/gopherlib.py -usr/lib/python2.4/gopherlib.pyc -#usr/lib/python2.4/gopherlib.pyo -#usr/lib/python2.4/gzip.py -usr/lib/python2.4/gzip.pyc -#usr/lib/python2.4/gzip.pyo -#usr/lib/python2.4/heapq.py -usr/lib/python2.4/heapq.pyc -#usr/lib/python2.4/heapq.pyo -#usr/lib/python2.4/hmac.py -usr/lib/python2.4/hmac.pyc -#usr/lib/python2.4/hmac.pyo -#usr/lib/python2.4/hotshot -#usr/lib/python2.4/hotshot/__init__.py -#usr/lib/python2.4/hotshot/__init__.pyc -#usr/lib/python2.4/hotshot/__init__.pyo -#usr/lib/python2.4/hotshot/log.py -#usr/lib/python2.4/hotshot/log.pyc -#usr/lib/python2.4/hotshot/log.pyo -#usr/lib/python2.4/hotshot/stats.py -#usr/lib/python2.4/hotshot/stats.pyc -#usr/lib/python2.4/hotshot/stats.pyo -#usr/lib/python2.4/hotshot/stones.py -#usr/lib/python2.4/hotshot/stones.pyc -#usr/lib/python2.4/hotshot/stones.pyo -#usr/lib/python2.4/htmlentitydefs.py -usr/lib/python2.4/htmlentitydefs.pyc -#usr/lib/python2.4/htmlentitydefs.pyo -#usr/lib/python2.4/htmllib.py -#usr/lib/python2.4/htmllib.pyc -#usr/lib/python2.4/htmllib.pyo -#usr/lib/python2.4/httplib.py -#usr/lib/python2.4/httplib.pyc -#usr/lib/python2.4/httplib.pyo -#usr/lib/python2.4/idlelib -#usr/lib/python2.4/idlelib/AutoExpand.py -#usr/lib/python2.4/idlelib/AutoExpand.pyc -#usr/lib/python2.4/idlelib/AutoExpand.pyo -#usr/lib/python2.4/idlelib/Bindings.py -#usr/lib/python2.4/idlelib/Bindings.pyc -#usr/lib/python2.4/idlelib/Bindings.pyo -#usr/lib/python2.4/idlelib/CREDITS.txt -#usr/lib/python2.4/idlelib/CallTipWindow.py -#usr/lib/python2.4/idlelib/CallTipWindow.pyc -#usr/lib/python2.4/idlelib/CallTipWindow.pyo -#usr/lib/python2.4/idlelib/CallTips.py -#usr/lib/python2.4/idlelib/CallTips.pyc -#usr/lib/python2.4/idlelib/CallTips.pyo -#usr/lib/python2.4/idlelib/ChangeLog -#usr/lib/python2.4/idlelib/ClassBrowser.py -#usr/lib/python2.4/idlelib/ClassBrowser.pyc -#usr/lib/python2.4/idlelib/ClassBrowser.pyo -#usr/lib/python2.4/idlelib/CodeContext.py -#usr/lib/python2.4/idlelib/CodeContext.pyc -#usr/lib/python2.4/idlelib/CodeContext.pyo -#usr/lib/python2.4/idlelib/ColorDelegator.py -#usr/lib/python2.4/idlelib/ColorDelegator.pyc -#usr/lib/python2.4/idlelib/ColorDelegator.pyo -#usr/lib/python2.4/idlelib/Debugger.py -#usr/lib/python2.4/idlelib/Debugger.pyc -#usr/lib/python2.4/idlelib/Debugger.pyo -#usr/lib/python2.4/idlelib/Delegator.py -#usr/lib/python2.4/idlelib/Delegator.pyc -#usr/lib/python2.4/idlelib/Delegator.pyo -#usr/lib/python2.4/idlelib/EditorWindow.py -#usr/lib/python2.4/idlelib/EditorWindow.pyc -#usr/lib/python2.4/idlelib/EditorWindow.pyo -#usr/lib/python2.4/idlelib/FileList.py -#usr/lib/python2.4/idlelib/FileList.pyc -#usr/lib/python2.4/idlelib/FileList.pyo -#usr/lib/python2.4/idlelib/FormatParagraph.py -#usr/lib/python2.4/idlelib/FormatParagraph.pyc -#usr/lib/python2.4/idlelib/FormatParagraph.pyo -#usr/lib/python2.4/idlelib/GrepDialog.py -#usr/lib/python2.4/idlelib/GrepDialog.pyc -#usr/lib/python2.4/idlelib/GrepDialog.pyo -#usr/lib/python2.4/idlelib/HISTORY.txt -#usr/lib/python2.4/idlelib/IOBinding.py -#usr/lib/python2.4/idlelib/IOBinding.pyc -#usr/lib/python2.4/idlelib/IOBinding.pyo -#usr/lib/python2.4/idlelib/Icons -#usr/lib/python2.4/idlelib/Icons/folder.gif -#usr/lib/python2.4/idlelib/Icons/idle.icns -#usr/lib/python2.4/idlelib/Icons/minusnode.gif -#usr/lib/python2.4/idlelib/Icons/openfolder.gif -#usr/lib/python2.4/idlelib/Icons/plusnode.gif -#usr/lib/python2.4/idlelib/Icons/python.gif -#usr/lib/python2.4/idlelib/Icons/tk.gif -#usr/lib/python2.4/idlelib/IdleHistory.py -#usr/lib/python2.4/idlelib/IdleHistory.pyc -#usr/lib/python2.4/idlelib/IdleHistory.pyo -#usr/lib/python2.4/idlelib/MultiStatusBar.py -#usr/lib/python2.4/idlelib/MultiStatusBar.pyc -#usr/lib/python2.4/idlelib/MultiStatusBar.pyo -#usr/lib/python2.4/idlelib/NEWS.txt -#usr/lib/python2.4/idlelib/ObjectBrowser.py -#usr/lib/python2.4/idlelib/ObjectBrowser.pyc -#usr/lib/python2.4/idlelib/ObjectBrowser.pyo -#usr/lib/python2.4/idlelib/OutputWindow.py -#usr/lib/python2.4/idlelib/OutputWindow.pyc -#usr/lib/python2.4/idlelib/OutputWindow.pyo -#usr/lib/python2.4/idlelib/ParenMatch.py -#usr/lib/python2.4/idlelib/ParenMatch.pyc -#usr/lib/python2.4/idlelib/ParenMatch.pyo -#usr/lib/python2.4/idlelib/PathBrowser.py -#usr/lib/python2.4/idlelib/PathBrowser.pyc -#usr/lib/python2.4/idlelib/PathBrowser.pyo -#usr/lib/python2.4/idlelib/Percolator.py -#usr/lib/python2.4/idlelib/Percolator.pyc -#usr/lib/python2.4/idlelib/Percolator.pyo -#usr/lib/python2.4/idlelib/PyParse.py -#usr/lib/python2.4/idlelib/PyParse.pyc -#usr/lib/python2.4/idlelib/PyParse.pyo -#usr/lib/python2.4/idlelib/PyShell.py -#usr/lib/python2.4/idlelib/PyShell.pyc -#usr/lib/python2.4/idlelib/PyShell.pyo -#usr/lib/python2.4/idlelib/README.txt -#usr/lib/python2.4/idlelib/RemoteDebugger.py -#usr/lib/python2.4/idlelib/RemoteDebugger.pyc -#usr/lib/python2.4/idlelib/RemoteDebugger.pyo -#usr/lib/python2.4/idlelib/RemoteObjectBrowser.py -#usr/lib/python2.4/idlelib/RemoteObjectBrowser.pyc -#usr/lib/python2.4/idlelib/RemoteObjectBrowser.pyo -#usr/lib/python2.4/idlelib/ReplaceDialog.py -#usr/lib/python2.4/idlelib/ReplaceDialog.pyc -#usr/lib/python2.4/idlelib/ReplaceDialog.pyo -#usr/lib/python2.4/idlelib/ScriptBinding.py -#usr/lib/python2.4/idlelib/ScriptBinding.pyc -#usr/lib/python2.4/idlelib/ScriptBinding.pyo -#usr/lib/python2.4/idlelib/ScrolledList.py -#usr/lib/python2.4/idlelib/ScrolledList.pyc -#usr/lib/python2.4/idlelib/ScrolledList.pyo -#usr/lib/python2.4/idlelib/SearchDialog.py -#usr/lib/python2.4/idlelib/SearchDialog.pyc -#usr/lib/python2.4/idlelib/SearchDialog.pyo -#usr/lib/python2.4/idlelib/SearchDialogBase.py -#usr/lib/python2.4/idlelib/SearchDialogBase.pyc -#usr/lib/python2.4/idlelib/SearchDialogBase.pyo -#usr/lib/python2.4/idlelib/SearchEngine.py -#usr/lib/python2.4/idlelib/SearchEngine.pyc -#usr/lib/python2.4/idlelib/SearchEngine.pyo -#usr/lib/python2.4/idlelib/StackViewer.py -#usr/lib/python2.4/idlelib/StackViewer.pyc -#usr/lib/python2.4/idlelib/StackViewer.pyo -#usr/lib/python2.4/idlelib/TODO.txt -#usr/lib/python2.4/idlelib/ToolTip.py -#usr/lib/python2.4/idlelib/ToolTip.pyc -#usr/lib/python2.4/idlelib/ToolTip.pyo -#usr/lib/python2.4/idlelib/TreeWidget.py -#usr/lib/python2.4/idlelib/TreeWidget.pyc -#usr/lib/python2.4/idlelib/TreeWidget.pyo -#usr/lib/python2.4/idlelib/UndoDelegator.py -#usr/lib/python2.4/idlelib/UndoDelegator.pyc -#usr/lib/python2.4/idlelib/UndoDelegator.pyo -#usr/lib/python2.4/idlelib/WidgetRedirector.py -#usr/lib/python2.4/idlelib/WidgetRedirector.pyc -#usr/lib/python2.4/idlelib/WidgetRedirector.pyo -#usr/lib/python2.4/idlelib/WindowList.py -#usr/lib/python2.4/idlelib/WindowList.pyc -#usr/lib/python2.4/idlelib/WindowList.pyo -#usr/lib/python2.4/idlelib/ZoomHeight.py -#usr/lib/python2.4/idlelib/ZoomHeight.pyc -#usr/lib/python2.4/idlelib/ZoomHeight.pyo -#usr/lib/python2.4/idlelib/__init__.py -#usr/lib/python2.4/idlelib/__init__.pyc -#usr/lib/python2.4/idlelib/__init__.pyo -#usr/lib/python2.4/idlelib/aboutDialog.py -#usr/lib/python2.4/idlelib/aboutDialog.pyc -#usr/lib/python2.4/idlelib/aboutDialog.pyo -#usr/lib/python2.4/idlelib/buildapp.py -#usr/lib/python2.4/idlelib/buildapp.pyc -#usr/lib/python2.4/idlelib/buildapp.pyo -#usr/lib/python2.4/idlelib/config-extensions.def -#usr/lib/python2.4/idlelib/config-highlight.def -#usr/lib/python2.4/idlelib/config-keys.def -#usr/lib/python2.4/idlelib/config-main.def -#usr/lib/python2.4/idlelib/configDialog.py -#usr/lib/python2.4/idlelib/configDialog.pyc -#usr/lib/python2.4/idlelib/configDialog.pyo -#usr/lib/python2.4/idlelib/configHandler.py -#usr/lib/python2.4/idlelib/configHandler.pyc -#usr/lib/python2.4/idlelib/configHandler.pyo -#usr/lib/python2.4/idlelib/configHelpSourceEdit.py -#usr/lib/python2.4/idlelib/configHelpSourceEdit.pyc -#usr/lib/python2.4/idlelib/configHelpSourceEdit.pyo -#usr/lib/python2.4/idlelib/configSectionNameDialog.py -#usr/lib/python2.4/idlelib/configSectionNameDialog.pyc -#usr/lib/python2.4/idlelib/configSectionNameDialog.pyo -#usr/lib/python2.4/idlelib/dynOptionMenuWidget.py -#usr/lib/python2.4/idlelib/dynOptionMenuWidget.pyc -#usr/lib/python2.4/idlelib/dynOptionMenuWidget.pyo -#usr/lib/python2.4/idlelib/extend.txt -#usr/lib/python2.4/idlelib/help.txt -#usr/lib/python2.4/idlelib/idle.bat -#usr/lib/python2.4/idlelib/idle.py -#usr/lib/python2.4/idlelib/idle.pyc -#usr/lib/python2.4/idlelib/idle.pyo -#usr/lib/python2.4/idlelib/idle.pyw -#usr/lib/python2.4/idlelib/idlever.py -#usr/lib/python2.4/idlelib/idlever.pyc -#usr/lib/python2.4/idlelib/idlever.pyo -#usr/lib/python2.4/idlelib/keybindingDialog.py -#usr/lib/python2.4/idlelib/keybindingDialog.pyc -#usr/lib/python2.4/idlelib/keybindingDialog.pyo -#usr/lib/python2.4/idlelib/rpc.py -#usr/lib/python2.4/idlelib/rpc.pyc -#usr/lib/python2.4/idlelib/rpc.pyo -#usr/lib/python2.4/idlelib/run.py -#usr/lib/python2.4/idlelib/run.pyc -#usr/lib/python2.4/idlelib/run.pyo -#usr/lib/python2.4/idlelib/tabpage.py -#usr/lib/python2.4/idlelib/tabpage.pyc -#usr/lib/python2.4/idlelib/tabpage.pyo -#usr/lib/python2.4/idlelib/testcode.py -#usr/lib/python2.4/idlelib/testcode.pyc -#usr/lib/python2.4/idlelib/testcode.pyo -#usr/lib/python2.4/idlelib/textView.py -#usr/lib/python2.4/idlelib/textView.pyc -#usr/lib/python2.4/idlelib/textView.pyo -#usr/lib/python2.4/ihooks.py -usr/lib/python2.4/ihooks.pyc -#usr/lib/python2.4/ihooks.pyo -#usr/lib/python2.4/imaplib.py -usr/lib/python2.4/imaplib.pyc -#usr/lib/python2.4/imaplib.pyo -#usr/lib/python2.4/imghdr.py -usr/lib/python2.4/imghdr.pyc -#usr/lib/python2.4/imghdr.pyo -#usr/lib/python2.4/imputil.py -usr/lib/python2.4/imputil.pyc -#usr/lib/python2.4/imputil.pyo -#usr/lib/python2.4/inspect.py -usr/lib/python2.4/inspect.pyc -#usr/lib/python2.4/inspect.pyo -#usr/lib/python2.4/keyword.py -usr/lib/python2.4/keyword.pyc -#usr/lib/python2.4/keyword.pyo -#usr/lib/python2.4/lib-dynload -usr/lib/python2.4/lib-dynload/_bisect.so -usr/lib/python2.4/lib-dynload/_bsddb.so -usr/lib/python2.4/lib-dynload/_codecs_cn.so -usr/lib/python2.4/lib-dynload/_codecs_hk.so -usr/lib/python2.4/lib-dynload/_codecs_iso2022.so -usr/lib/python2.4/lib-dynload/_codecs_jp.so -usr/lib/python2.4/lib-dynload/_codecs_kr.so -usr/lib/python2.4/lib-dynload/_codecs_tw.so -usr/lib/python2.4/lib-dynload/_csv.so -usr/lib/python2.4/lib-dynload/_curses.so -usr/lib/python2.4/lib-dynload/_curses_panel.so -usr/lib/python2.4/lib-dynload/_heapq.so -usr/lib/python2.4/lib-dynload/_hotshot.so -usr/lib/python2.4/lib-dynload/_locale.so -usr/lib/python2.4/lib-dynload/_multibytecodec.so -usr/lib/python2.4/lib-dynload/_random.so -usr/lib/python2.4/lib-dynload/_socket.so -usr/lib/python2.4/lib-dynload/_ssl.so -usr/lib/python2.4/lib-dynload/_testcapi.so -usr/lib/python2.4/lib-dynload/_weakref.so -usr/lib/python2.4/lib-dynload/array.so -usr/lib/python2.4/lib-dynload/audioop.so -usr/lib/python2.4/lib-dynload/binascii.so -usr/lib/python2.4/lib-dynload/bz2.so -usr/lib/python2.4/lib-dynload/cPickle.so -usr/lib/python2.4/lib-dynload/cStringIO.so -usr/lib/python2.4/lib-dynload/cmath.so -usr/lib/python2.4/lib-dynload/collections.so -usr/lib/python2.4/lib-dynload/crypt.so -usr/lib/python2.4/lib-dynload/datetime.so -usr/lib/python2.4/lib-dynload/dbm.so -usr/lib/python2.4/lib-dynload/dl.so -usr/lib/python2.4/lib-dynload/fcntl.so -usr/lib/python2.4/lib-dynload/gdbm.so -usr/lib/python2.4/lib-dynload/grp.so -usr/lib/python2.4/lib-dynload/imageop.so -usr/lib/python2.4/lib-dynload/itertools.so -#usr/lib/python2.4/lib-dynload/linuxaudiodev.so -usr/lib/python2.4/lib-dynload/math.so -usr/lib/python2.4/lib-dynload/md5.so -usr/lib/python2.4/lib-dynload/mmap.so -usr/lib/python2.4/lib-dynload/nis.so -usr/lib/python2.4/lib-dynload/operator.so -#usr/lib/python2.4/lib-dynload/ossaudiodev.so -usr/lib/python2.4/lib-dynload/parser.so -usr/lib/python2.4/lib-dynload/pyexpat.so -usr/lib/python2.4/lib-dynload/readline.so -usr/lib/python2.4/lib-dynload/regex.so -usr/lib/python2.4/lib-dynload/resource.so -usr/lib/python2.4/lib-dynload/rgbimg.so -usr/lib/python2.4/lib-dynload/select.so -usr/lib/python2.4/lib-dynload/sha.so -usr/lib/python2.4/lib-dynload/strop.so -usr/lib/python2.4/lib-dynload/struct.so -usr/lib/python2.4/lib-dynload/syslog.so -usr/lib/python2.4/lib-dynload/termios.so -usr/lib/python2.4/lib-dynload/time.so -usr/lib/python2.4/lib-dynload/timing.so -usr/lib/python2.4/lib-dynload/unicodedata.so -usr/lib/python2.4/lib-dynload/zlib.so -#usr/lib/python2.4/lib-old -#usr/lib/python2.4/lib-old/Para.py -#usr/lib/python2.4/lib-old/Para.pyc -#usr/lib/python2.4/lib-old/Para.pyo -#usr/lib/python2.4/lib-old/addpack.py -#usr/lib/python2.4/lib-old/addpack.pyc -#usr/lib/python2.4/lib-old/addpack.pyo -#usr/lib/python2.4/lib-old/cmp.py -#usr/lib/python2.4/lib-old/cmp.pyc -#usr/lib/python2.4/lib-old/cmp.pyo -#usr/lib/python2.4/lib-old/cmpcache.py -#usr/lib/python2.4/lib-old/cmpcache.pyc -#usr/lib/python2.4/lib-old/cmpcache.pyo -#usr/lib/python2.4/lib-old/codehack.py -#usr/lib/python2.4/lib-old/codehack.pyc -#usr/lib/python2.4/lib-old/codehack.pyo -#usr/lib/python2.4/lib-old/dircmp.py -#usr/lib/python2.4/lib-old/dircmp.pyc -#usr/lib/python2.4/lib-old/dircmp.pyo -#usr/lib/python2.4/lib-old/dump.py -#usr/lib/python2.4/lib-old/dump.pyc -#usr/lib/python2.4/lib-old/dump.pyo -#usr/lib/python2.4/lib-old/find.py -#usr/lib/python2.4/lib-old/find.pyc -#usr/lib/python2.4/lib-old/find.pyo -#usr/lib/python2.4/lib-old/fmt.py -#usr/lib/python2.4/lib-old/fmt.pyc -#usr/lib/python2.4/lib-old/fmt.pyo -#usr/lib/python2.4/lib-old/grep.py -#usr/lib/python2.4/lib-old/grep.pyc -#usr/lib/python2.4/lib-old/grep.pyo -#usr/lib/python2.4/lib-old/lockfile.py -#usr/lib/python2.4/lib-old/lockfile.pyc -#usr/lib/python2.4/lib-old/lockfile.pyo -#usr/lib/python2.4/lib-old/newdir.py -#usr/lib/python2.4/lib-old/newdir.pyc -#usr/lib/python2.4/lib-old/newdir.pyo -#usr/lib/python2.4/lib-old/ni.py -#usr/lib/python2.4/lib-old/ni.pyc -#usr/lib/python2.4/lib-old/ni.pyo -#usr/lib/python2.4/lib-old/packmail.py -#usr/lib/python2.4/lib-old/packmail.pyc -#usr/lib/python2.4/lib-old/packmail.pyo -#usr/lib/python2.4/lib-old/poly.py -#usr/lib/python2.4/lib-old/poly.pyc -#usr/lib/python2.4/lib-old/poly.pyo -#usr/lib/python2.4/lib-old/rand.py -#usr/lib/python2.4/lib-old/rand.pyc -#usr/lib/python2.4/lib-old/rand.pyo -#usr/lib/python2.4/lib-old/tb.py -#usr/lib/python2.4/lib-old/tb.pyc -#usr/lib/python2.4/lib-old/tb.pyo -#usr/lib/python2.4/lib-old/util.py -#usr/lib/python2.4/lib-old/util.pyc -#usr/lib/python2.4/lib-old/util.pyo -#usr/lib/python2.4/lib-old/whatsound.py -#usr/lib/python2.4/lib-old/whatsound.pyc -#usr/lib/python2.4/lib-old/whatsound.pyo -#usr/lib/python2.4/lib-old/zmod.py -#usr/lib/python2.4/lib-old/zmod.pyc -#usr/lib/python2.4/lib-old/zmod.pyo -#usr/lib/python2.4/lib-tk -#usr/lib/python2.4/lib-tk/Canvas.py -#usr/lib/python2.4/lib-tk/Canvas.pyc -#usr/lib/python2.4/lib-tk/Canvas.pyo -#usr/lib/python2.4/lib-tk/Dialog.py -#usr/lib/python2.4/lib-tk/Dialog.pyc -#usr/lib/python2.4/lib-tk/Dialog.pyo -#usr/lib/python2.4/lib-tk/FileDialog.py -#usr/lib/python2.4/lib-tk/FileDialog.pyc -#usr/lib/python2.4/lib-tk/FileDialog.pyo -#usr/lib/python2.4/lib-tk/FixTk.py -#usr/lib/python2.4/lib-tk/FixTk.pyc -#usr/lib/python2.4/lib-tk/FixTk.pyo -#usr/lib/python2.4/lib-tk/ScrolledText.py -#usr/lib/python2.4/lib-tk/ScrolledText.pyc -#usr/lib/python2.4/lib-tk/ScrolledText.pyo -#usr/lib/python2.4/lib-tk/SimpleDialog.py -#usr/lib/python2.4/lib-tk/SimpleDialog.pyc -#usr/lib/python2.4/lib-tk/SimpleDialog.pyo -#usr/lib/python2.4/lib-tk/Tix.py -#usr/lib/python2.4/lib-tk/Tix.pyc -#usr/lib/python2.4/lib-tk/Tix.pyo -#usr/lib/python2.4/lib-tk/Tkconstants.py -#usr/lib/python2.4/lib-tk/Tkconstants.pyc -#usr/lib/python2.4/lib-tk/Tkconstants.pyo -#usr/lib/python2.4/lib-tk/Tkdnd.py -#usr/lib/python2.4/lib-tk/Tkdnd.pyc -#usr/lib/python2.4/lib-tk/Tkdnd.pyo -#usr/lib/python2.4/lib-tk/Tkinter.py -#usr/lib/python2.4/lib-tk/Tkinter.pyc -#usr/lib/python2.4/lib-tk/Tkinter.pyo -#usr/lib/python2.4/lib-tk/tkColorChooser.py -#usr/lib/python2.4/lib-tk/tkColorChooser.pyc -#usr/lib/python2.4/lib-tk/tkColorChooser.pyo -#usr/lib/python2.4/lib-tk/tkCommonDialog.py -#usr/lib/python2.4/lib-tk/tkCommonDialog.pyc -#usr/lib/python2.4/lib-tk/tkCommonDialog.pyo -#usr/lib/python2.4/lib-tk/tkFileDialog.py -#usr/lib/python2.4/lib-tk/tkFileDialog.pyc -#usr/lib/python2.4/lib-tk/tkFileDialog.pyo -#usr/lib/python2.4/lib-tk/tkFont.py -#usr/lib/python2.4/lib-tk/tkFont.pyc -#usr/lib/python2.4/lib-tk/tkFont.pyo -#usr/lib/python2.4/lib-tk/tkMessageBox.py -#usr/lib/python2.4/lib-tk/tkMessageBox.pyc -#usr/lib/python2.4/lib-tk/tkMessageBox.pyo -#usr/lib/python2.4/lib-tk/tkSimpleDialog.py -#usr/lib/python2.4/lib-tk/tkSimpleDialog.pyc -#usr/lib/python2.4/lib-tk/tkSimpleDialog.pyo -#usr/lib/python2.4/lib-tk/turtle.py -#usr/lib/python2.4/lib-tk/turtle.pyc -#usr/lib/python2.4/lib-tk/turtle.pyo -#usr/lib/python2.4/linecache.py -usr/lib/python2.4/linecache.pyc -#usr/lib/python2.4/linecache.pyo -#usr/lib/python2.4/locale.py -usr/lib/python2.4/locale.pyc -#usr/lib/python2.4/locale.pyo -#usr/lib/python2.4/logging -#usr/lib/python2.4/logging/__init__.py -usr/lib/python2.4/logging/__init__.pyc -#usr/lib/python2.4/logging/__init__.pyo -#usr/lib/python2.4/logging/config.py -usr/lib/python2.4/logging/config.pyc -#usr/lib/python2.4/logging/config.pyo -#usr/lib/python2.4/logging/handlers.py -usr/lib/python2.4/logging/handlers.pyc -#usr/lib/python2.4/logging/handlers.pyo -#usr/lib/python2.4/macpath.py -#usr/lib/python2.4/macpath.pyc -#usr/lib/python2.4/macpath.pyo -#usr/lib/python2.4/macurl2path.py -#usr/lib/python2.4/macurl2path.pyc -#usr/lib/python2.4/macurl2path.pyo -#usr/lib/python2.4/mailbox.py -#usr/lib/python2.4/mailbox.pyc -#usr/lib/python2.4/mailbox.pyo -#usr/lib/python2.4/mailcap.py -#usr/lib/python2.4/mailcap.pyc -#usr/lib/python2.4/mailcap.pyo -#usr/lib/python2.4/markupbase.py -usr/lib/python2.4/markupbase.pyc -#usr/lib/python2.4/markupbase.pyo -#usr/lib/python2.4/mhlib.py -#usr/lib/python2.4/mhlib.pyc -#usr/lib/python2.4/mhlib.pyo -#usr/lib/python2.4/mimetools.py -usr/lib/python2.4/mimetools.pyc -#usr/lib/python2.4/mimetools.pyo -#usr/lib/python2.4/mimetypes.py -usr/lib/python2.4/mimetypes.pyc -#usr/lib/python2.4/mimetypes.pyo -#usr/lib/python2.4/mimify.py -usr/lib/python2.4/mimify.pyc -#usr/lib/python2.4/mimify.pyo -#usr/lib/python2.4/modulefinder.py -usr/lib/python2.4/modulefinder.pyc -#usr/lib/python2.4/modulefinder.pyo -#usr/lib/python2.4/multifile.py -usr/lib/python2.4/multifile.pyc -#usr/lib/python2.4/multifile.pyo -#usr/lib/python2.4/mutex.py -usr/lib/python2.4/mutex.pyc -#usr/lib/python2.4/mutex.pyo -#usr/lib/python2.4/netrc.py -usr/lib/python2.4/netrc.pyc -#usr/lib/python2.4/netrc.pyo -#usr/lib/python2.4/new.py -usr/lib/python2.4/new.pyc -#usr/lib/python2.4/new.pyo -#usr/lib/python2.4/nntplib.py -usr/lib/python2.4/nntplib.pyc -#usr/lib/python2.4/nntplib.pyo -#usr/lib/python2.4/ntpath.py -usr/lib/python2.4/ntpath.pyc -#usr/lib/python2.4/ntpath.pyo -#usr/lib/python2.4/nturl2path.py -usr/lib/python2.4/nturl2path.pyc -#usr/lib/python2.4/nturl2path.pyo -#usr/lib/python2.4/opcode.py -usr/lib/python2.4/opcode.pyc -#usr/lib/python2.4/opcode.pyo -#usr/lib/python2.4/optparse.py -usr/lib/python2.4/optparse.pyc -#usr/lib/python2.4/optparse.pyo -#usr/lib/python2.4/os.py -usr/lib/python2.4/os.pyc -#usr/lib/python2.4/os.pyo -#usr/lib/python2.4/os2emxpath.py -usr/lib/python2.4/os2emxpath.pyc -#usr/lib/python2.4/os2emxpath.pyo -#usr/lib/python2.4/pdb.doc -#usr/lib/python2.4/pdb.py -usr/lib/python2.4/pdb.pyc -#usr/lib/python2.4/pdb.pyo -#usr/lib/python2.4/pickle.py -usr/lib/python2.4/pickle.pyc -#usr/lib/python2.4/pickle.pyo -#usr/lib/python2.4/pickletools.py -usr/lib/python2.4/pickletools.pyc -#usr/lib/python2.4/pickletools.pyo -#usr/lib/python2.4/pipes.py -usr/lib/python2.4/pipes.pyc -#usr/lib/python2.4/pipes.pyo -#usr/lib/python2.4/pkgutil.py -usr/lib/python2.4/pkgutil.pyc -#usr/lib/python2.4/pkgutil.pyo -#usr/lib/python2.4/plat-linux2 -#usr/lib/python2.4/plat-linux2/CDROM.py -usr/lib/python2.4/plat-linux2/CDROM.pyc -#usr/lib/python2.4/plat-linux2/CDROM.pyo -#usr/lib/python2.4/plat-linux2/DLFCN.py -usr/lib/python2.4/plat-linux2/DLFCN.pyc -#usr/lib/python2.4/plat-linux2/DLFCN.pyo -#usr/lib/python2.4/plat-linux2/IN.py -usr/lib/python2.4/plat-linux2/IN.pyc -#usr/lib/python2.4/plat-linux2/IN.pyo -#usr/lib/python2.4/plat-linux2/TYPES.py -usr/lib/python2.4/plat-linux2/TYPES.pyc -#usr/lib/python2.4/plat-linux2/TYPES.pyo -usr/lib/python2.4/plat-linux2/regen -#usr/lib/python2.4/platform.py -usr/lib/python2.4/platform.pyc -#usr/lib/python2.4/platform.pyo -#usr/lib/python2.4/popen2.py -usr/lib/python2.4/popen2.pyc -#usr/lib/python2.4/popen2.pyo -#usr/lib/python2.4/poplib.py -usr/lib/python2.4/poplib.pyc -#usr/lib/python2.4/poplib.pyo -#usr/lib/python2.4/posixfile.py -usr/lib/python2.4/posixfile.pyc -#usr/lib/python2.4/posixfile.pyo -#usr/lib/python2.4/posixpath.py -usr/lib/python2.4/posixpath.pyc -#usr/lib/python2.4/posixpath.pyo -#usr/lib/python2.4/pprint.py -usr/lib/python2.4/pprint.pyc -#usr/lib/python2.4/pprint.pyo -#usr/lib/python2.4/profile.doc -#usr/lib/python2.4/profile.py -#usr/lib/python2.4/profile.pyc -#usr/lib/python2.4/profile.pyo -#usr/lib/python2.4/pstats.py -usr/lib/python2.4/pstats.pyc -#usr/lib/python2.4/pstats.pyo -#usr/lib/python2.4/pty.py -usr/lib/python2.4/pty.pyc -#usr/lib/python2.4/pty.pyo -#usr/lib/python2.4/py_compile.py -usr/lib/python2.4/py_compile.pyc -#usr/lib/python2.4/py_compile.pyo -#usr/lib/python2.4/pyclbr.py -usr/lib/python2.4/pyclbr.pyc -#usr/lib/python2.4/pyclbr.pyo -#usr/lib/python2.4/pydoc.py -usr/lib/python2.4/pydoc.pyc -#usr/lib/python2.4/pydoc.pyo -#usr/lib/python2.4/quopri.py -usr/lib/python2.4/quopri.pyc -#usr/lib/python2.4/quopri.pyo -#usr/lib/python2.4/random.py -usr/lib/python2.4/random.pyc -#usr/lib/python2.4/random.pyo -#usr/lib/python2.4/re.py -usr/lib/python2.4/re.pyc -#usr/lib/python2.4/re.pyo -#usr/lib/python2.4/reconvert.py -usr/lib/python2.4/reconvert.pyc -#usr/lib/python2.4/reconvert.pyo -#usr/lib/python2.4/regex_syntax.py -usr/lib/python2.4/regex_syntax.pyc -#usr/lib/python2.4/regex_syntax.pyo -#usr/lib/python2.4/regsub.py -usr/lib/python2.4/regsub.pyc -#usr/lib/python2.4/regsub.pyo -#usr/lib/python2.4/repr.py -usr/lib/python2.4/repr.pyc -#usr/lib/python2.4/repr.pyo -#usr/lib/python2.4/rexec.py -usr/lib/python2.4/rexec.pyc -#usr/lib/python2.4/rexec.pyo -#usr/lib/python2.4/rfc822.py -usr/lib/python2.4/rfc822.pyc -#usr/lib/python2.4/rfc822.pyo -#usr/lib/python2.4/rlcompleter.py -usr/lib/python2.4/rlcompleter.pyc -#usr/lib/python2.4/rlcompleter.pyo -#usr/lib/python2.4/robotparser.py -usr/lib/python2.4/robotparser.pyc -#usr/lib/python2.4/robotparser.pyo -#usr/lib/python2.4/sched.py -usr/lib/python2.4/sched.pyc -#usr/lib/python2.4/sched.pyo -#usr/lib/python2.4/sets.py -usr/lib/python2.4/sets.pyc -#usr/lib/python2.4/sets.pyo -#usr/lib/python2.4/sgmllib.py -usr/lib/python2.4/sgmllib.pyc -#usr/lib/python2.4/sgmllib.pyo -#usr/lib/python2.4/shelve.py -usr/lib/python2.4/shelve.pyc -#usr/lib/python2.4/shelve.pyo -#usr/lib/python2.4/shlex.py -usr/lib/python2.4/shlex.pyc -#usr/lib/python2.4/shlex.pyo -#usr/lib/python2.4/shutil.py -usr/lib/python2.4/shutil.pyc -#usr/lib/python2.4/shutil.pyo -#usr/lib/python2.4/site-packages -#usr/lib/python2.4/site-packages/README -#usr/lib/python2.4/site.py -usr/lib/python2.4/site.pyc -#usr/lib/python2.4/site.pyo -#usr/lib/python2.4/smtpd.py -#usr/lib/python2.4/smtpd.pyc -#usr/lib/python2.4/smtpd.pyo -#usr/lib/python2.4/smtplib.py -#usr/lib/python2.4/smtplib.pyc -#usr/lib/python2.4/smtplib.pyo -#usr/lib/python2.4/sndhdr.py -#usr/lib/python2.4/sndhdr.pyc -#usr/lib/python2.4/sndhdr.pyo -#usr/lib/python2.4/socket.py -#usr/lib/python2.4/socket.pyc -#usr/lib/python2.4/socket.pyo -#usr/lib/python2.4/sre.py -usr/lib/python2.4/sre.pyc -#usr/lib/python2.4/sre.pyo -#usr/lib/python2.4/sre_compile.py -usr/lib/python2.4/sre_compile.pyc -#usr/lib/python2.4/sre_compile.pyo -#usr/lib/python2.4/sre_constants.py -usr/lib/python2.4/sre_constants.pyc -#usr/lib/python2.4/sre_constants.pyo -#usr/lib/python2.4/sre_parse.py -usr/lib/python2.4/sre_parse.pyc -#usr/lib/python2.4/sre_parse.pyo -#usr/lib/python2.4/stat.py -usr/lib/python2.4/stat.pyc -#usr/lib/python2.4/stat.pyo -#usr/lib/python2.4/statcache.py -usr/lib/python2.4/statcache.pyc -#usr/lib/python2.4/statcache.pyo -#usr/lib/python2.4/statvfs.py -usr/lib/python2.4/statvfs.pyc -#usr/lib/python2.4/statvfs.pyo -#usr/lib/python2.4/string.py -usr/lib/python2.4/string.pyc -#usr/lib/python2.4/string.pyo -#usr/lib/python2.4/stringold.py -usr/lib/python2.4/stringold.pyc -#usr/lib/python2.4/stringold.pyo -#usr/lib/python2.4/stringprep.py -usr/lib/python2.4/stringprep.pyc -#usr/lib/python2.4/stringprep.pyo -#usr/lib/python2.4/subprocess.py -usr/lib/python2.4/subprocess.pyc -#usr/lib/python2.4/subprocess.pyo -#usr/lib/python2.4/sunau.py -#usr/lib/python2.4/sunau.pyc -#usr/lib/python2.4/sunau.pyo -#usr/lib/python2.4/sunaudio.py -#usr/lib/python2.4/sunaudio.pyc -#usr/lib/python2.4/sunaudio.pyo -#usr/lib/python2.4/symbol.py -usr/lib/python2.4/symbol.pyc -#usr/lib/python2.4/symbol.pyo -#usr/lib/python2.4/symtable.py -usr/lib/python2.4/symtable.pyc -#usr/lib/python2.4/symtable.pyo -#usr/lib/python2.4/tabnanny.py -usr/lib/python2.4/tabnanny.pyc -#usr/lib/python2.4/tabnanny.pyo -#usr/lib/python2.4/tarfile.py -usr/lib/python2.4/tarfile.pyc -#usr/lib/python2.4/tarfile.pyo -#usr/lib/python2.4/telnetlib.py -usr/lib/python2.4/telnetlib.pyc -#usr/lib/python2.4/telnetlib.pyo -#usr/lib/python2.4/tempfile.py -usr/lib/python2.4/tempfile.pyc -#usr/lib/python2.4/tempfile.pyo -#usr/lib/python2.4/test -#usr/lib/python2.4/test/185test.db -#usr/lib/python2.4/test/README -#usr/lib/python2.4/test/__init__.py -#usr/lib/python2.4/test/__init__.pyc -#usr/lib/python2.4/test/__init__.pyo -#usr/lib/python2.4/test/audiotest.au -#usr/lib/python2.4/test/autotest.py -#usr/lib/python2.4/test/autotest.pyc -#usr/lib/python2.4/test/autotest.pyo -#usr/lib/python2.4/test/badsyntax_future3.py -#usr/lib/python2.4/test/badsyntax_future4.py -#usr/lib/python2.4/test/badsyntax_future5.py -#usr/lib/python2.4/test/badsyntax_future6.py -#usr/lib/python2.4/test/badsyntax_future7.py -#usr/lib/python2.4/test/badsyntax_future8.py -#usr/lib/python2.4/test/badsyntax_future9.py -#usr/lib/python2.4/test/badsyntax_nocaret.py -#usr/lib/python2.4/test/cfgparser.1 -#usr/lib/python2.4/test/check_soundcard.vbs -#usr/lib/python2.4/test/cjkencodings_test.py -#usr/lib/python2.4/test/cjkencodings_test.pyc -#usr/lib/python2.4/test/cjkencodings_test.pyo -#usr/lib/python2.4/test/decimaltestdata -#usr/lib/python2.4/test/decimaltestdata/abs.decTest -#usr/lib/python2.4/test/decimaltestdata/add.decTest -#usr/lib/python2.4/test/decimaltestdata/base.decTest -#usr/lib/python2.4/test/decimaltestdata/clamp.decTest -#usr/lib/python2.4/test/decimaltestdata/compare.decTest -#usr/lib/python2.4/test/decimaltestdata/decimal128.decTest -#usr/lib/python2.4/test/decimaltestdata/decimal32.decTest -#usr/lib/python2.4/test/decimaltestdata/decimal64.decTest -#usr/lib/python2.4/test/decimaltestdata/divide.decTest -#usr/lib/python2.4/test/decimaltestdata/divideint.decTest -#usr/lib/python2.4/test/decimaltestdata/inexact.decTest -#usr/lib/python2.4/test/decimaltestdata/max.decTest -#usr/lib/python2.4/test/decimaltestdata/min.decTest -#usr/lib/python2.4/test/decimaltestdata/minus.decTest -#usr/lib/python2.4/test/decimaltestdata/multiply.decTest -#usr/lib/python2.4/test/decimaltestdata/normalize.decTest -#usr/lib/python2.4/test/decimaltestdata/plus.decTest -#usr/lib/python2.4/test/decimaltestdata/power.decTest -#usr/lib/python2.4/test/decimaltestdata/quantize.decTest -#usr/lib/python2.4/test/decimaltestdata/randomBound32.decTest -#usr/lib/python2.4/test/decimaltestdata/randoms.decTest -#usr/lib/python2.4/test/decimaltestdata/remainder.decTest -#usr/lib/python2.4/test/decimaltestdata/remainderNear.decTest -#usr/lib/python2.4/test/decimaltestdata/rescale.decTest -#usr/lib/python2.4/test/decimaltestdata/rounding.decTest -#usr/lib/python2.4/test/decimaltestdata/samequantum.decTest -#usr/lib/python2.4/test/decimaltestdata/squareroot.decTest -#usr/lib/python2.4/test/decimaltestdata/subtract.decTest -#usr/lib/python2.4/test/decimaltestdata/testall.decTest -#usr/lib/python2.4/test/decimaltestdata/tointegral.decTest -#usr/lib/python2.4/test/doctest_aliases.py -#usr/lib/python2.4/test/doctest_aliases.pyc -#usr/lib/python2.4/test/doctest_aliases.pyo -#usr/lib/python2.4/test/double_const.py -#usr/lib/python2.4/test/double_const.pyc -#usr/lib/python2.4/test/double_const.pyo -#usr/lib/python2.4/test/greyrgb.uue -#usr/lib/python2.4/test/list_tests.py -#usr/lib/python2.4/test/list_tests.pyc -#usr/lib/python2.4/test/list_tests.pyo -#usr/lib/python2.4/test/mapping_tests.py -#usr/lib/python2.4/test/mapping_tests.pyc -#usr/lib/python2.4/test/mapping_tests.pyo -#usr/lib/python2.4/test/output -#usr/lib/python2.4/test/output/test_MimeWriter -#usr/lib/python2.4/test/output/test_asynchat -#usr/lib/python2.4/test/output/test_augassign -#usr/lib/python2.4/test/output/test_cgi -#usr/lib/python2.4/test/output/test_class -#usr/lib/python2.4/test/output/test_coercion -#usr/lib/python2.4/test/output/test_compare -#usr/lib/python2.4/test/output/test_cookie -#usr/lib/python2.4/test/output/test_exceptions -#usr/lib/python2.4/test/output/test_extcall -#usr/lib/python2.4/test/output/test_frozen -#usr/lib/python2.4/test/output/test_global -#usr/lib/python2.4/test/output/test_grammar -#usr/lib/python2.4/test/output/test_httplib -#usr/lib/python2.4/test/output/test_linuxaudiodev -#usr/lib/python2.4/test/output/test_logging -#usr/lib/python2.4/test/output/test_math -#usr/lib/python2.4/test/output/test_mmap -#usr/lib/python2.4/test/output/test_new -#usr/lib/python2.4/test/output/test_nis -#usr/lib/python2.4/test/output/test_opcodes -#usr/lib/python2.4/test/output/test_openpty -#usr/lib/python2.4/test/output/test_operations -#usr/lib/python2.4/test/output/test_ossaudiodev -#usr/lib/python2.4/test/output/test_pep277 -#usr/lib/python2.4/test/output/test_pkg -#usr/lib/python2.4/test/output/test_poll -#usr/lib/python2.4/test/output/test_popen -#usr/lib/python2.4/test/output/test_popen2 -#usr/lib/python2.4/test/output/test_profile -#usr/lib/python2.4/test/output/test_pty -#usr/lib/python2.4/test/output/test_pyexpat -#usr/lib/python2.4/test/output/test_regex -#usr/lib/python2.4/test/output/test_resource -#usr/lib/python2.4/test/output/test_rgbimg -#usr/lib/python2.4/test/output/test_scope -#usr/lib/python2.4/test/output/test_signal -#usr/lib/python2.4/test/output/test_thread -#usr/lib/python2.4/test/output/test_threadedtempfile -#usr/lib/python2.4/test/output/test_tokenize -#usr/lib/python2.4/test/output/test_types -#usr/lib/python2.4/test/output/test_winreg -#usr/lib/python2.4/test/output/xmltests -#usr/lib/python2.4/test/pickletester.py -#usr/lib/python2.4/test/pickletester.pyc -#usr/lib/python2.4/test/pickletester.pyo -#usr/lib/python2.4/test/pyclbr_input.py -#usr/lib/python2.4/test/pyclbr_input.pyc -#usr/lib/python2.4/test/pyclbr_input.pyo -#usr/lib/python2.4/test/pydocfodder.py -#usr/lib/python2.4/test/pydocfodder.pyc -#usr/lib/python2.4/test/pydocfodder.pyo -#usr/lib/python2.4/test/pystone.py -#usr/lib/python2.4/test/pystone.pyc -#usr/lib/python2.4/test/pystone.pyo -#usr/lib/python2.4/test/re_tests.py -#usr/lib/python2.4/test/re_tests.pyc -#usr/lib/python2.4/test/re_tests.pyo -#usr/lib/python2.4/test/regex_tests.py -#usr/lib/python2.4/test/regex_tests.pyc -#usr/lib/python2.4/test/regex_tests.pyo -#usr/lib/python2.4/test/regrtest.py -#usr/lib/python2.4/test/regrtest.pyc -#usr/lib/python2.4/test/regrtest.pyo -#usr/lib/python2.4/test/reperf.py -#usr/lib/python2.4/test/reperf.pyc -#usr/lib/python2.4/test/reperf.pyo -#usr/lib/python2.4/test/sample_doctest.py -#usr/lib/python2.4/test/sample_doctest.pyc -#usr/lib/python2.4/test/sample_doctest.pyo -#usr/lib/python2.4/test/seq_tests.py -#usr/lib/python2.4/test/seq_tests.pyc -#usr/lib/python2.4/test/seq_tests.pyo -#usr/lib/python2.4/test/sortperf.py -#usr/lib/python2.4/test/sortperf.pyc -#usr/lib/python2.4/test/sortperf.pyo -#usr/lib/python2.4/test/string_tests.py -#usr/lib/python2.4/test/string_tests.pyc -#usr/lib/python2.4/test/string_tests.pyo -#usr/lib/python2.4/test/test.xml -#usr/lib/python2.4/test/test.xml.out -#usr/lib/python2.4/test/test_MimeWriter.py -#usr/lib/python2.4/test/test_MimeWriter.pyc -#usr/lib/python2.4/test/test_MimeWriter.pyo -#usr/lib/python2.4/test/test_StringIO.py -#usr/lib/python2.4/test/test_StringIO.pyc -#usr/lib/python2.4/test/test_StringIO.pyo -#usr/lib/python2.4/test/test___all__.py -#usr/lib/python2.4/test/test___all__.pyc -#usr/lib/python2.4/test/test___all__.pyo -#usr/lib/python2.4/test/test___future__.py -#usr/lib/python2.4/test/test___future__.pyc -#usr/lib/python2.4/test/test___future__.pyo -#usr/lib/python2.4/test/test__locale.py -#usr/lib/python2.4/test/test__locale.pyc -#usr/lib/python2.4/test/test__locale.pyo -#usr/lib/python2.4/test/test_aepack.py -#usr/lib/python2.4/test/test_aepack.pyc -#usr/lib/python2.4/test/test_aepack.pyo -#usr/lib/python2.4/test/test_al.py -#usr/lib/python2.4/test/test_al.pyc -#usr/lib/python2.4/test/test_al.pyo -#usr/lib/python2.4/test/test_anydbm.py -#usr/lib/python2.4/test/test_anydbm.pyc -#usr/lib/python2.4/test/test_anydbm.pyo -#usr/lib/python2.4/test/test_applesingle.py -#usr/lib/python2.4/test/test_applesingle.pyc -#usr/lib/python2.4/test/test_applesingle.pyo -#usr/lib/python2.4/test/test_array.py -#usr/lib/python2.4/test/test_array.pyc -#usr/lib/python2.4/test/test_array.pyo -#usr/lib/python2.4/test/test_asynchat.py -#usr/lib/python2.4/test/test_asynchat.pyc -#usr/lib/python2.4/test/test_asynchat.pyo -#usr/lib/python2.4/test/test_atexit.py -#usr/lib/python2.4/test/test_atexit.pyc -#usr/lib/python2.4/test/test_atexit.pyo -#usr/lib/python2.4/test/test_audioop.py -#usr/lib/python2.4/test/test_audioop.pyc -#usr/lib/python2.4/test/test_audioop.pyo -#usr/lib/python2.4/test/test_augassign.py -#usr/lib/python2.4/test/test_augassign.pyc -#usr/lib/python2.4/test/test_augassign.pyo -#usr/lib/python2.4/test/test_base64.py -#usr/lib/python2.4/test/test_base64.pyc -#usr/lib/python2.4/test/test_base64.pyo -#usr/lib/python2.4/test/test_bastion.py -#usr/lib/python2.4/test/test_bastion.pyc -#usr/lib/python2.4/test/test_bastion.pyo -#usr/lib/python2.4/test/test_binascii.py -#usr/lib/python2.4/test/test_binascii.pyc -#usr/lib/python2.4/test/test_binascii.pyo -#usr/lib/python2.4/test/test_binhex.py -#usr/lib/python2.4/test/test_binhex.pyc -#usr/lib/python2.4/test/test_binhex.pyo -#usr/lib/python2.4/test/test_binop.py -#usr/lib/python2.4/test/test_binop.pyc -#usr/lib/python2.4/test/test_binop.pyo -#usr/lib/python2.4/test/test_bisect.py -#usr/lib/python2.4/test/test_bisect.pyc -#usr/lib/python2.4/test/test_bisect.pyo -#usr/lib/python2.4/test/test_bool.py -#usr/lib/python2.4/test/test_bool.pyc -#usr/lib/python2.4/test/test_bool.pyo -#usr/lib/python2.4/test/test_bsddb.py -#usr/lib/python2.4/test/test_bsddb.pyc -#usr/lib/python2.4/test/test_bsddb.pyo -#usr/lib/python2.4/test/test_bsddb185.py -#usr/lib/python2.4/test/test_bsddb185.pyc -#usr/lib/python2.4/test/test_bsddb185.pyo -#usr/lib/python2.4/test/test_bsddb3.py -#usr/lib/python2.4/test/test_bsddb3.pyc -#usr/lib/python2.4/test/test_bsddb3.pyo -#usr/lib/python2.4/test/test_bufio.py -#usr/lib/python2.4/test/test_bufio.pyc -#usr/lib/python2.4/test/test_bufio.pyo -#usr/lib/python2.4/test/test_builtin.py -#usr/lib/python2.4/test/test_builtin.pyc -#usr/lib/python2.4/test/test_builtin.pyo -#usr/lib/python2.4/test/test_bz2.py -#usr/lib/python2.4/test/test_bz2.pyc -#usr/lib/python2.4/test/test_bz2.pyo -#usr/lib/python2.4/test/test_calendar.py -#usr/lib/python2.4/test/test_calendar.pyc -#usr/lib/python2.4/test/test_calendar.pyo -#usr/lib/python2.4/test/test_call.py -#usr/lib/python2.4/test/test_call.pyc -#usr/lib/python2.4/test/test_call.pyo -#usr/lib/python2.4/test/test_capi.py -#usr/lib/python2.4/test/test_capi.pyc -#usr/lib/python2.4/test/test_capi.pyo -#usr/lib/python2.4/test/test_cd.py -#usr/lib/python2.4/test/test_cd.pyc -#usr/lib/python2.4/test/test_cd.pyo -#usr/lib/python2.4/test/test_cfgparser.py -#usr/lib/python2.4/test/test_cfgparser.pyc -#usr/lib/python2.4/test/test_cfgparser.pyo -#usr/lib/python2.4/test/test_cgi.py -#usr/lib/python2.4/test/test_cgi.pyc -#usr/lib/python2.4/test/test_cgi.pyo -#usr/lib/python2.4/test/test_charmapcodec.py -#usr/lib/python2.4/test/test_charmapcodec.pyc -#usr/lib/python2.4/test/test_charmapcodec.pyo -#usr/lib/python2.4/test/test_cl.py -#usr/lib/python2.4/test/test_cl.pyc -#usr/lib/python2.4/test/test_cl.pyo -#usr/lib/python2.4/test/test_class.py -#usr/lib/python2.4/test/test_class.pyc -#usr/lib/python2.4/test/test_class.pyo -#usr/lib/python2.4/test/test_cmath.py -#usr/lib/python2.4/test/test_cmath.pyc -#usr/lib/python2.4/test/test_cmath.pyo -#usr/lib/python2.4/test/test_cmd_line.py -#usr/lib/python2.4/test/test_cmd_line.pyc -#usr/lib/python2.4/test/test_cmd_line.pyo -#usr/lib/python2.4/test/test_codeccallbacks.py -#usr/lib/python2.4/test/test_codeccallbacks.pyc -#usr/lib/python2.4/test/test_codeccallbacks.pyo -#usr/lib/python2.4/test/test_codecencodings_cn.py -#usr/lib/python2.4/test/test_codecencodings_cn.pyc -#usr/lib/python2.4/test/test_codecencodings_cn.pyo -#usr/lib/python2.4/test/test_codecencodings_hk.py -#usr/lib/python2.4/test/test_codecencodings_hk.pyc -#usr/lib/python2.4/test/test_codecencodings_hk.pyo -#usr/lib/python2.4/test/test_codecencodings_jp.py -#usr/lib/python2.4/test/test_codecencodings_jp.pyc -#usr/lib/python2.4/test/test_codecencodings_jp.pyo -#usr/lib/python2.4/test/test_codecencodings_kr.py -#usr/lib/python2.4/test/test_codecencodings_kr.pyc -#usr/lib/python2.4/test/test_codecencodings_kr.pyo -#usr/lib/python2.4/test/test_codecencodings_tw.py -#usr/lib/python2.4/test/test_codecencodings_tw.pyc -#usr/lib/python2.4/test/test_codecencodings_tw.pyo -#usr/lib/python2.4/test/test_codecmaps_cn.py -#usr/lib/python2.4/test/test_codecmaps_cn.pyc -#usr/lib/python2.4/test/test_codecmaps_cn.pyo -#usr/lib/python2.4/test/test_codecmaps_hk.py -#usr/lib/python2.4/test/test_codecmaps_hk.pyc -#usr/lib/python2.4/test/test_codecmaps_hk.pyo -#usr/lib/python2.4/test/test_codecmaps_jp.py -#usr/lib/python2.4/test/test_codecmaps_jp.pyc -#usr/lib/python2.4/test/test_codecmaps_jp.pyo -#usr/lib/python2.4/test/test_codecmaps_kr.py -#usr/lib/python2.4/test/test_codecmaps_kr.pyc -#usr/lib/python2.4/test/test_codecmaps_kr.pyo -#usr/lib/python2.4/test/test_codecmaps_tw.py -#usr/lib/python2.4/test/test_codecmaps_tw.pyc -#usr/lib/python2.4/test/test_codecmaps_tw.pyo -#usr/lib/python2.4/test/test_codecs.py -#usr/lib/python2.4/test/test_codecs.pyc -#usr/lib/python2.4/test/test_codecs.pyo -#usr/lib/python2.4/test/test_codeop.py -#usr/lib/python2.4/test/test_codeop.pyc -#usr/lib/python2.4/test/test_codeop.pyo -#usr/lib/python2.4/test/test_coercion.py -#usr/lib/python2.4/test/test_coercion.pyc -#usr/lib/python2.4/test/test_coercion.pyo -#usr/lib/python2.4/test/test_colorsys.py -#usr/lib/python2.4/test/test_colorsys.pyc -#usr/lib/python2.4/test/test_colorsys.pyo -#usr/lib/python2.4/test/test_commands.py -#usr/lib/python2.4/test/test_commands.pyc -#usr/lib/python2.4/test/test_commands.pyo -#usr/lib/python2.4/test/test_compare.py -#usr/lib/python2.4/test/test_compare.pyc -#usr/lib/python2.4/test/test_compare.pyo -#usr/lib/python2.4/test/test_compile.py -#usr/lib/python2.4/test/test_compile.pyc -#usr/lib/python2.4/test/test_compile.pyo -#usr/lib/python2.4/test/test_compiler.py -#usr/lib/python2.4/test/test_compiler.pyc -#usr/lib/python2.4/test/test_compiler.pyo -#usr/lib/python2.4/test/test_complex.py -#usr/lib/python2.4/test/test_complex.pyc -#usr/lib/python2.4/test/test_complex.pyo -#usr/lib/python2.4/test/test_contains.py -#usr/lib/python2.4/test/test_contains.pyc -#usr/lib/python2.4/test/test_contains.pyo -#usr/lib/python2.4/test/test_cookie.py -#usr/lib/python2.4/test/test_cookie.pyc -#usr/lib/python2.4/test/test_cookie.pyo -#usr/lib/python2.4/test/test_cookielib.py -#usr/lib/python2.4/test/test_cookielib.pyc -#usr/lib/python2.4/test/test_cookielib.pyo -#usr/lib/python2.4/test/test_copy.py -#usr/lib/python2.4/test/test_copy.pyc -#usr/lib/python2.4/test/test_copy.pyo -#usr/lib/python2.4/test/test_copy_reg.py -#usr/lib/python2.4/test/test_copy_reg.pyc -#usr/lib/python2.4/test/test_copy_reg.pyo -#usr/lib/python2.4/test/test_cpickle.py -#usr/lib/python2.4/test/test_cpickle.pyc -#usr/lib/python2.4/test/test_cpickle.pyo -#usr/lib/python2.4/test/test_crypt.py -#usr/lib/python2.4/test/test_crypt.pyc -#usr/lib/python2.4/test/test_crypt.pyo -#usr/lib/python2.4/test/test_csv.py -#usr/lib/python2.4/test/test_csv.pyc -#usr/lib/python2.4/test/test_csv.pyo -#usr/lib/python2.4/test/test_curses.py -#usr/lib/python2.4/test/test_curses.pyc -#usr/lib/python2.4/test/test_curses.pyo -#usr/lib/python2.4/test/test_datetime.py -#usr/lib/python2.4/test/test_datetime.pyc -#usr/lib/python2.4/test/test_datetime.pyo -#usr/lib/python2.4/test/test_dbm.py -#usr/lib/python2.4/test/test_dbm.pyc -#usr/lib/python2.4/test/test_dbm.pyo -#usr/lib/python2.4/test/test_decimal.py -#usr/lib/python2.4/test/test_decimal.pyc -#usr/lib/python2.4/test/test_decimal.pyo -#usr/lib/python2.4/test/test_decorators.py -#usr/lib/python2.4/test/test_decorators.pyc -#usr/lib/python2.4/test/test_decorators.pyo -#usr/lib/python2.4/test/test_deque.py -#usr/lib/python2.4/test/test_deque.pyc -#usr/lib/python2.4/test/test_deque.pyo -#usr/lib/python2.4/test/test_descr.py -#usr/lib/python2.4/test/test_descr.pyc -#usr/lib/python2.4/test/test_descr.pyo -#usr/lib/python2.4/test/test_descrtut.py -#usr/lib/python2.4/test/test_descrtut.pyc -#usr/lib/python2.4/test/test_descrtut.pyo -#usr/lib/python2.4/test/test_dict.py -#usr/lib/python2.4/test/test_dict.pyc -#usr/lib/python2.4/test/test_dict.pyo -#usr/lib/python2.4/test/test_difflib.py -#usr/lib/python2.4/test/test_difflib.pyc -#usr/lib/python2.4/test/test_difflib.pyo -#usr/lib/python2.4/test/test_difflib_expect.html -#usr/lib/python2.4/test/test_dircache.py -#usr/lib/python2.4/test/test_dircache.pyc -#usr/lib/python2.4/test/test_dircache.pyo -#usr/lib/python2.4/test/test_dis.py -#usr/lib/python2.4/test/test_dis.pyc -#usr/lib/python2.4/test/test_dis.pyo -#usr/lib/python2.4/test/test_distutils.py -#usr/lib/python2.4/test/test_distutils.pyc -#usr/lib/python2.4/test/test_distutils.pyo -#usr/lib/python2.4/test/test_dl.py -#usr/lib/python2.4/test/test_dl.pyc -#usr/lib/python2.4/test/test_dl.pyo -#usr/lib/python2.4/test/test_doctest.py -#usr/lib/python2.4/test/test_doctest.pyc -#usr/lib/python2.4/test/test_doctest.pyo -#usr/lib/python2.4/test/test_doctest.txt -#usr/lib/python2.4/test/test_doctest2.py -#usr/lib/python2.4/test/test_doctest2.pyc -#usr/lib/python2.4/test/test_doctest2.pyo -#usr/lib/python2.4/test/test_doctest2.txt -#usr/lib/python2.4/test/test_dumbdbm.py -#usr/lib/python2.4/test/test_dumbdbm.pyc -#usr/lib/python2.4/test/test_dumbdbm.pyo -#usr/lib/python2.4/test/test_dummy_thread.py -#usr/lib/python2.4/test/test_dummy_thread.pyc -#usr/lib/python2.4/test/test_dummy_thread.pyo -#usr/lib/python2.4/test/test_dummy_threading.py -#usr/lib/python2.4/test/test_dummy_threading.pyc -#usr/lib/python2.4/test/test_dummy_threading.pyo -#usr/lib/python2.4/test/test_email.py -#usr/lib/python2.4/test/test_email.pyc -#usr/lib/python2.4/test/test_email.pyo -#usr/lib/python2.4/test/test_email_codecs.py -#usr/lib/python2.4/test/test_email_codecs.pyc -#usr/lib/python2.4/test/test_email_codecs.pyo -#usr/lib/python2.4/test/test_enumerate.py -#usr/lib/python2.4/test/test_enumerate.pyc -#usr/lib/python2.4/test/test_enumerate.pyo -#usr/lib/python2.4/test/test_eof.py -#usr/lib/python2.4/test/test_eof.pyc -#usr/lib/python2.4/test/test_eof.pyo -#usr/lib/python2.4/test/test_errno.py -#usr/lib/python2.4/test/test_errno.pyc -#usr/lib/python2.4/test/test_errno.pyo -#usr/lib/python2.4/test/test_exceptions.py -#usr/lib/python2.4/test/test_exceptions.pyc -#usr/lib/python2.4/test/test_exceptions.pyo -#usr/lib/python2.4/test/test_extcall.py -#usr/lib/python2.4/test/test_extcall.pyc -#usr/lib/python2.4/test/test_extcall.pyo -#usr/lib/python2.4/test/test_fcntl.py -#usr/lib/python2.4/test/test_fcntl.pyc -#usr/lib/python2.4/test/test_fcntl.pyo -#usr/lib/python2.4/test/test_file.py -#usr/lib/python2.4/test/test_file.pyc -#usr/lib/python2.4/test/test_file.pyo -#usr/lib/python2.4/test/test_filecmp.py -#usr/lib/python2.4/test/test_filecmp.pyc -#usr/lib/python2.4/test/test_filecmp.pyo -#usr/lib/python2.4/test/test_fileinput.py -#usr/lib/python2.4/test/test_fileinput.pyc -#usr/lib/python2.4/test/test_fileinput.pyo -#usr/lib/python2.4/test/test_fnmatch.py -#usr/lib/python2.4/test/test_fnmatch.pyc -#usr/lib/python2.4/test/test_fnmatch.pyo -#usr/lib/python2.4/test/test_fork1.py -#usr/lib/python2.4/test/test_fork1.pyc -#usr/lib/python2.4/test/test_fork1.pyo -#usr/lib/python2.4/test/test_format.py -#usr/lib/python2.4/test/test_format.pyc -#usr/lib/python2.4/test/test_format.pyo -#usr/lib/python2.4/test/test_fpformat.py -#usr/lib/python2.4/test/test_fpformat.pyc -#usr/lib/python2.4/test/test_fpformat.pyo -#usr/lib/python2.4/test/test_frozen.py -#usr/lib/python2.4/test/test_frozen.pyc -#usr/lib/python2.4/test/test_frozen.pyo -#usr/lib/python2.4/test/test_funcattrs.py -#usr/lib/python2.4/test/test_funcattrs.pyc -#usr/lib/python2.4/test/test_funcattrs.pyo -#usr/lib/python2.4/test/test_future.py -#usr/lib/python2.4/test/test_future.pyc -#usr/lib/python2.4/test/test_future.pyo -#usr/lib/python2.4/test/test_future1.py -#usr/lib/python2.4/test/test_future1.pyc -#usr/lib/python2.4/test/test_future1.pyo -#usr/lib/python2.4/test/test_future2.py -#usr/lib/python2.4/test/test_future2.pyc -#usr/lib/python2.4/test/test_future2.pyo -#usr/lib/python2.4/test/test_future3.py -#usr/lib/python2.4/test/test_future3.pyc -#usr/lib/python2.4/test/test_future3.pyo -#usr/lib/python2.4/test/test_gc.py -#usr/lib/python2.4/test/test_gc.pyc -#usr/lib/python2.4/test/test_gc.pyo -#usr/lib/python2.4/test/test_gdbm.py -#usr/lib/python2.4/test/test_gdbm.pyc -#usr/lib/python2.4/test/test_gdbm.pyo -#usr/lib/python2.4/test/test_generators.py -#usr/lib/python2.4/test/test_generators.pyc -#usr/lib/python2.4/test/test_generators.pyo -#usr/lib/python2.4/test/test_genexps.py -#usr/lib/python2.4/test/test_genexps.pyc -#usr/lib/python2.4/test/test_genexps.pyo -#usr/lib/python2.4/test/test_getargs.py -#usr/lib/python2.4/test/test_getargs.pyc -#usr/lib/python2.4/test/test_getargs.pyo -#usr/lib/python2.4/test/test_getargs2.py -#usr/lib/python2.4/test/test_getargs2.pyc -#usr/lib/python2.4/test/test_getargs2.pyo -#usr/lib/python2.4/test/test_getopt.py -#usr/lib/python2.4/test/test_getopt.pyc -#usr/lib/python2.4/test/test_getopt.pyo -#usr/lib/python2.4/test/test_gettext.py -#usr/lib/python2.4/test/test_gettext.pyc -#usr/lib/python2.4/test/test_gettext.pyo -#usr/lib/python2.4/test/test_gl.py -#usr/lib/python2.4/test/test_gl.pyc -#usr/lib/python2.4/test/test_gl.pyo -#usr/lib/python2.4/test/test_glob.py -#usr/lib/python2.4/test/test_glob.pyc -#usr/lib/python2.4/test/test_glob.pyo -#usr/lib/python2.4/test/test_global.py -#usr/lib/python2.4/test/test_global.pyc -#usr/lib/python2.4/test/test_global.pyo -#usr/lib/python2.4/test/test_grammar.py -#usr/lib/python2.4/test/test_grammar.pyc -#usr/lib/python2.4/test/test_grammar.pyo -#usr/lib/python2.4/test/test_grp.py -#usr/lib/python2.4/test/test_grp.pyc -#usr/lib/python2.4/test/test_grp.pyo -#usr/lib/python2.4/test/test_gzip.py -#usr/lib/python2.4/test/test_gzip.pyc -#usr/lib/python2.4/test/test_gzip.pyo -#usr/lib/python2.4/test/test_hash.py -#usr/lib/python2.4/test/test_hash.pyc -#usr/lib/python2.4/test/test_hash.pyo -#usr/lib/python2.4/test/test_heapq.py -#usr/lib/python2.4/test/test_heapq.pyc -#usr/lib/python2.4/test/test_heapq.pyo -#usr/lib/python2.4/test/test_hexoct.py -#usr/lib/python2.4/test/test_hexoct.pyc -#usr/lib/python2.4/test/test_hexoct.pyo -#usr/lib/python2.4/test/test_hmac.py -#usr/lib/python2.4/test/test_hmac.pyc -#usr/lib/python2.4/test/test_hmac.pyo -#usr/lib/python2.4/test/test_hotshot.py -#usr/lib/python2.4/test/test_hotshot.pyc -#usr/lib/python2.4/test/test_hotshot.pyo -#usr/lib/python2.4/test/test_htmllib.py -#usr/lib/python2.4/test/test_htmllib.pyc -#usr/lib/python2.4/test/test_htmllib.pyo -#usr/lib/python2.4/test/test_htmlparser.py -#usr/lib/python2.4/test/test_htmlparser.pyc -#usr/lib/python2.4/test/test_htmlparser.pyo -#usr/lib/python2.4/test/test_httplib.py -#usr/lib/python2.4/test/test_httplib.pyc -#usr/lib/python2.4/test/test_httplib.pyo -#usr/lib/python2.4/test/test_imageop.py -#usr/lib/python2.4/test/test_imageop.pyc -#usr/lib/python2.4/test/test_imageop.pyo -#usr/lib/python2.4/test/test_imaplib.py -#usr/lib/python2.4/test/test_imaplib.pyc -#usr/lib/python2.4/test/test_imaplib.pyo -#usr/lib/python2.4/test/test_imgfile.py -#usr/lib/python2.4/test/test_imgfile.pyc -#usr/lib/python2.4/test/test_imgfile.pyo -#usr/lib/python2.4/test/test_imp.py -#usr/lib/python2.4/test/test_imp.pyc -#usr/lib/python2.4/test/test_imp.pyo -#usr/lib/python2.4/test/test_import.py -#usr/lib/python2.4/test/test_import.pyc -#usr/lib/python2.4/test/test_import.pyo -#usr/lib/python2.4/test/test_importhooks.py -#usr/lib/python2.4/test/test_importhooks.pyc -#usr/lib/python2.4/test/test_importhooks.pyo -#usr/lib/python2.4/test/test_inspect.py -#usr/lib/python2.4/test/test_inspect.pyc -#usr/lib/python2.4/test/test_inspect.pyo -#usr/lib/python2.4/test/test_ioctl.py -#usr/lib/python2.4/test/test_ioctl.pyc -#usr/lib/python2.4/test/test_ioctl.pyo -#usr/lib/python2.4/test/test_isinstance.py -#usr/lib/python2.4/test/test_isinstance.pyc -#usr/lib/python2.4/test/test_isinstance.pyo -#usr/lib/python2.4/test/test_iter.py -#usr/lib/python2.4/test/test_iter.pyc -#usr/lib/python2.4/test/test_iter.pyo -#usr/lib/python2.4/test/test_iterlen.py -#usr/lib/python2.4/test/test_iterlen.pyc -#usr/lib/python2.4/test/test_iterlen.pyo -#usr/lib/python2.4/test/test_itertools.py -#usr/lib/python2.4/test/test_itertools.pyc -#usr/lib/python2.4/test/test_itertools.pyo -#usr/lib/python2.4/test/test_largefile.py -#usr/lib/python2.4/test/test_largefile.pyc -#usr/lib/python2.4/test/test_largefile.pyo -#usr/lib/python2.4/test/test_linuxaudiodev.py -#usr/lib/python2.4/test/test_linuxaudiodev.pyc -#usr/lib/python2.4/test/test_linuxaudiodev.pyo -#usr/lib/python2.4/test/test_list.py -#usr/lib/python2.4/test/test_list.pyc -#usr/lib/python2.4/test/test_list.pyo -#usr/lib/python2.4/test/test_locale.py -#usr/lib/python2.4/test/test_locale.pyc -#usr/lib/python2.4/test/test_locale.pyo -#usr/lib/python2.4/test/test_logging.py -#usr/lib/python2.4/test/test_logging.pyc -#usr/lib/python2.4/test/test_logging.pyo -#usr/lib/python2.4/test/test_long.py -#usr/lib/python2.4/test/test_long.pyc -#usr/lib/python2.4/test/test_long.pyo -#usr/lib/python2.4/test/test_long_future.py -#usr/lib/python2.4/test/test_long_future.pyc -#usr/lib/python2.4/test/test_long_future.pyo -#usr/lib/python2.4/test/test_longexp.py -#usr/lib/python2.4/test/test_longexp.pyc -#usr/lib/python2.4/test/test_longexp.pyo -#usr/lib/python2.4/test/test_macfs.py -#usr/lib/python2.4/test/test_macfs.pyc -#usr/lib/python2.4/test/test_macfs.pyo -#usr/lib/python2.4/test/test_macostools.py -#usr/lib/python2.4/test/test_macostools.pyc -#usr/lib/python2.4/test/test_macostools.pyo -#usr/lib/python2.4/test/test_macpath.py -#usr/lib/python2.4/test/test_macpath.pyc -#usr/lib/python2.4/test/test_macpath.pyo -#usr/lib/python2.4/test/test_mailbox.py -#usr/lib/python2.4/test/test_mailbox.pyc -#usr/lib/python2.4/test/test_mailbox.pyo -#usr/lib/python2.4/test/test_marshal.py -#usr/lib/python2.4/test/test_marshal.pyc -#usr/lib/python2.4/test/test_marshal.pyo -#usr/lib/python2.4/test/test_math.py -#usr/lib/python2.4/test/test_math.pyc -#usr/lib/python2.4/test/test_math.pyo -#usr/lib/python2.4/test/test_md5.py -#usr/lib/python2.4/test/test_md5.pyc -#usr/lib/python2.4/test/test_md5.pyo -#usr/lib/python2.4/test/test_mhlib.py -#usr/lib/python2.4/test/test_mhlib.pyc -#usr/lib/python2.4/test/test_mhlib.pyo -#usr/lib/python2.4/test/test_mimetools.py -#usr/lib/python2.4/test/test_mimetools.pyc -#usr/lib/python2.4/test/test_mimetools.pyo -#usr/lib/python2.4/test/test_mimetypes.py -#usr/lib/python2.4/test/test_mimetypes.pyc -#usr/lib/python2.4/test/test_mimetypes.pyo -#usr/lib/python2.4/test/test_minidom.py -#usr/lib/python2.4/test/test_minidom.pyc -#usr/lib/python2.4/test/test_minidom.pyo -#usr/lib/python2.4/test/test_mmap.py -#usr/lib/python2.4/test/test_mmap.pyc -#usr/lib/python2.4/test/test_mmap.pyo -#usr/lib/python2.4/test/test_module.py -#usr/lib/python2.4/test/test_module.pyc -#usr/lib/python2.4/test/test_module.pyo -#usr/lib/python2.4/test/test_multibytecodec.py -#usr/lib/python2.4/test/test_multibytecodec.pyc -#usr/lib/python2.4/test/test_multibytecodec.pyo -#usr/lib/python2.4/test/test_multibytecodec_support.py -#usr/lib/python2.4/test/test_multibytecodec_support.pyc -#usr/lib/python2.4/test/test_multibytecodec_support.pyo -#usr/lib/python2.4/test/test_multifile.py -#usr/lib/python2.4/test/test_multifile.pyc -#usr/lib/python2.4/test/test_multifile.pyo -#usr/lib/python2.4/test/test_mutants.py -#usr/lib/python2.4/test/test_mutants.pyc -#usr/lib/python2.4/test/test_mutants.pyo -#usr/lib/python2.4/test/test_netrc.py -#usr/lib/python2.4/test/test_netrc.pyc -#usr/lib/python2.4/test/test_netrc.pyo -#usr/lib/python2.4/test/test_new.py -#usr/lib/python2.4/test/test_new.pyc -#usr/lib/python2.4/test/test_new.pyo -#usr/lib/python2.4/test/test_nis.py -#usr/lib/python2.4/test/test_nis.pyc -#usr/lib/python2.4/test/test_nis.pyo -#usr/lib/python2.4/test/test_normalization.py -#usr/lib/python2.4/test/test_normalization.pyc -#usr/lib/python2.4/test/test_normalization.pyo -#usr/lib/python2.4/test/test_ntpath.py -#usr/lib/python2.4/test/test_ntpath.pyc -#usr/lib/python2.4/test/test_ntpath.pyo -#usr/lib/python2.4/test/test_opcodes.py -#usr/lib/python2.4/test/test_opcodes.pyc -#usr/lib/python2.4/test/test_opcodes.pyo -#usr/lib/python2.4/test/test_openpty.py -#usr/lib/python2.4/test/test_openpty.pyc -#usr/lib/python2.4/test/test_openpty.pyo -#usr/lib/python2.4/test/test_operations.py -#usr/lib/python2.4/test/test_operations.pyc -#usr/lib/python2.4/test/test_operations.pyo -#usr/lib/python2.4/test/test_operator.py -#usr/lib/python2.4/test/test_operator.pyc -#usr/lib/python2.4/test/test_operator.pyo -#usr/lib/python2.4/test/test_optparse.py -#usr/lib/python2.4/test/test_optparse.pyc -#usr/lib/python2.4/test/test_optparse.pyo -#usr/lib/python2.4/test/test_os.py -#usr/lib/python2.4/test/test_os.pyc -#usr/lib/python2.4/test/test_os.pyo -#usr/lib/python2.4/test/test_ossaudiodev.py -#usr/lib/python2.4/test/test_ossaudiodev.pyc -#usr/lib/python2.4/test/test_ossaudiodev.pyo -#usr/lib/python2.4/test/test_parser.py -#usr/lib/python2.4/test/test_parser.pyc -#usr/lib/python2.4/test/test_parser.pyo -#usr/lib/python2.4/test/test_peepholer.py -#usr/lib/python2.4/test/test_peepholer.pyc -#usr/lib/python2.4/test/test_peepholer.pyo -#usr/lib/python2.4/test/test_pep247.py -#usr/lib/python2.4/test/test_pep247.pyc -#usr/lib/python2.4/test/test_pep247.pyo -#usr/lib/python2.4/test/test_pep263.py -#usr/lib/python2.4/test/test_pep263.pyc -#usr/lib/python2.4/test/test_pep263.pyo -#usr/lib/python2.4/test/test_pep277.py -#usr/lib/python2.4/test/test_pep277.pyc -#usr/lib/python2.4/test/test_pep277.pyo -#usr/lib/python2.4/test/test_pep292.py -#usr/lib/python2.4/test/test_pep292.pyc -#usr/lib/python2.4/test/test_pep292.pyo -#usr/lib/python2.4/test/test_pickle.py -#usr/lib/python2.4/test/test_pickle.pyc -#usr/lib/python2.4/test/test_pickle.pyo -#usr/lib/python2.4/test/test_pickletools.py -#usr/lib/python2.4/test/test_pickletools.pyc -#usr/lib/python2.4/test/test_pickletools.pyo -#usr/lib/python2.4/test/test_pkg.py -#usr/lib/python2.4/test/test_pkg.pyc -#usr/lib/python2.4/test/test_pkg.pyo -#usr/lib/python2.4/test/test_pkgimport.py -#usr/lib/python2.4/test/test_pkgimport.pyc -#usr/lib/python2.4/test/test_pkgimport.pyo -#usr/lib/python2.4/test/test_plistlib.py -#usr/lib/python2.4/test/test_plistlib.pyc -#usr/lib/python2.4/test/test_plistlib.pyo -#usr/lib/python2.4/test/test_poll.py -#usr/lib/python2.4/test/test_poll.pyc -#usr/lib/python2.4/test/test_poll.pyo -#usr/lib/python2.4/test/test_popen.py -#usr/lib/python2.4/test/test_popen.pyc -#usr/lib/python2.4/test/test_popen.pyo -#usr/lib/python2.4/test/test_popen2.py -#usr/lib/python2.4/test/test_popen2.pyc -#usr/lib/python2.4/test/test_popen2.pyo -#usr/lib/python2.4/test/test_posix.py -#usr/lib/python2.4/test/test_posix.pyc -#usr/lib/python2.4/test/test_posix.pyo -#usr/lib/python2.4/test/test_posixpath.py -#usr/lib/python2.4/test/test_posixpath.pyc -#usr/lib/python2.4/test/test_posixpath.pyo -#usr/lib/python2.4/test/test_pow.py -#usr/lib/python2.4/test/test_pow.pyc -#usr/lib/python2.4/test/test_pow.pyo -#usr/lib/python2.4/test/test_pprint.py -#usr/lib/python2.4/test/test_pprint.pyc -#usr/lib/python2.4/test/test_pprint.pyo -#usr/lib/python2.4/test/test_profile.py -#usr/lib/python2.4/test/test_profile.pyc -#usr/lib/python2.4/test/test_profile.pyo -#usr/lib/python2.4/test/test_profilehooks.py -#usr/lib/python2.4/test/test_profilehooks.pyc -#usr/lib/python2.4/test/test_profilehooks.pyo -#usr/lib/python2.4/test/test_pty.py -#usr/lib/python2.4/test/test_pty.pyc -#usr/lib/python2.4/test/test_pty.pyo -#usr/lib/python2.4/test/test_pwd.py -#usr/lib/python2.4/test/test_pwd.pyc -#usr/lib/python2.4/test/test_pwd.pyo -#usr/lib/python2.4/test/test_pyclbr.py -#usr/lib/python2.4/test/test_pyclbr.pyc -#usr/lib/python2.4/test/test_pyclbr.pyo -#usr/lib/python2.4/test/test_pyexpat.py -#usr/lib/python2.4/test/test_pyexpat.pyc -#usr/lib/python2.4/test/test_pyexpat.pyo -#usr/lib/python2.4/test/test_queue.py -#usr/lib/python2.4/test/test_queue.pyc -#usr/lib/python2.4/test/test_queue.pyo -#usr/lib/python2.4/test/test_quopri.py -#usr/lib/python2.4/test/test_quopri.pyc -#usr/lib/python2.4/test/test_quopri.pyo -#usr/lib/python2.4/test/test_random.py -#usr/lib/python2.4/test/test_random.pyc -#usr/lib/python2.4/test/test_random.pyo -#usr/lib/python2.4/test/test_re.py -#usr/lib/python2.4/test/test_re.pyc -#usr/lib/python2.4/test/test_re.pyo -#usr/lib/python2.4/test/test_regex.py -#usr/lib/python2.4/test/test_regex.pyc -#usr/lib/python2.4/test/test_regex.pyo -#usr/lib/python2.4/test/test_repr.py -#usr/lib/python2.4/test/test_repr.pyc -#usr/lib/python2.4/test/test_repr.pyo -#usr/lib/python2.4/test/test_resource.py -#usr/lib/python2.4/test/test_resource.pyc -#usr/lib/python2.4/test/test_resource.pyo -#usr/lib/python2.4/test/test_rfc822.py -#usr/lib/python2.4/test/test_rfc822.pyc -#usr/lib/python2.4/test/test_rfc822.pyo -#usr/lib/python2.4/test/test_rgbimg.py -#usr/lib/python2.4/test/test_rgbimg.pyc -#usr/lib/python2.4/test/test_rgbimg.pyo -#usr/lib/python2.4/test/test_richcmp.py -#usr/lib/python2.4/test/test_richcmp.pyc -#usr/lib/python2.4/test/test_richcmp.pyo -#usr/lib/python2.4/test/test_robotparser.py -#usr/lib/python2.4/test/test_robotparser.pyc -#usr/lib/python2.4/test/test_robotparser.pyo -#usr/lib/python2.4/test/test_sax.py -#usr/lib/python2.4/test/test_sax.pyc -#usr/lib/python2.4/test/test_sax.pyo -#usr/lib/python2.4/test/test_scope.py -#usr/lib/python2.4/test/test_scope.pyc -#usr/lib/python2.4/test/test_scope.pyo -#usr/lib/python2.4/test/test_scriptpackages.py -#usr/lib/python2.4/test/test_scriptpackages.pyc -#usr/lib/python2.4/test/test_scriptpackages.pyo -#usr/lib/python2.4/test/test_select.py -#usr/lib/python2.4/test/test_select.pyc -#usr/lib/python2.4/test/test_select.pyo -#usr/lib/python2.4/test/test_set.py -#usr/lib/python2.4/test/test_set.pyc -#usr/lib/python2.4/test/test_set.pyo -#usr/lib/python2.4/test/test_sets.py -#usr/lib/python2.4/test/test_sets.pyc -#usr/lib/python2.4/test/test_sets.pyo -#usr/lib/python2.4/test/test_sgmllib.py -#usr/lib/python2.4/test/test_sgmllib.pyc -#usr/lib/python2.4/test/test_sgmllib.pyo -#usr/lib/python2.4/test/test_sha.py -#usr/lib/python2.4/test/test_sha.pyc -#usr/lib/python2.4/test/test_sha.pyo -#usr/lib/python2.4/test/test_shelve.py -#usr/lib/python2.4/test/test_shelve.pyc -#usr/lib/python2.4/test/test_shelve.pyo -#usr/lib/python2.4/test/test_shlex.py -#usr/lib/python2.4/test/test_shlex.pyc -#usr/lib/python2.4/test/test_shlex.pyo -#usr/lib/python2.4/test/test_shutil.py -#usr/lib/python2.4/test/test_shutil.pyc -#usr/lib/python2.4/test/test_shutil.pyo -#usr/lib/python2.4/test/test_signal.py -#usr/lib/python2.4/test/test_signal.pyc -#usr/lib/python2.4/test/test_signal.pyo -#usr/lib/python2.4/test/test_site.py -#usr/lib/python2.4/test/test_site.pyc -#usr/lib/python2.4/test/test_site.pyo -#usr/lib/python2.4/test/test_slice.py -#usr/lib/python2.4/test/test_slice.pyc -#usr/lib/python2.4/test/test_slice.pyo -#usr/lib/python2.4/test/test_socket.py -#usr/lib/python2.4/test/test_socket.pyc -#usr/lib/python2.4/test/test_socket.pyo -#usr/lib/python2.4/test/test_socket_ssl.py -#usr/lib/python2.4/test/test_socket_ssl.pyc -#usr/lib/python2.4/test/test_socket_ssl.pyo -#usr/lib/python2.4/test/test_socketserver.py -#usr/lib/python2.4/test/test_socketserver.pyc -#usr/lib/python2.4/test/test_socketserver.pyo -#usr/lib/python2.4/test/test_softspace.py -#usr/lib/python2.4/test/test_softspace.pyc -#usr/lib/python2.4/test/test_softspace.pyo -#usr/lib/python2.4/test/test_sort.py -#usr/lib/python2.4/test/test_sort.pyc -#usr/lib/python2.4/test/test_sort.pyo -#usr/lib/python2.4/test/test_str.py -#usr/lib/python2.4/test/test_str.pyc -#usr/lib/python2.4/test/test_str.pyo -#usr/lib/python2.4/test/test_strftime.py -#usr/lib/python2.4/test/test_strftime.pyc -#usr/lib/python2.4/test/test_strftime.pyo -#usr/lib/python2.4/test/test_string.py -#usr/lib/python2.4/test/test_string.pyc -#usr/lib/python2.4/test/test_string.pyo -#usr/lib/python2.4/test/test_stringprep.py -#usr/lib/python2.4/test/test_stringprep.pyc -#usr/lib/python2.4/test/test_stringprep.pyo -#usr/lib/python2.4/test/test_strop.py -#usr/lib/python2.4/test/test_strop.pyc -#usr/lib/python2.4/test/test_strop.pyo -#usr/lib/python2.4/test/test_strptime.py -#usr/lib/python2.4/test/test_strptime.pyc -#usr/lib/python2.4/test/test_strptime.pyo -#usr/lib/python2.4/test/test_struct.py -#usr/lib/python2.4/test/test_struct.pyc -#usr/lib/python2.4/test/test_struct.pyo -#usr/lib/python2.4/test/test_structseq.py -#usr/lib/python2.4/test/test_structseq.pyc -#usr/lib/python2.4/test/test_structseq.pyo -#usr/lib/python2.4/test/test_subprocess.py -#usr/lib/python2.4/test/test_subprocess.pyc -#usr/lib/python2.4/test/test_subprocess.pyo -#usr/lib/python2.4/test/test_sunaudiodev.py -#usr/lib/python2.4/test/test_sunaudiodev.pyc -#usr/lib/python2.4/test/test_sunaudiodev.pyo -#usr/lib/python2.4/test/test_sundry.py -#usr/lib/python2.4/test/test_sundry.pyc -#usr/lib/python2.4/test/test_sundry.pyo -#usr/lib/python2.4/test/test_support.py -#usr/lib/python2.4/test/test_support.pyc -#usr/lib/python2.4/test/test_support.pyo -#usr/lib/python2.4/test/test_symtable.py -#usr/lib/python2.4/test/test_symtable.pyc -#usr/lib/python2.4/test/test_symtable.pyo -#usr/lib/python2.4/test/test_syntax.py -#usr/lib/python2.4/test/test_syntax.pyc -#usr/lib/python2.4/test/test_syntax.pyo -#usr/lib/python2.4/test/test_sys.py -#usr/lib/python2.4/test/test_sys.pyc -#usr/lib/python2.4/test/test_sys.pyo -#usr/lib/python2.4/test/test_tarfile.py -#usr/lib/python2.4/test/test_tarfile.pyc -#usr/lib/python2.4/test/test_tarfile.pyo -#usr/lib/python2.4/test/test_tcl.py -#usr/lib/python2.4/test/test_tcl.pyc -#usr/lib/python2.4/test/test_tcl.pyo -#usr/lib/python2.4/test/test_tempfile.py -#usr/lib/python2.4/test/test_tempfile.pyc -#usr/lib/python2.4/test/test_tempfile.pyo -#usr/lib/python2.4/test/test_textwrap.py -#usr/lib/python2.4/test/test_textwrap.pyc -#usr/lib/python2.4/test/test_textwrap.pyo -#usr/lib/python2.4/test/test_thread.py -#usr/lib/python2.4/test/test_thread.pyc -#usr/lib/python2.4/test/test_thread.pyo -#usr/lib/python2.4/test/test_threaded_import.py -#usr/lib/python2.4/test/test_threaded_import.pyc -#usr/lib/python2.4/test/test_threaded_import.pyo -#usr/lib/python2.4/test/test_threadedtempfile.py -#usr/lib/python2.4/test/test_threadedtempfile.pyc -#usr/lib/python2.4/test/test_threadedtempfile.pyo -#usr/lib/python2.4/test/test_threading.py -#usr/lib/python2.4/test/test_threading.pyc -#usr/lib/python2.4/test/test_threading.pyo -#usr/lib/python2.4/test/test_threading_local.py -#usr/lib/python2.4/test/test_threading_local.pyc -#usr/lib/python2.4/test/test_threading_local.pyo -#usr/lib/python2.4/test/test_threadsignals.py -#usr/lib/python2.4/test/test_threadsignals.pyc -#usr/lib/python2.4/test/test_threadsignals.pyo -#usr/lib/python2.4/test/test_time.py -#usr/lib/python2.4/test/test_time.pyc -#usr/lib/python2.4/test/test_time.pyo -#usr/lib/python2.4/test/test_timeout.py -#usr/lib/python2.4/test/test_timeout.pyc -#usr/lib/python2.4/test/test_timeout.pyo -#usr/lib/python2.4/test/test_timing.py -#usr/lib/python2.4/test/test_timing.pyc -#usr/lib/python2.4/test/test_timing.pyo -#usr/lib/python2.4/test/test_tokenize.py -#usr/lib/python2.4/test/test_tokenize.pyc -#usr/lib/python2.4/test/test_tokenize.pyo -#usr/lib/python2.4/test/test_trace.py -#usr/lib/python2.4/test/test_trace.pyc -#usr/lib/python2.4/test/test_trace.pyo -#usr/lib/python2.4/test/test_traceback.py -#usr/lib/python2.4/test/test_traceback.pyc -#usr/lib/python2.4/test/test_traceback.pyo -#usr/lib/python2.4/test/test_transformer.py -#usr/lib/python2.4/test/test_transformer.pyc -#usr/lib/python2.4/test/test_transformer.pyo -#usr/lib/python2.4/test/test_tuple.py -#usr/lib/python2.4/test/test_tuple.pyc -#usr/lib/python2.4/test/test_tuple.pyo -#usr/lib/python2.4/test/test_types.py -#usr/lib/python2.4/test/test_types.pyc -#usr/lib/python2.4/test/test_types.pyo -#usr/lib/python2.4/test/test_ucn.py -#usr/lib/python2.4/test/test_ucn.pyc -#usr/lib/python2.4/test/test_ucn.pyo -#usr/lib/python2.4/test/test_unary.py -#usr/lib/python2.4/test/test_unary.pyc -#usr/lib/python2.4/test/test_unary.pyo -#usr/lib/python2.4/test/test_unicode.py -#usr/lib/python2.4/test/test_unicode.pyc -#usr/lib/python2.4/test/test_unicode.pyo -#usr/lib/python2.4/test/test_unicode_file.py -#usr/lib/python2.4/test/test_unicode_file.pyc -#usr/lib/python2.4/test/test_unicode_file.pyo -#usr/lib/python2.4/test/test_unicodedata.py -#usr/lib/python2.4/test/test_unicodedata.pyc -#usr/lib/python2.4/test/test_unicodedata.pyo -#usr/lib/python2.4/test/test_unittest.py -#usr/lib/python2.4/test/test_unittest.pyc -#usr/lib/python2.4/test/test_unittest.pyo -#usr/lib/python2.4/test/test_univnewlines.py -#usr/lib/python2.4/test/test_univnewlines.pyc -#usr/lib/python2.4/test/test_univnewlines.pyo -#usr/lib/python2.4/test/test_unpack.py -#usr/lib/python2.4/test/test_unpack.pyc -#usr/lib/python2.4/test/test_unpack.pyo -#usr/lib/python2.4/test/test_urllib.py -#usr/lib/python2.4/test/test_urllib.pyc -#usr/lib/python2.4/test/test_urllib.pyo -#usr/lib/python2.4/test/test_urllib2.py -#usr/lib/python2.4/test/test_urllib2.pyc -#usr/lib/python2.4/test/test_urllib2.pyo -#usr/lib/python2.4/test/test_urllib2net.py -#usr/lib/python2.4/test/test_urllib2net.pyc -#usr/lib/python2.4/test/test_urllib2net.pyo -#usr/lib/python2.4/test/test_urllibnet.py -#usr/lib/python2.4/test/test_urllibnet.pyc -#usr/lib/python2.4/test/test_urllibnet.pyo -#usr/lib/python2.4/test/test_urlparse.py -#usr/lib/python2.4/test/test_urlparse.pyc -#usr/lib/python2.4/test/test_urlparse.pyo -#usr/lib/python2.4/test/test_userdict.py -#usr/lib/python2.4/test/test_userdict.pyc -#usr/lib/python2.4/test/test_userdict.pyo -#usr/lib/python2.4/test/test_userlist.py -#usr/lib/python2.4/test/test_userlist.pyc -#usr/lib/python2.4/test/test_userlist.pyo -#usr/lib/python2.4/test/test_userstring.py -#usr/lib/python2.4/test/test_userstring.pyc -#usr/lib/python2.4/test/test_userstring.pyo -#usr/lib/python2.4/test/test_uu.py -#usr/lib/python2.4/test/test_uu.pyc -#usr/lib/python2.4/test/test_uu.pyo -#usr/lib/python2.4/test/test_warnings.py -#usr/lib/python2.4/test/test_warnings.pyc -#usr/lib/python2.4/test/test_warnings.pyo -#usr/lib/python2.4/test/test_wave.py -#usr/lib/python2.4/test/test_wave.pyc -#usr/lib/python2.4/test/test_wave.pyo -#usr/lib/python2.4/test/test_weakref.py -#usr/lib/python2.4/test/test_weakref.pyc -#usr/lib/python2.4/test/test_weakref.pyo -#usr/lib/python2.4/test/test_whichdb.py -#usr/lib/python2.4/test/test_whichdb.pyc -#usr/lib/python2.4/test/test_whichdb.pyo -#usr/lib/python2.4/test/test_winreg.py -#usr/lib/python2.4/test/test_winreg.pyc -#usr/lib/python2.4/test/test_winreg.pyo -#usr/lib/python2.4/test/test_winsound.py -#usr/lib/python2.4/test/test_winsound.pyc -#usr/lib/python2.4/test/test_winsound.pyo -#usr/lib/python2.4/test/test_xmllib.py -#usr/lib/python2.4/test/test_xmllib.pyc -#usr/lib/python2.4/test/test_xmllib.pyo -#usr/lib/python2.4/test/test_xmlrpc.py -#usr/lib/python2.4/test/test_xmlrpc.pyc -#usr/lib/python2.4/test/test_xmlrpc.pyo -#usr/lib/python2.4/test/test_xpickle.py -#usr/lib/python2.4/test/test_xpickle.pyc -#usr/lib/python2.4/test/test_xpickle.pyo -#usr/lib/python2.4/test/test_xrange.py -#usr/lib/python2.4/test/test_xrange.pyc -#usr/lib/python2.4/test/test_xrange.pyo -#usr/lib/python2.4/test/test_zipfile.py -#usr/lib/python2.4/test/test_zipfile.pyc -#usr/lib/python2.4/test/test_zipfile.pyo -#usr/lib/python2.4/test/test_zipimport.py -#usr/lib/python2.4/test/test_zipimport.pyc -#usr/lib/python2.4/test/test_zipimport.pyo -#usr/lib/python2.4/test/test_zlib.py -#usr/lib/python2.4/test/test_zlib.pyc -#usr/lib/python2.4/test/test_zlib.pyo -#usr/lib/python2.4/test/testall.py -#usr/lib/python2.4/test/testall.pyc -#usr/lib/python2.4/test/testall.pyo -#usr/lib/python2.4/test/testcodec.py -#usr/lib/python2.4/test/testcodec.pyc -#usr/lib/python2.4/test/testcodec.pyo -#usr/lib/python2.4/test/testimg.uue -#usr/lib/python2.4/test/testimgr.uue -#usr/lib/python2.4/test/testrgb.uue -#usr/lib/python2.4/test/testtar.tar -#usr/lib/python2.4/test/tf_inherit_check.py -#usr/lib/python2.4/test/tf_inherit_check.pyc -#usr/lib/python2.4/test/tf_inherit_check.pyo -#usr/lib/python2.4/test/tokenize_tests.txt -#usr/lib/python2.4/test/xmltests.py -#usr/lib/python2.4/test/xmltests.pyc -#usr/lib/python2.4/test/xmltests.pyo -#usr/lib/python2.4/textwrap.py -usr/lib/python2.4/textwrap.pyc -#usr/lib/python2.4/textwrap.pyo -#usr/lib/python2.4/this.py -usr/lib/python2.4/this.pyc -#usr/lib/python2.4/this.pyo -#usr/lib/python2.4/threading.py -usr/lib/python2.4/threading.pyc -#usr/lib/python2.4/threading.pyo -#usr/lib/python2.4/timeit.py -usr/lib/python2.4/timeit.pyc -#usr/lib/python2.4/timeit.pyo -#usr/lib/python2.4/toaiff.py -usr/lib/python2.4/toaiff.pyc -#usr/lib/python2.4/toaiff.pyo -#usr/lib/python2.4/token.py -usr/lib/python2.4/token.pyc -#usr/lib/python2.4/token.pyo -#usr/lib/python2.4/tokenize.py -usr/lib/python2.4/tokenize.pyc -#usr/lib/python2.4/tokenize.pyo -#usr/lib/python2.4/trace.py -usr/lib/python2.4/trace.pyc -#usr/lib/python2.4/trace.pyo -#usr/lib/python2.4/traceback.py -usr/lib/python2.4/traceback.pyc -#usr/lib/python2.4/traceback.pyo -#usr/lib/python2.4/tty.py -usr/lib/python2.4/tty.pyc -#usr/lib/python2.4/tty.pyo -#usr/lib/python2.4/types.py -usr/lib/python2.4/types.pyc -#usr/lib/python2.4/types.pyo -#usr/lib/python2.4/tzparse.py -usr/lib/python2.4/tzparse.pyc -#usr/lib/python2.4/tzparse.pyo -#usr/lib/python2.4/unittest.py -usr/lib/python2.4/unittest.pyc -#usr/lib/python2.4/unittest.pyo -#usr/lib/python2.4/urllib.py -usr/lib/python2.4/urllib.pyc -#usr/lib/python2.4/urllib.pyo -#usr/lib/python2.4/urllib2.py -usr/lib/python2.4/urllib2.pyc -#usr/lib/python2.4/urllib2.pyo -#usr/lib/python2.4/urlparse.py -usr/lib/python2.4/urlparse.pyc -#usr/lib/python2.4/urlparse.pyo -#usr/lib/python2.4/user.py -usr/lib/python2.4/user.pyc -#usr/lib/python2.4/user.pyo -#usr/lib/python2.4/uu.py -usr/lib/python2.4/uu.pyc -#usr/lib/python2.4/uu.pyo -#usr/lib/python2.4/warnings.py -usr/lib/python2.4/warnings.pyc -#usr/lib/python2.4/warnings.pyo -#usr/lib/python2.4/wave.py -usr/lib/python2.4/wave.pyc -#usr/lib/python2.4/wave.pyo -#usr/lib/python2.4/weakref.py -usr/lib/python2.4/weakref.pyc -#usr/lib/python2.4/weakref.pyo -#usr/lib/python2.4/webbrowser.py -usr/lib/python2.4/webbrowser.pyc -#usr/lib/python2.4/webbrowser.pyo -#usr/lib/python2.4/whichdb.py -usr/lib/python2.4/whichdb.pyc -#usr/lib/python2.4/whichdb.pyo -#usr/lib/python2.4/whrandom.py -usr/lib/python2.4/whrandom.pyc -#usr/lib/python2.4/whrandom.pyo -#usr/lib/python2.4/xdrlib.py -usr/lib/python2.4/xdrlib.pyc -#usr/lib/python2.4/xdrlib.pyo -#usr/lib/python2.4/xml -#usr/lib/python2.4/xml/__init__.py -usr/lib/python2.4/xml/__init__.pyc -#usr/lib/python2.4/xml/__init__.pyo -#usr/lib/python2.4/xml/dom -#usr/lib/python2.4/xml/dom/NodeFilter.py -usr/lib/python2.4/xml/dom/NodeFilter.pyc -#usr/lib/python2.4/xml/dom/NodeFilter.pyo -#usr/lib/python2.4/xml/dom/__init__.py -usr/lib/python2.4/xml/dom/__init__.pyc -#usr/lib/python2.4/xml/dom/__init__.pyo -#usr/lib/python2.4/xml/dom/domreg.py -usr/lib/python2.4/xml/dom/domreg.pyc -#usr/lib/python2.4/xml/dom/domreg.pyo -#usr/lib/python2.4/xml/dom/expatbuilder.py -usr/lib/python2.4/xml/dom/expatbuilder.pyc -#usr/lib/python2.4/xml/dom/expatbuilder.pyo -#usr/lib/python2.4/xml/dom/minicompat.py -usr/lib/python2.4/xml/dom/minicompat.pyc -#usr/lib/python2.4/xml/dom/minicompat.pyo -#usr/lib/python2.4/xml/dom/minidom.py -usr/lib/python2.4/xml/dom/minidom.pyc -#usr/lib/python2.4/xml/dom/minidom.pyo -#usr/lib/python2.4/xml/dom/pulldom.py -usr/lib/python2.4/xml/dom/pulldom.pyc -#usr/lib/python2.4/xml/dom/pulldom.pyo -#usr/lib/python2.4/xml/dom/xmlbuilder.py -usr/lib/python2.4/xml/dom/xmlbuilder.pyc -#usr/lib/python2.4/xml/dom/xmlbuilder.pyo -#usr/lib/python2.4/xml/parsers -#usr/lib/python2.4/xml/parsers/__init__.py -usr/lib/python2.4/xml/parsers/__init__.pyc -#usr/lib/python2.4/xml/parsers/__init__.pyo -#usr/lib/python2.4/xml/parsers/expat.py -usr/lib/python2.4/xml/parsers/expat.pyc -#usr/lib/python2.4/xml/parsers/expat.pyo -#usr/lib/python2.4/xml/sax -#usr/lib/python2.4/xml/sax/__init__.py -usr/lib/python2.4/xml/sax/__init__.pyc -#usr/lib/python2.4/xml/sax/__init__.pyo -#usr/lib/python2.4/xml/sax/_exceptions.py -usr/lib/python2.4/xml/sax/_exceptions.pyc -#usr/lib/python2.4/xml/sax/_exceptions.pyo -#usr/lib/python2.4/xml/sax/expatreader.py -usr/lib/python2.4/xml/sax/expatreader.pyc -#usr/lib/python2.4/xml/sax/expatreader.pyo -#usr/lib/python2.4/xml/sax/handler.py -usr/lib/python2.4/xml/sax/handler.pyc -#usr/lib/python2.4/xml/sax/handler.pyo -#usr/lib/python2.4/xml/sax/saxutils.py -usr/lib/python2.4/xml/sax/saxutils.pyc -#usr/lib/python2.4/xml/sax/saxutils.pyo -#usr/lib/python2.4/xml/sax/xmlreader.py -usr/lib/python2.4/xml/sax/xmlreader.pyc -#usr/lib/python2.4/xml/sax/xmlreader.pyo -#usr/lib/python2.4/xmllib.py -usr/lib/python2.4/xmllib.pyc -#usr/lib/python2.4/xmllib.pyo -#usr/lib/python2.4/xmlrpclib.py -usr/lib/python2.4/xmlrpclib.pyc -#usr/lib/python2.4/xmlrpclib.pyo -#usr/lib/python2.4/zipfile.py -usr/lib/python2.4/zipfile.pyc -#usr/lib/python2.4/zipfile.pyo -#usr/man/man1/python.1 +#usr/include/python2.7 +#usr/include/python2.7/Python-ast.h +#usr/include/python2.7/Python.h +#usr/include/python2.7/abstract.h +#usr/include/python2.7/asdl.h +#usr/include/python2.7/ast.h +#usr/include/python2.7/bitset.h +#usr/include/python2.7/boolobject.h +#usr/include/python2.7/bufferobject.h +#usr/include/python2.7/bytearrayobject.h +#usr/include/python2.7/bytes_methods.h +#usr/include/python2.7/bytesobject.h +#usr/include/python2.7/cStringIO.h +#usr/include/python2.7/cellobject.h +#usr/include/python2.7/ceval.h +#usr/include/python2.7/classobject.h +#usr/include/python2.7/cobject.h +#usr/include/python2.7/code.h +#usr/include/python2.7/codecs.h +#usr/include/python2.7/compile.h +#usr/include/python2.7/complexobject.h +#usr/include/python2.7/datetime.h +#usr/include/python2.7/descrobject.h +#usr/include/python2.7/dictobject.h +#usr/include/python2.7/dtoa.h +#usr/include/python2.7/enumobject.h +#usr/include/python2.7/errcode.h +#usr/include/python2.7/eval.h +#usr/include/python2.7/fileobject.h +#usr/include/python2.7/floatobject.h +#usr/include/python2.7/frameobject.h +#usr/include/python2.7/funcobject.h +#usr/include/python2.7/genobject.h +#usr/include/python2.7/graminit.h +#usr/include/python2.7/grammar.h +#usr/include/python2.7/import.h +#usr/include/python2.7/intobject.h +#usr/include/python2.7/intrcheck.h +#usr/include/python2.7/iterobject.h +#usr/include/python2.7/listobject.h +#usr/include/python2.7/longintrepr.h +#usr/include/python2.7/longobject.h +#usr/include/python2.7/marshal.h +#usr/include/python2.7/memoryobject.h +#usr/include/python2.7/metagrammar.h +#usr/include/python2.7/methodobject.h +#usr/include/python2.7/modsupport.h +#usr/include/python2.7/moduleobject.h +#usr/include/python2.7/node.h +#usr/include/python2.7/object.h +#usr/include/python2.7/objimpl.h +#usr/include/python2.7/opcode.h +#usr/include/python2.7/osdefs.h +#usr/include/python2.7/parsetok.h +#usr/include/python2.7/patchlevel.h +#usr/include/python2.7/pgen.h +#usr/include/python2.7/pgenheaders.h +#usr/include/python2.7/py_curses.h +#usr/include/python2.7/pyarena.h +#usr/include/python2.7/pycapsule.h +usr/include/python2.7/pyconfig.h +#usr/include/python2.7/pyctype.h +#usr/include/python2.7/pydebug.h +#usr/include/python2.7/pyerrors.h +#usr/include/python2.7/pyexpat.h +#usr/include/python2.7/pyfpe.h +#usr/include/python2.7/pygetopt.h +#usr/include/python2.7/pymacconfig.h +#usr/include/python2.7/pymactoolbox.h +#usr/include/python2.7/pymath.h +#usr/include/python2.7/pymem.h +#usr/include/python2.7/pyport.h +#usr/include/python2.7/pystate.h +#usr/include/python2.7/pystrcmp.h +#usr/include/python2.7/pystrtod.h +#usr/include/python2.7/pythonrun.h +#usr/include/python2.7/pythread.h +#usr/include/python2.7/rangeobject.h +#usr/include/python2.7/setobject.h +#usr/include/python2.7/sliceobject.h +#usr/include/python2.7/stringobject.h +#usr/include/python2.7/structmember.h +#usr/include/python2.7/structseq.h +#usr/include/python2.7/symtable.h +#usr/include/python2.7/sysmodule.h +#usr/include/python2.7/timefuncs.h +#usr/include/python2.7/token.h +#usr/include/python2.7/traceback.h +#usr/include/python2.7/tupleobject.h +#usr/include/python2.7/ucnhash.h +#usr/include/python2.7/unicodeobject.h +#usr/include/python2.7/warnings.h +#usr/include/python2.7/weakrefobject.h +usr/lib/libpython2.7.so +usr/lib/libpython2.7.so.1.0 +#usr/lib/pkgconfig/python-2.7.pc +#usr/lib/pkgconfig/python.pc +#usr/lib/python2.7 +#usr/lib/python2.7/BaseHTTPServer.py +usr/lib/python2.7/BaseHTTPServer.pyc +#usr/lib/python2.7/BaseHTTPServer.pyo +#usr/lib/python2.7/Bastion.py +usr/lib/python2.7/Bastion.pyc +#usr/lib/python2.7/Bastion.pyo +#usr/lib/python2.7/CGIHTTPServer.py +usr/lib/python2.7/CGIHTTPServer.pyc +#usr/lib/python2.7/CGIHTTPServer.pyo +#usr/lib/python2.7/ConfigParser.py +usr/lib/python2.7/ConfigParser.pyc +#usr/lib/python2.7/ConfigParser.pyo +#usr/lib/python2.7/Cookie.py +usr/lib/python2.7/Cookie.pyc +#usr/lib/python2.7/Cookie.pyo +#usr/lib/python2.7/DocXMLRPCServer.py +usr/lib/python2.7/DocXMLRPCServer.pyc +#usr/lib/python2.7/DocXMLRPCServer.pyo +#usr/lib/python2.7/HTMLParser.py +usr/lib/python2.7/HTMLParser.pyc +#usr/lib/python2.7/HTMLParser.pyo +#usr/lib/python2.7/LICENSE.txt +#usr/lib/python2.7/MimeWriter.py +usr/lib/python2.7/MimeWriter.pyc +#usr/lib/python2.7/MimeWriter.pyo +#usr/lib/python2.7/Queue.py +usr/lib/python2.7/Queue.pyc +#usr/lib/python2.7/Queue.pyo +#usr/lib/python2.7/SimpleHTTPServer.py +usr/lib/python2.7/SimpleHTTPServer.pyc +#usr/lib/python2.7/SimpleHTTPServer.pyo +#usr/lib/python2.7/SimpleXMLRPCServer.py +usr/lib/python2.7/SimpleXMLRPCServer.pyc +#usr/lib/python2.7/SimpleXMLRPCServer.pyo +#usr/lib/python2.7/SocketServer.py +usr/lib/python2.7/SocketServer.pyc +#usr/lib/python2.7/SocketServer.pyo +#usr/lib/python2.7/StringIO.py +usr/lib/python2.7/StringIO.pyc +#usr/lib/python2.7/StringIO.pyo +#usr/lib/python2.7/UserDict.py +usr/lib/python2.7/UserDict.pyc +#usr/lib/python2.7/UserDict.pyo +#usr/lib/python2.7/UserList.py +usr/lib/python2.7/UserList.pyc +#usr/lib/python2.7/UserList.pyo +#usr/lib/python2.7/UserString.py +usr/lib/python2.7/UserString.pyc +#usr/lib/python2.7/UserString.pyo +#usr/lib/python2.7/_LWPCookieJar.py +usr/lib/python2.7/_LWPCookieJar.pyc +#usr/lib/python2.7/_LWPCookieJar.pyo +#usr/lib/python2.7/_MozillaCookieJar.py +usr/lib/python2.7/_MozillaCookieJar.pyc +#usr/lib/python2.7/_MozillaCookieJar.pyo +#usr/lib/python2.7/__future__.py +usr/lib/python2.7/__future__.pyc +#usr/lib/python2.7/__future__.pyo +#usr/lib/python2.7/__phello__.foo.py +usr/lib/python2.7/__phello__.foo.pyc +#usr/lib/python2.7/__phello__.foo.pyo +#usr/lib/python2.7/_abcoll.py +usr/lib/python2.7/_abcoll.pyc +#usr/lib/python2.7/_abcoll.pyo +#usr/lib/python2.7/_pyio.py +usr/lib/python2.7/_pyio.pyc +#usr/lib/python2.7/_pyio.pyo +#usr/lib/python2.7/_strptime.py +usr/lib/python2.7/_strptime.pyc +#usr/lib/python2.7/_strptime.pyo +#usr/lib/python2.7/_threading_local.py +usr/lib/python2.7/_threading_local.pyc +#usr/lib/python2.7/_threading_local.pyo +#usr/lib/python2.7/_weakrefset.py +usr/lib/python2.7/_weakrefset.pyc +#usr/lib/python2.7/_weakrefset.pyo +#usr/lib/python2.7/abc.py +usr/lib/python2.7/abc.pyc +#usr/lib/python2.7/abc.pyo +#usr/lib/python2.7/aifc.py +usr/lib/python2.7/aifc.pyc +#usr/lib/python2.7/aifc.pyo +#usr/lib/python2.7/antigravity.py +usr/lib/python2.7/antigravity.pyc +#usr/lib/python2.7/antigravity.pyo +#usr/lib/python2.7/anydbm.py +usr/lib/python2.7/anydbm.pyc +#usr/lib/python2.7/anydbm.pyo +#usr/lib/python2.7/argparse.py +usr/lib/python2.7/argparse.pyc +#usr/lib/python2.7/argparse.pyo +#usr/lib/python2.7/ast.py +usr/lib/python2.7/ast.pyc +#usr/lib/python2.7/ast.pyo +#usr/lib/python2.7/asynchat.py +usr/lib/python2.7/asynchat.pyc +#usr/lib/python2.7/asynchat.pyo +#usr/lib/python2.7/asyncore.py +usr/lib/python2.7/asyncore.pyc +#usr/lib/python2.7/asyncore.pyo +#usr/lib/python2.7/atexit.py +usr/lib/python2.7/atexit.pyc +#usr/lib/python2.7/atexit.pyo +#usr/lib/python2.7/audiodev.py +usr/lib/python2.7/audiodev.pyc +#usr/lib/python2.7/audiodev.pyo +#usr/lib/python2.7/base64.py +usr/lib/python2.7/base64.pyc +#usr/lib/python2.7/base64.pyo +#usr/lib/python2.7/bdb.py +usr/lib/python2.7/bdb.pyc +#usr/lib/python2.7/bdb.pyo +#usr/lib/python2.7/binhex.py +usr/lib/python2.7/binhex.pyc +#usr/lib/python2.7/binhex.pyo +#usr/lib/python2.7/bisect.py +usr/lib/python2.7/bisect.pyc +#usr/lib/python2.7/bisect.pyo +#usr/lib/python2.7/bsddb +#usr/lib/python2.7/bsddb/__init__.py +usr/lib/python2.7/bsddb/__init__.pyc +#usr/lib/python2.7/bsddb/__init__.pyo +#usr/lib/python2.7/bsddb/db.py +usr/lib/python2.7/bsddb/db.pyc +#usr/lib/python2.7/bsddb/db.pyo +#usr/lib/python2.7/bsddb/dbobj.py +usr/lib/python2.7/bsddb/dbobj.pyc +#usr/lib/python2.7/bsddb/dbobj.pyo +#usr/lib/python2.7/bsddb/dbrecio.py +usr/lib/python2.7/bsddb/dbrecio.pyc +#usr/lib/python2.7/bsddb/dbrecio.pyo +#usr/lib/python2.7/bsddb/dbshelve.py +usr/lib/python2.7/bsddb/dbshelve.pyc +#usr/lib/python2.7/bsddb/dbshelve.pyo +#usr/lib/python2.7/bsddb/dbtables.py +usr/lib/python2.7/bsddb/dbtables.pyc +#usr/lib/python2.7/bsddb/dbtables.pyo +#usr/lib/python2.7/bsddb/dbutils.py +usr/lib/python2.7/bsddb/dbutils.pyc +#usr/lib/python2.7/bsddb/dbutils.pyo +#usr/lib/python2.7/bsddb/test +#usr/lib/python2.7/bsddb/test/__init__.py +#usr/lib/python2.7/bsddb/test/__init__.pyc +#usr/lib/python2.7/bsddb/test/__init__.pyo +#usr/lib/python2.7/bsddb/test/test_all.py +#usr/lib/python2.7/bsddb/test/test_all.pyc +#usr/lib/python2.7/bsddb/test/test_all.pyo +#usr/lib/python2.7/bsddb/test/test_associate.py +#usr/lib/python2.7/bsddb/test/test_associate.pyc +#usr/lib/python2.7/bsddb/test/test_associate.pyo +#usr/lib/python2.7/bsddb/test/test_basics.py +#usr/lib/python2.7/bsddb/test/test_basics.pyc +#usr/lib/python2.7/bsddb/test/test_basics.pyo +#usr/lib/python2.7/bsddb/test/test_compare.py +#usr/lib/python2.7/bsddb/test/test_compare.pyc +#usr/lib/python2.7/bsddb/test/test_compare.pyo +#usr/lib/python2.7/bsddb/test/test_compat.py +#usr/lib/python2.7/bsddb/test/test_compat.pyc +#usr/lib/python2.7/bsddb/test/test_compat.pyo +#usr/lib/python2.7/bsddb/test/test_cursor_pget_bug.py +#usr/lib/python2.7/bsddb/test/test_cursor_pget_bug.pyc +#usr/lib/python2.7/bsddb/test/test_cursor_pget_bug.pyo +#usr/lib/python2.7/bsddb/test/test_db.py +#usr/lib/python2.7/bsddb/test/test_db.pyc +#usr/lib/python2.7/bsddb/test/test_db.pyo +#usr/lib/python2.7/bsddb/test/test_dbenv.py +#usr/lib/python2.7/bsddb/test/test_dbenv.pyc +#usr/lib/python2.7/bsddb/test/test_dbenv.pyo +#usr/lib/python2.7/bsddb/test/test_dbobj.py +#usr/lib/python2.7/bsddb/test/test_dbobj.pyc +#usr/lib/python2.7/bsddb/test/test_dbobj.pyo +#usr/lib/python2.7/bsddb/test/test_dbshelve.py +#usr/lib/python2.7/bsddb/test/test_dbshelve.pyc +#usr/lib/python2.7/bsddb/test/test_dbshelve.pyo +#usr/lib/python2.7/bsddb/test/test_dbtables.py +#usr/lib/python2.7/bsddb/test/test_dbtables.pyc +#usr/lib/python2.7/bsddb/test/test_dbtables.pyo +#usr/lib/python2.7/bsddb/test/test_distributed_transactions.py +#usr/lib/python2.7/bsddb/test/test_distributed_transactions.pyc +#usr/lib/python2.7/bsddb/test/test_distributed_transactions.pyo +#usr/lib/python2.7/bsddb/test/test_early_close.py +#usr/lib/python2.7/bsddb/test/test_early_close.pyc +#usr/lib/python2.7/bsddb/test/test_early_close.pyo +#usr/lib/python2.7/bsddb/test/test_fileid.py +#usr/lib/python2.7/bsddb/test/test_fileid.pyc +#usr/lib/python2.7/bsddb/test/test_fileid.pyo +#usr/lib/python2.7/bsddb/test/test_get_none.py +#usr/lib/python2.7/bsddb/test/test_get_none.pyc +#usr/lib/python2.7/bsddb/test/test_get_none.pyo +#usr/lib/python2.7/bsddb/test/test_join.py +#usr/lib/python2.7/bsddb/test/test_join.pyc +#usr/lib/python2.7/bsddb/test/test_join.pyo +#usr/lib/python2.7/bsddb/test/test_lock.py +#usr/lib/python2.7/bsddb/test/test_lock.pyc +#usr/lib/python2.7/bsddb/test/test_lock.pyo +#usr/lib/python2.7/bsddb/test/test_misc.py +#usr/lib/python2.7/bsddb/test/test_misc.pyc +#usr/lib/python2.7/bsddb/test/test_misc.pyo +#usr/lib/python2.7/bsddb/test/test_pickle.py +#usr/lib/python2.7/bsddb/test/test_pickle.pyc +#usr/lib/python2.7/bsddb/test/test_pickle.pyo +#usr/lib/python2.7/bsddb/test/test_queue.py +#usr/lib/python2.7/bsddb/test/test_queue.pyc +#usr/lib/python2.7/bsddb/test/test_queue.pyo +#usr/lib/python2.7/bsddb/test/test_recno.py +#usr/lib/python2.7/bsddb/test/test_recno.pyc +#usr/lib/python2.7/bsddb/test/test_recno.pyo +#usr/lib/python2.7/bsddb/test/test_replication.py +#usr/lib/python2.7/bsddb/test/test_replication.pyc +#usr/lib/python2.7/bsddb/test/test_replication.pyo +#usr/lib/python2.7/bsddb/test/test_sequence.py +#usr/lib/python2.7/bsddb/test/test_sequence.pyc +#usr/lib/python2.7/bsddb/test/test_sequence.pyo +#usr/lib/python2.7/bsddb/test/test_thread.py +#usr/lib/python2.7/bsddb/test/test_thread.pyc +#usr/lib/python2.7/bsddb/test/test_thread.pyo +#usr/lib/python2.7/cProfile.py +usr/lib/python2.7/cProfile.pyc +#usr/lib/python2.7/cProfile.pyo +#usr/lib/python2.7/calendar.py +usr/lib/python2.7/calendar.pyc +#usr/lib/python2.7/calendar.pyo +#usr/lib/python2.7/cgi.py +usr/lib/python2.7/cgi.pyc +#usr/lib/python2.7/cgi.pyo +#usr/lib/python2.7/cgitb.py +usr/lib/python2.7/cgitb.pyc +#usr/lib/python2.7/cgitb.pyo +#usr/lib/python2.7/chunk.py +usr/lib/python2.7/chunk.pyc +#usr/lib/python2.7/chunk.pyo +#usr/lib/python2.7/cmd.py +usr/lib/python2.7/cmd.pyc +#usr/lib/python2.7/cmd.pyo +#usr/lib/python2.7/code.py +usr/lib/python2.7/code.pyc +#usr/lib/python2.7/code.pyo +#usr/lib/python2.7/codecs.py +usr/lib/python2.7/codecs.pyc +#usr/lib/python2.7/codecs.pyo +#usr/lib/python2.7/codeop.py +usr/lib/python2.7/codeop.pyc +#usr/lib/python2.7/codeop.pyo +#usr/lib/python2.7/collections.py +usr/lib/python2.7/collections.pyc +#usr/lib/python2.7/collections.pyo +#usr/lib/python2.7/colorsys.py +usr/lib/python2.7/colorsys.pyc +#usr/lib/python2.7/colorsys.pyo +#usr/lib/python2.7/commands.py +usr/lib/python2.7/commands.pyc +#usr/lib/python2.7/commands.pyo +#usr/lib/python2.7/compileall.py +usr/lib/python2.7/compileall.pyc +#usr/lib/python2.7/compileall.pyo +#usr/lib/python2.7/compiler +#usr/lib/python2.7/compiler/__init__.py +usr/lib/python2.7/compiler/__init__.pyc +#usr/lib/python2.7/compiler/__init__.pyo +#usr/lib/python2.7/compiler/ast.py +usr/lib/python2.7/compiler/ast.pyc +#usr/lib/python2.7/compiler/ast.pyo +#usr/lib/python2.7/compiler/consts.py +usr/lib/python2.7/compiler/consts.pyc +#usr/lib/python2.7/compiler/consts.pyo +#usr/lib/python2.7/compiler/future.py +usr/lib/python2.7/compiler/future.pyc +#usr/lib/python2.7/compiler/future.pyo +#usr/lib/python2.7/compiler/misc.py +usr/lib/python2.7/compiler/misc.pyc +#usr/lib/python2.7/compiler/misc.pyo +#usr/lib/python2.7/compiler/pyassem.py +usr/lib/python2.7/compiler/pyassem.pyc +#usr/lib/python2.7/compiler/pyassem.pyo +#usr/lib/python2.7/compiler/pycodegen.py +usr/lib/python2.7/compiler/pycodegen.pyc +#usr/lib/python2.7/compiler/pycodegen.pyo +#usr/lib/python2.7/compiler/symbols.py +usr/lib/python2.7/compiler/symbols.pyc +#usr/lib/python2.7/compiler/symbols.pyo +#usr/lib/python2.7/compiler/syntax.py +usr/lib/python2.7/compiler/syntax.pyc +#usr/lib/python2.7/compiler/syntax.pyo +#usr/lib/python2.7/compiler/transformer.py +usr/lib/python2.7/compiler/transformer.pyc +#usr/lib/python2.7/compiler/transformer.pyo +#usr/lib/python2.7/compiler/visitor.py +usr/lib/python2.7/compiler/visitor.pyc +#usr/lib/python2.7/compiler/visitor.pyo +#usr/lib/python2.7/config +usr/lib/python2.7/config/Makefile +#usr/lib/python2.7/config/Setup +#usr/lib/python2.7/config/Setup.config +#usr/lib/python2.7/config/Setup.local +#usr/lib/python2.7/config/config.c +#usr/lib/python2.7/config/config.c.in +#usr/lib/python2.7/config/install-sh +#usr/lib/python2.7/config/libpython2.7.a +#usr/lib/python2.7/config/makesetup +#usr/lib/python2.7/config/python.o +#usr/lib/python2.7/contextlib.py +usr/lib/python2.7/contextlib.pyc +#usr/lib/python2.7/contextlib.pyo +#usr/lib/python2.7/cookielib.py +usr/lib/python2.7/cookielib.pyc +#usr/lib/python2.7/cookielib.pyo +#usr/lib/python2.7/copy.py +usr/lib/python2.7/copy.pyc +#usr/lib/python2.7/copy.pyo +#usr/lib/python2.7/copy_reg.py +usr/lib/python2.7/copy_reg.pyc +#usr/lib/python2.7/copy_reg.pyo +#usr/lib/python2.7/csv.py +usr/lib/python2.7/csv.pyc +#usr/lib/python2.7/csv.pyo +#usr/lib/python2.7/ctypes +#usr/lib/python2.7/ctypes/__init__.py +usr/lib/python2.7/ctypes/__init__.pyc +#usr/lib/python2.7/ctypes/__init__.pyo +#usr/lib/python2.7/ctypes/_endian.py +usr/lib/python2.7/ctypes/_endian.pyc +#usr/lib/python2.7/ctypes/_endian.pyo +#usr/lib/python2.7/ctypes/macholib +#usr/lib/python2.7/ctypes/macholib/README.ctypes +#usr/lib/python2.7/ctypes/macholib/__init__.py +usr/lib/python2.7/ctypes/macholib/__init__.pyc +#usr/lib/python2.7/ctypes/macholib/__init__.pyo +#usr/lib/python2.7/ctypes/macholib/dyld.py +usr/lib/python2.7/ctypes/macholib/dyld.pyc +#usr/lib/python2.7/ctypes/macholib/dyld.pyo +#usr/lib/python2.7/ctypes/macholib/dylib.py +usr/lib/python2.7/ctypes/macholib/dylib.pyc +#usr/lib/python2.7/ctypes/macholib/dylib.pyo +#usr/lib/python2.7/ctypes/macholib/fetch_macholib +#usr/lib/python2.7/ctypes/macholib/fetch_macholib.bat +#usr/lib/python2.7/ctypes/macholib/framework.py +usr/lib/python2.7/ctypes/macholib/framework.pyc +#usr/lib/python2.7/ctypes/macholib/framework.pyo +#usr/lib/python2.7/ctypes/test +#usr/lib/python2.7/ctypes/test/__init__.py +#usr/lib/python2.7/ctypes/test/__init__.pyc +#usr/lib/python2.7/ctypes/test/__init__.pyo +#usr/lib/python2.7/ctypes/test/runtests.py +#usr/lib/python2.7/ctypes/test/runtests.pyc +#usr/lib/python2.7/ctypes/test/runtests.pyo +#usr/lib/python2.7/ctypes/test/test_anon.py +#usr/lib/python2.7/ctypes/test/test_anon.pyc +#usr/lib/python2.7/ctypes/test/test_anon.pyo +#usr/lib/python2.7/ctypes/test/test_array_in_pointer.py +#usr/lib/python2.7/ctypes/test/test_array_in_pointer.pyc +#usr/lib/python2.7/ctypes/test/test_array_in_pointer.pyo +#usr/lib/python2.7/ctypes/test/test_arrays.py +#usr/lib/python2.7/ctypes/test/test_arrays.pyc +#usr/lib/python2.7/ctypes/test/test_arrays.pyo +#usr/lib/python2.7/ctypes/test/test_as_parameter.py +#usr/lib/python2.7/ctypes/test/test_as_parameter.pyc +#usr/lib/python2.7/ctypes/test/test_as_parameter.pyo +#usr/lib/python2.7/ctypes/test/test_bitfields.py +#usr/lib/python2.7/ctypes/test/test_bitfields.pyc +#usr/lib/python2.7/ctypes/test/test_bitfields.pyo +#usr/lib/python2.7/ctypes/test/test_buffers.py +#usr/lib/python2.7/ctypes/test/test_buffers.pyc +#usr/lib/python2.7/ctypes/test/test_buffers.pyo +#usr/lib/python2.7/ctypes/test/test_byteswap.py +#usr/lib/python2.7/ctypes/test/test_byteswap.pyc +#usr/lib/python2.7/ctypes/test/test_byteswap.pyo +#usr/lib/python2.7/ctypes/test/test_callbacks.py +#usr/lib/python2.7/ctypes/test/test_callbacks.pyc +#usr/lib/python2.7/ctypes/test/test_callbacks.pyo +#usr/lib/python2.7/ctypes/test/test_cast.py +#usr/lib/python2.7/ctypes/test/test_cast.pyc +#usr/lib/python2.7/ctypes/test/test_cast.pyo +#usr/lib/python2.7/ctypes/test/test_cfuncs.py +#usr/lib/python2.7/ctypes/test/test_cfuncs.pyc +#usr/lib/python2.7/ctypes/test/test_cfuncs.pyo +#usr/lib/python2.7/ctypes/test/test_checkretval.py +#usr/lib/python2.7/ctypes/test/test_checkretval.pyc +#usr/lib/python2.7/ctypes/test/test_checkretval.pyo +#usr/lib/python2.7/ctypes/test/test_delattr.py +#usr/lib/python2.7/ctypes/test/test_delattr.pyc +#usr/lib/python2.7/ctypes/test/test_delattr.pyo +#usr/lib/python2.7/ctypes/test/test_errcheck.py +#usr/lib/python2.7/ctypes/test/test_errcheck.pyc +#usr/lib/python2.7/ctypes/test/test_errcheck.pyo +#usr/lib/python2.7/ctypes/test/test_errno.py +#usr/lib/python2.7/ctypes/test/test_errno.pyc +#usr/lib/python2.7/ctypes/test/test_errno.pyo +#usr/lib/python2.7/ctypes/test/test_find.py +#usr/lib/python2.7/ctypes/test/test_find.pyc +#usr/lib/python2.7/ctypes/test/test_find.pyo +#usr/lib/python2.7/ctypes/test/test_frombuffer.py +#usr/lib/python2.7/ctypes/test/test_frombuffer.pyc +#usr/lib/python2.7/ctypes/test/test_frombuffer.pyo +#usr/lib/python2.7/ctypes/test/test_funcptr.py +#usr/lib/python2.7/ctypes/test/test_funcptr.pyc +#usr/lib/python2.7/ctypes/test/test_funcptr.pyo +#usr/lib/python2.7/ctypes/test/test_functions.py +#usr/lib/python2.7/ctypes/test/test_functions.pyc +#usr/lib/python2.7/ctypes/test/test_functions.pyo +#usr/lib/python2.7/ctypes/test/test_incomplete.py +#usr/lib/python2.7/ctypes/test/test_incomplete.pyc +#usr/lib/python2.7/ctypes/test/test_incomplete.pyo +#usr/lib/python2.7/ctypes/test/test_init.py +#usr/lib/python2.7/ctypes/test/test_init.pyc +#usr/lib/python2.7/ctypes/test/test_init.pyo +#usr/lib/python2.7/ctypes/test/test_integers.py +#usr/lib/python2.7/ctypes/test/test_integers.pyc +#usr/lib/python2.7/ctypes/test/test_integers.pyo +#usr/lib/python2.7/ctypes/test/test_internals.py +#usr/lib/python2.7/ctypes/test/test_internals.pyc +#usr/lib/python2.7/ctypes/test/test_internals.pyo +#usr/lib/python2.7/ctypes/test/test_keeprefs.py +#usr/lib/python2.7/ctypes/test/test_keeprefs.pyc +#usr/lib/python2.7/ctypes/test/test_keeprefs.pyo +#usr/lib/python2.7/ctypes/test/test_libc.py +#usr/lib/python2.7/ctypes/test/test_libc.pyc +#usr/lib/python2.7/ctypes/test/test_libc.pyo +#usr/lib/python2.7/ctypes/test/test_loading.py +#usr/lib/python2.7/ctypes/test/test_loading.pyc +#usr/lib/python2.7/ctypes/test/test_loading.pyo +#usr/lib/python2.7/ctypes/test/test_macholib.py +#usr/lib/python2.7/ctypes/test/test_macholib.pyc +#usr/lib/python2.7/ctypes/test/test_macholib.pyo +#usr/lib/python2.7/ctypes/test/test_memfunctions.py +#usr/lib/python2.7/ctypes/test/test_memfunctions.pyc +#usr/lib/python2.7/ctypes/test/test_memfunctions.pyo +#usr/lib/python2.7/ctypes/test/test_numbers.py +#usr/lib/python2.7/ctypes/test/test_numbers.pyc +#usr/lib/python2.7/ctypes/test/test_numbers.pyo +#usr/lib/python2.7/ctypes/test/test_objects.py +#usr/lib/python2.7/ctypes/test/test_objects.pyc +#usr/lib/python2.7/ctypes/test/test_objects.pyo +#usr/lib/python2.7/ctypes/test/test_parameters.py +#usr/lib/python2.7/ctypes/test/test_parameters.pyc +#usr/lib/python2.7/ctypes/test/test_parameters.pyo +#usr/lib/python2.7/ctypes/test/test_pep3118.py +#usr/lib/python2.7/ctypes/test/test_pep3118.pyc +#usr/lib/python2.7/ctypes/test/test_pep3118.pyo +#usr/lib/python2.7/ctypes/test/test_pickling.py +#usr/lib/python2.7/ctypes/test/test_pickling.pyc +#usr/lib/python2.7/ctypes/test/test_pickling.pyo +#usr/lib/python2.7/ctypes/test/test_pointers.py +#usr/lib/python2.7/ctypes/test/test_pointers.pyc +#usr/lib/python2.7/ctypes/test/test_pointers.pyo +#usr/lib/python2.7/ctypes/test/test_prototypes.py +#usr/lib/python2.7/ctypes/test/test_prototypes.pyc +#usr/lib/python2.7/ctypes/test/test_prototypes.pyo +#usr/lib/python2.7/ctypes/test/test_python_api.py +#usr/lib/python2.7/ctypes/test/test_python_api.pyc +#usr/lib/python2.7/ctypes/test/test_python_api.pyo +#usr/lib/python2.7/ctypes/test/test_random_things.py +#usr/lib/python2.7/ctypes/test/test_random_things.pyc +#usr/lib/python2.7/ctypes/test/test_random_things.pyo +#usr/lib/python2.7/ctypes/test/test_refcounts.py +#usr/lib/python2.7/ctypes/test/test_refcounts.pyc +#usr/lib/python2.7/ctypes/test/test_refcounts.pyo +#usr/lib/python2.7/ctypes/test/test_repr.py +#usr/lib/python2.7/ctypes/test/test_repr.pyc +#usr/lib/python2.7/ctypes/test/test_repr.pyo +#usr/lib/python2.7/ctypes/test/test_returnfuncptrs.py +#usr/lib/python2.7/ctypes/test/test_returnfuncptrs.pyc +#usr/lib/python2.7/ctypes/test/test_returnfuncptrs.pyo +#usr/lib/python2.7/ctypes/test/test_simplesubclasses.py +#usr/lib/python2.7/ctypes/test/test_simplesubclasses.pyc +#usr/lib/python2.7/ctypes/test/test_simplesubclasses.pyo +#usr/lib/python2.7/ctypes/test/test_sizes.py +#usr/lib/python2.7/ctypes/test/test_sizes.pyc +#usr/lib/python2.7/ctypes/test/test_sizes.pyo +#usr/lib/python2.7/ctypes/test/test_slicing.py +#usr/lib/python2.7/ctypes/test/test_slicing.pyc +#usr/lib/python2.7/ctypes/test/test_slicing.pyo +#usr/lib/python2.7/ctypes/test/test_stringptr.py +#usr/lib/python2.7/ctypes/test/test_stringptr.pyc +#usr/lib/python2.7/ctypes/test/test_stringptr.pyo +#usr/lib/python2.7/ctypes/test/test_strings.py +#usr/lib/python2.7/ctypes/test/test_strings.pyc +#usr/lib/python2.7/ctypes/test/test_strings.pyo +#usr/lib/python2.7/ctypes/test/test_struct_fields.py +#usr/lib/python2.7/ctypes/test/test_struct_fields.pyc +#usr/lib/python2.7/ctypes/test/test_struct_fields.pyo +#usr/lib/python2.7/ctypes/test/test_structures.py +#usr/lib/python2.7/ctypes/test/test_structures.pyc +#usr/lib/python2.7/ctypes/test/test_structures.pyo +#usr/lib/python2.7/ctypes/test/test_unaligned_structures.py +#usr/lib/python2.7/ctypes/test/test_unaligned_structures.pyc +#usr/lib/python2.7/ctypes/test/test_unaligned_structures.pyo +#usr/lib/python2.7/ctypes/test/test_unicode.py +#usr/lib/python2.7/ctypes/test/test_unicode.pyc +#usr/lib/python2.7/ctypes/test/test_unicode.pyo +#usr/lib/python2.7/ctypes/test/test_values.py +#usr/lib/python2.7/ctypes/test/test_values.pyc +#usr/lib/python2.7/ctypes/test/test_values.pyo +#usr/lib/python2.7/ctypes/test/test_varsize_struct.py +#usr/lib/python2.7/ctypes/test/test_varsize_struct.pyc +#usr/lib/python2.7/ctypes/test/test_varsize_struct.pyo +#usr/lib/python2.7/ctypes/test/test_win32.py +#usr/lib/python2.7/ctypes/test/test_win32.pyc +#usr/lib/python2.7/ctypes/test/test_win32.pyo +#usr/lib/python2.7/ctypes/util.py +usr/lib/python2.7/ctypes/util.pyc +#usr/lib/python2.7/ctypes/util.pyo +#usr/lib/python2.7/ctypes/wintypes.py +usr/lib/python2.7/ctypes/wintypes.pyc +#usr/lib/python2.7/ctypes/wintypes.pyo +#usr/lib/python2.7/curses +#usr/lib/python2.7/curses/__init__.py +usr/lib/python2.7/curses/__init__.pyc +#usr/lib/python2.7/curses/__init__.pyo +#usr/lib/python2.7/curses/ascii.py +usr/lib/python2.7/curses/ascii.pyc +#usr/lib/python2.7/curses/ascii.pyo +#usr/lib/python2.7/curses/has_key.py +usr/lib/python2.7/curses/has_key.pyc +#usr/lib/python2.7/curses/has_key.pyo +#usr/lib/python2.7/curses/panel.py +usr/lib/python2.7/curses/panel.pyc +#usr/lib/python2.7/curses/panel.pyo +#usr/lib/python2.7/curses/textpad.py +usr/lib/python2.7/curses/textpad.pyc +#usr/lib/python2.7/curses/textpad.pyo +#usr/lib/python2.7/curses/wrapper.py +usr/lib/python2.7/curses/wrapper.pyc +#usr/lib/python2.7/curses/wrapper.pyo +#usr/lib/python2.7/dbhash.py +usr/lib/python2.7/dbhash.pyc +#usr/lib/python2.7/dbhash.pyo +#usr/lib/python2.7/decimal.py +usr/lib/python2.7/decimal.pyc +#usr/lib/python2.7/decimal.pyo +#usr/lib/python2.7/difflib.py +usr/lib/python2.7/difflib.pyc +#usr/lib/python2.7/difflib.pyo +#usr/lib/python2.7/dircache.py +usr/lib/python2.7/dircache.pyc +#usr/lib/python2.7/dircache.pyo +#usr/lib/python2.7/dis.py +usr/lib/python2.7/dis.pyc +#usr/lib/python2.7/dis.pyo +#usr/lib/python2.7/distutils +#usr/lib/python2.7/distutils/README +#usr/lib/python2.7/distutils/__init__.py +#usr/lib/python2.7/distutils/__init__.pyc +#usr/lib/python2.7/distutils/__init__.pyo +#usr/lib/python2.7/distutils/archive_util.py +#usr/lib/python2.7/distutils/archive_util.pyc +#usr/lib/python2.7/distutils/archive_util.pyo +#usr/lib/python2.7/distutils/bcppcompiler.py +#usr/lib/python2.7/distutils/bcppcompiler.pyc +#usr/lib/python2.7/distutils/bcppcompiler.pyo +#usr/lib/python2.7/distutils/ccompiler.py +#usr/lib/python2.7/distutils/ccompiler.pyc +#usr/lib/python2.7/distutils/ccompiler.pyo +#usr/lib/python2.7/distutils/cmd.py +#usr/lib/python2.7/distutils/cmd.pyc +#usr/lib/python2.7/distutils/cmd.pyo +#usr/lib/python2.7/distutils/command +#usr/lib/python2.7/distutils/command/__init__.py +#usr/lib/python2.7/distutils/command/__init__.pyc +#usr/lib/python2.7/distutils/command/__init__.pyo +#usr/lib/python2.7/distutils/command/bdist.py +#usr/lib/python2.7/distutils/command/bdist.pyc +#usr/lib/python2.7/distutils/command/bdist.pyo +#usr/lib/python2.7/distutils/command/bdist_dumb.py +#usr/lib/python2.7/distutils/command/bdist_dumb.pyc +#usr/lib/python2.7/distutils/command/bdist_dumb.pyo +#usr/lib/python2.7/distutils/command/bdist_msi.py +#usr/lib/python2.7/distutils/command/bdist_msi.pyc +#usr/lib/python2.7/distutils/command/bdist_msi.pyo +#usr/lib/python2.7/distutils/command/bdist_rpm.py +#usr/lib/python2.7/distutils/command/bdist_rpm.pyc +#usr/lib/python2.7/distutils/command/bdist_rpm.pyo +#usr/lib/python2.7/distutils/command/bdist_wininst.py +#usr/lib/python2.7/distutils/command/bdist_wininst.pyc +#usr/lib/python2.7/distutils/command/bdist_wininst.pyo +#usr/lib/python2.7/distutils/command/build.py +#usr/lib/python2.7/distutils/command/build.pyc +#usr/lib/python2.7/distutils/command/build.pyo +#usr/lib/python2.7/distutils/command/build_clib.py +#usr/lib/python2.7/distutils/command/build_clib.pyc +#usr/lib/python2.7/distutils/command/build_clib.pyo +#usr/lib/python2.7/distutils/command/build_ext.py +#usr/lib/python2.7/distutils/command/build_ext.pyc +#usr/lib/python2.7/distutils/command/build_ext.pyo +#usr/lib/python2.7/distutils/command/build_py.py +#usr/lib/python2.7/distutils/command/build_py.pyc +#usr/lib/python2.7/distutils/command/build_py.pyo +#usr/lib/python2.7/distutils/command/build_scripts.py +#usr/lib/python2.7/distutils/command/build_scripts.pyc +#usr/lib/python2.7/distutils/command/build_scripts.pyo +#usr/lib/python2.7/distutils/command/check.py +#usr/lib/python2.7/distutils/command/check.pyc +#usr/lib/python2.7/distutils/command/check.pyo +#usr/lib/python2.7/distutils/command/clean.py +#usr/lib/python2.7/distutils/command/clean.pyc +#usr/lib/python2.7/distutils/command/clean.pyo +#usr/lib/python2.7/distutils/command/command_template +#usr/lib/python2.7/distutils/command/config.py +#usr/lib/python2.7/distutils/command/config.pyc +#usr/lib/python2.7/distutils/command/config.pyo +#usr/lib/python2.7/distutils/command/install.py +#usr/lib/python2.7/distutils/command/install.pyc +#usr/lib/python2.7/distutils/command/install.pyo +#usr/lib/python2.7/distutils/command/install_data.py +#usr/lib/python2.7/distutils/command/install_data.pyc +#usr/lib/python2.7/distutils/command/install_data.pyo +#usr/lib/python2.7/distutils/command/install_egg_info.py +#usr/lib/python2.7/distutils/command/install_egg_info.pyc +#usr/lib/python2.7/distutils/command/install_egg_info.pyo +#usr/lib/python2.7/distutils/command/install_headers.py +#usr/lib/python2.7/distutils/command/install_headers.pyc +#usr/lib/python2.7/distutils/command/install_headers.pyo +#usr/lib/python2.7/distutils/command/install_lib.py +#usr/lib/python2.7/distutils/command/install_lib.pyc +#usr/lib/python2.7/distutils/command/install_lib.pyo +#usr/lib/python2.7/distutils/command/install_scripts.py +#usr/lib/python2.7/distutils/command/install_scripts.pyc +#usr/lib/python2.7/distutils/command/install_scripts.pyo +#usr/lib/python2.7/distutils/command/register.py +#usr/lib/python2.7/distutils/command/register.pyc +#usr/lib/python2.7/distutils/command/register.pyo +#usr/lib/python2.7/distutils/command/sdist.py +#usr/lib/python2.7/distutils/command/sdist.pyc +#usr/lib/python2.7/distutils/command/sdist.pyo +#usr/lib/python2.7/distutils/command/upload.py +#usr/lib/python2.7/distutils/command/upload.pyc +#usr/lib/python2.7/distutils/command/upload.pyo +#usr/lib/python2.7/distutils/command/wininst-6.0.exe +#usr/lib/python2.7/distutils/command/wininst-7.1.exe +#usr/lib/python2.7/distutils/command/wininst-8.0.exe +#usr/lib/python2.7/distutils/command/wininst-9.0-amd64.exe +#usr/lib/python2.7/distutils/command/wininst-9.0.exe +#usr/lib/python2.7/distutils/config.py +#usr/lib/python2.7/distutils/config.pyc +#usr/lib/python2.7/distutils/config.pyo +#usr/lib/python2.7/distutils/core.py +#usr/lib/python2.7/distutils/core.pyc +#usr/lib/python2.7/distutils/core.pyo +#usr/lib/python2.7/distutils/cygwinccompiler.py +#usr/lib/python2.7/distutils/cygwinccompiler.pyc +#usr/lib/python2.7/distutils/cygwinccompiler.pyo +#usr/lib/python2.7/distutils/debug.py +#usr/lib/python2.7/distutils/debug.pyc +#usr/lib/python2.7/distutils/debug.pyo +#usr/lib/python2.7/distutils/dep_util.py +#usr/lib/python2.7/distutils/dep_util.pyc +#usr/lib/python2.7/distutils/dep_util.pyo +#usr/lib/python2.7/distutils/dir_util.py +#usr/lib/python2.7/distutils/dir_util.pyc +#usr/lib/python2.7/distutils/dir_util.pyo +#usr/lib/python2.7/distutils/dist.py +#usr/lib/python2.7/distutils/dist.pyc +#usr/lib/python2.7/distutils/dist.pyo +#usr/lib/python2.7/distutils/emxccompiler.py +#usr/lib/python2.7/distutils/emxccompiler.pyc +#usr/lib/python2.7/distutils/emxccompiler.pyo +#usr/lib/python2.7/distutils/errors.py +#usr/lib/python2.7/distutils/errors.pyc +#usr/lib/python2.7/distutils/errors.pyo +#usr/lib/python2.7/distutils/extension.py +#usr/lib/python2.7/distutils/extension.pyc +#usr/lib/python2.7/distutils/extension.pyo +#usr/lib/python2.7/distutils/fancy_getopt.py +#usr/lib/python2.7/distutils/fancy_getopt.pyc +#usr/lib/python2.7/distutils/fancy_getopt.pyo +#usr/lib/python2.7/distutils/file_util.py +#usr/lib/python2.7/distutils/file_util.pyc +#usr/lib/python2.7/distutils/file_util.pyo +#usr/lib/python2.7/distutils/filelist.py +#usr/lib/python2.7/distutils/filelist.pyc +#usr/lib/python2.7/distutils/filelist.pyo +#usr/lib/python2.7/distutils/log.py +#usr/lib/python2.7/distutils/log.pyc +#usr/lib/python2.7/distutils/log.pyo +#usr/lib/python2.7/distutils/msvc9compiler.py +#usr/lib/python2.7/distutils/msvc9compiler.pyc +#usr/lib/python2.7/distutils/msvc9compiler.pyo +#usr/lib/python2.7/distutils/msvccompiler.py +#usr/lib/python2.7/distutils/msvccompiler.pyc +#usr/lib/python2.7/distutils/msvccompiler.pyo +#usr/lib/python2.7/distutils/spawn.py +#usr/lib/python2.7/distutils/spawn.pyc +#usr/lib/python2.7/distutils/spawn.pyo +#usr/lib/python2.7/distutils/sysconfig.py +#usr/lib/python2.7/distutils/sysconfig.pyc +#usr/lib/python2.7/distutils/sysconfig.pyo +#usr/lib/python2.7/distutils/tests +#usr/lib/python2.7/distutils/tests/Setup.sample +#usr/lib/python2.7/distutils/tests/__init__.py +#usr/lib/python2.7/distutils/tests/__init__.pyc +#usr/lib/python2.7/distutils/tests/__init__.pyo +#usr/lib/python2.7/distutils/tests/setuptools_build_ext.py +#usr/lib/python2.7/distutils/tests/setuptools_build_ext.pyc +#usr/lib/python2.7/distutils/tests/setuptools_build_ext.pyo +#usr/lib/python2.7/distutils/tests/setuptools_extension.py +#usr/lib/python2.7/distutils/tests/setuptools_extension.pyc +#usr/lib/python2.7/distutils/tests/setuptools_extension.pyo +#usr/lib/python2.7/distutils/tests/support.py +#usr/lib/python2.7/distutils/tests/support.pyc +#usr/lib/python2.7/distutils/tests/support.pyo +#usr/lib/python2.7/distutils/tests/test_archive_util.py +#usr/lib/python2.7/distutils/tests/test_archive_util.pyc +#usr/lib/python2.7/distutils/tests/test_archive_util.pyo +#usr/lib/python2.7/distutils/tests/test_bdist.py +#usr/lib/python2.7/distutils/tests/test_bdist.pyc +#usr/lib/python2.7/distutils/tests/test_bdist.pyo +#usr/lib/python2.7/distutils/tests/test_bdist_dumb.py +#usr/lib/python2.7/distutils/tests/test_bdist_dumb.pyc +#usr/lib/python2.7/distutils/tests/test_bdist_dumb.pyo +#usr/lib/python2.7/distutils/tests/test_bdist_msi.py +#usr/lib/python2.7/distutils/tests/test_bdist_msi.pyc +#usr/lib/python2.7/distutils/tests/test_bdist_msi.pyo +#usr/lib/python2.7/distutils/tests/test_bdist_rpm.py +#usr/lib/python2.7/distutils/tests/test_bdist_rpm.pyc +#usr/lib/python2.7/distutils/tests/test_bdist_rpm.pyo +#usr/lib/python2.7/distutils/tests/test_bdist_wininst.py +#usr/lib/python2.7/distutils/tests/test_bdist_wininst.pyc +#usr/lib/python2.7/distutils/tests/test_bdist_wininst.pyo +#usr/lib/python2.7/distutils/tests/test_build.py +#usr/lib/python2.7/distutils/tests/test_build.pyc +#usr/lib/python2.7/distutils/tests/test_build.pyo +#usr/lib/python2.7/distutils/tests/test_build_clib.py +#usr/lib/python2.7/distutils/tests/test_build_clib.pyc +#usr/lib/python2.7/distutils/tests/test_build_clib.pyo +#usr/lib/python2.7/distutils/tests/test_build_ext.py +#usr/lib/python2.7/distutils/tests/test_build_ext.pyc +#usr/lib/python2.7/distutils/tests/test_build_ext.pyo +#usr/lib/python2.7/distutils/tests/test_build_py.py +#usr/lib/python2.7/distutils/tests/test_build_py.pyc +#usr/lib/python2.7/distutils/tests/test_build_py.pyo +#usr/lib/python2.7/distutils/tests/test_build_scripts.py +#usr/lib/python2.7/distutils/tests/test_build_scripts.pyc +#usr/lib/python2.7/distutils/tests/test_build_scripts.pyo +#usr/lib/python2.7/distutils/tests/test_ccompiler.py +#usr/lib/python2.7/distutils/tests/test_ccompiler.pyc +#usr/lib/python2.7/distutils/tests/test_ccompiler.pyo +#usr/lib/python2.7/distutils/tests/test_check.py +#usr/lib/python2.7/distutils/tests/test_check.pyc +#usr/lib/python2.7/distutils/tests/test_check.pyo +#usr/lib/python2.7/distutils/tests/test_clean.py +#usr/lib/python2.7/distutils/tests/test_clean.pyc +#usr/lib/python2.7/distutils/tests/test_clean.pyo +#usr/lib/python2.7/distutils/tests/test_cmd.py +#usr/lib/python2.7/distutils/tests/test_cmd.pyc +#usr/lib/python2.7/distutils/tests/test_cmd.pyo +#usr/lib/python2.7/distutils/tests/test_config.py +#usr/lib/python2.7/distutils/tests/test_config.pyc +#usr/lib/python2.7/distutils/tests/test_config.pyo +#usr/lib/python2.7/distutils/tests/test_config_cmd.py +#usr/lib/python2.7/distutils/tests/test_config_cmd.pyc +#usr/lib/python2.7/distutils/tests/test_config_cmd.pyo +#usr/lib/python2.7/distutils/tests/test_core.py +#usr/lib/python2.7/distutils/tests/test_core.pyc +#usr/lib/python2.7/distutils/tests/test_core.pyo +#usr/lib/python2.7/distutils/tests/test_dep_util.py +#usr/lib/python2.7/distutils/tests/test_dep_util.pyc +#usr/lib/python2.7/distutils/tests/test_dep_util.pyo +#usr/lib/python2.7/distutils/tests/test_dir_util.py +#usr/lib/python2.7/distutils/tests/test_dir_util.pyc +#usr/lib/python2.7/distutils/tests/test_dir_util.pyo +#usr/lib/python2.7/distutils/tests/test_dist.py +#usr/lib/python2.7/distutils/tests/test_dist.pyc +#usr/lib/python2.7/distutils/tests/test_dist.pyo +#usr/lib/python2.7/distutils/tests/test_file_util.py +#usr/lib/python2.7/distutils/tests/test_file_util.pyc +#usr/lib/python2.7/distutils/tests/test_file_util.pyo +#usr/lib/python2.7/distutils/tests/test_filelist.py +#usr/lib/python2.7/distutils/tests/test_filelist.pyc +#usr/lib/python2.7/distutils/tests/test_filelist.pyo +#usr/lib/python2.7/distutils/tests/test_install.py +#usr/lib/python2.7/distutils/tests/test_install.pyc +#usr/lib/python2.7/distutils/tests/test_install.pyo +#usr/lib/python2.7/distutils/tests/test_install_data.py +#usr/lib/python2.7/distutils/tests/test_install_data.pyc +#usr/lib/python2.7/distutils/tests/test_install_data.pyo +#usr/lib/python2.7/distutils/tests/test_install_headers.py +#usr/lib/python2.7/distutils/tests/test_install_headers.pyc +#usr/lib/python2.7/distutils/tests/test_install_headers.pyo +#usr/lib/python2.7/distutils/tests/test_install_lib.py +#usr/lib/python2.7/distutils/tests/test_install_lib.pyc +#usr/lib/python2.7/distutils/tests/test_install_lib.pyo +#usr/lib/python2.7/distutils/tests/test_install_scripts.py +#usr/lib/python2.7/distutils/tests/test_install_scripts.pyc +#usr/lib/python2.7/distutils/tests/test_install_scripts.pyo +#usr/lib/python2.7/distutils/tests/test_msvc9compiler.py +#usr/lib/python2.7/distutils/tests/test_msvc9compiler.pyc +#usr/lib/python2.7/distutils/tests/test_msvc9compiler.pyo +#usr/lib/python2.7/distutils/tests/test_register.py +#usr/lib/python2.7/distutils/tests/test_register.pyc +#usr/lib/python2.7/distutils/tests/test_register.pyo +#usr/lib/python2.7/distutils/tests/test_sdist.py +#usr/lib/python2.7/distutils/tests/test_sdist.pyc +#usr/lib/python2.7/distutils/tests/test_sdist.pyo +#usr/lib/python2.7/distutils/tests/test_spawn.py +#usr/lib/python2.7/distutils/tests/test_spawn.pyc +#usr/lib/python2.7/distutils/tests/test_spawn.pyo +#usr/lib/python2.7/distutils/tests/test_sysconfig.py +#usr/lib/python2.7/distutils/tests/test_sysconfig.pyc +#usr/lib/python2.7/distutils/tests/test_sysconfig.pyo +#usr/lib/python2.7/distutils/tests/test_text_file.py +#usr/lib/python2.7/distutils/tests/test_text_file.pyc +#usr/lib/python2.7/distutils/tests/test_text_file.pyo +#usr/lib/python2.7/distutils/tests/test_unixccompiler.py +#usr/lib/python2.7/distutils/tests/test_unixccompiler.pyc +#usr/lib/python2.7/distutils/tests/test_unixccompiler.pyo +#usr/lib/python2.7/distutils/tests/test_upload.py +#usr/lib/python2.7/distutils/tests/test_upload.pyc +#usr/lib/python2.7/distutils/tests/test_upload.pyo +#usr/lib/python2.7/distutils/tests/test_util.py +#usr/lib/python2.7/distutils/tests/test_util.pyc +#usr/lib/python2.7/distutils/tests/test_util.pyo +#usr/lib/python2.7/distutils/tests/test_version.py +#usr/lib/python2.7/distutils/tests/test_version.pyc +#usr/lib/python2.7/distutils/tests/test_version.pyo +#usr/lib/python2.7/distutils/tests/test_versionpredicate.py +#usr/lib/python2.7/distutils/tests/test_versionpredicate.pyc +#usr/lib/python2.7/distutils/tests/test_versionpredicate.pyo +#usr/lib/python2.7/distutils/text_file.py +#usr/lib/python2.7/distutils/text_file.pyc +#usr/lib/python2.7/distutils/text_file.pyo +#usr/lib/python2.7/distutils/unixccompiler.py +#usr/lib/python2.7/distutils/unixccompiler.pyc +#usr/lib/python2.7/distutils/unixccompiler.pyo +#usr/lib/python2.7/distutils/util.py +#usr/lib/python2.7/distutils/util.pyc +#usr/lib/python2.7/distutils/util.pyo +#usr/lib/python2.7/distutils/version.py +#usr/lib/python2.7/distutils/version.pyc +#usr/lib/python2.7/distutils/version.pyo +#usr/lib/python2.7/distutils/versionpredicate.py +#usr/lib/python2.7/distutils/versionpredicate.pyc +#usr/lib/python2.7/distutils/versionpredicate.pyo +#usr/lib/python2.7/doctest.py +usr/lib/python2.7/doctest.pyc +#usr/lib/python2.7/doctest.pyo +#usr/lib/python2.7/dumbdbm.py +usr/lib/python2.7/dumbdbm.pyc +#usr/lib/python2.7/dumbdbm.pyo +#usr/lib/python2.7/dummy_thread.py +#usr/lib/python2.7/dummy_thread.pyc +#usr/lib/python2.7/dummy_thread.pyo +#usr/lib/python2.7/dummy_threading.py +usr/lib/python2.7/dummy_threading.pyc +#usr/lib/python2.7/dummy_threading.pyo +#usr/lib/python2.7/email +#usr/lib/python2.7/email/__init__.py +usr/lib/python2.7/email/__init__.pyc +#usr/lib/python2.7/email/__init__.pyo +#usr/lib/python2.7/email/_parseaddr.py +usr/lib/python2.7/email/_parseaddr.pyc +#usr/lib/python2.7/email/_parseaddr.pyo +#usr/lib/python2.7/email/base64mime.py +usr/lib/python2.7/email/base64mime.pyc +#usr/lib/python2.7/email/base64mime.pyo +#usr/lib/python2.7/email/charset.py +usr/lib/python2.7/email/charset.pyc +#usr/lib/python2.7/email/charset.pyo +#usr/lib/python2.7/email/encoders.py +usr/lib/python2.7/email/encoders.pyc +#usr/lib/python2.7/email/encoders.pyo +#usr/lib/python2.7/email/errors.py +usr/lib/python2.7/email/errors.pyc +#usr/lib/python2.7/email/errors.pyo +#usr/lib/python2.7/email/feedparser.py +usr/lib/python2.7/email/feedparser.pyc +#usr/lib/python2.7/email/feedparser.pyo +#usr/lib/python2.7/email/generator.py +usr/lib/python2.7/email/generator.pyc +#usr/lib/python2.7/email/generator.pyo +#usr/lib/python2.7/email/header.py +usr/lib/python2.7/email/header.pyc +#usr/lib/python2.7/email/header.pyo +#usr/lib/python2.7/email/iterators.py +usr/lib/python2.7/email/iterators.pyc +#usr/lib/python2.7/email/iterators.pyo +#usr/lib/python2.7/email/message.py +usr/lib/python2.7/email/message.pyc +#usr/lib/python2.7/email/message.pyo +#usr/lib/python2.7/email/mime +#usr/lib/python2.7/email/mime/__init__.py +usr/lib/python2.7/email/mime/__init__.pyc +#usr/lib/python2.7/email/mime/__init__.pyo +#usr/lib/python2.7/email/mime/application.py +usr/lib/python2.7/email/mime/application.pyc +#usr/lib/python2.7/email/mime/application.pyo +#usr/lib/python2.7/email/mime/audio.py +usr/lib/python2.7/email/mime/audio.pyc +#usr/lib/python2.7/email/mime/audio.pyo +#usr/lib/python2.7/email/mime/base.py +usr/lib/python2.7/email/mime/base.pyc +#usr/lib/python2.7/email/mime/base.pyo +#usr/lib/python2.7/email/mime/image.py +usr/lib/python2.7/email/mime/image.pyc +#usr/lib/python2.7/email/mime/image.pyo +#usr/lib/python2.7/email/mime/message.py +usr/lib/python2.7/email/mime/message.pyc +#usr/lib/python2.7/email/mime/message.pyo +#usr/lib/python2.7/email/mime/multipart.py +usr/lib/python2.7/email/mime/multipart.pyc +#usr/lib/python2.7/email/mime/multipart.pyo +#usr/lib/python2.7/email/mime/nonmultipart.py +usr/lib/python2.7/email/mime/nonmultipart.pyc +#usr/lib/python2.7/email/mime/nonmultipart.pyo +#usr/lib/python2.7/email/mime/text.py +usr/lib/python2.7/email/mime/text.pyc +#usr/lib/python2.7/email/mime/text.pyo +#usr/lib/python2.7/email/parser.py +usr/lib/python2.7/email/parser.pyc +#usr/lib/python2.7/email/parser.pyo +#usr/lib/python2.7/email/quoprimime.py +usr/lib/python2.7/email/quoprimime.pyc +#usr/lib/python2.7/email/quoprimime.pyo +#usr/lib/python2.7/email/test +#usr/lib/python2.7/email/test/__init__.py +#usr/lib/python2.7/email/test/__init__.pyc +#usr/lib/python2.7/email/test/__init__.pyo +#usr/lib/python2.7/email/test/data +#usr/lib/python2.7/email/test/data/PyBanner048.gif +#usr/lib/python2.7/email/test/data/audiotest.au +#usr/lib/python2.7/email/test/data/msg_01.txt +#usr/lib/python2.7/email/test/data/msg_02.txt +#usr/lib/python2.7/email/test/data/msg_03.txt +#usr/lib/python2.7/email/test/data/msg_04.txt +#usr/lib/python2.7/email/test/data/msg_05.txt +#usr/lib/python2.7/email/test/data/msg_06.txt +#usr/lib/python2.7/email/test/data/msg_07.txt +#usr/lib/python2.7/email/test/data/msg_08.txt +#usr/lib/python2.7/email/test/data/msg_09.txt +#usr/lib/python2.7/email/test/data/msg_10.txt +#usr/lib/python2.7/email/test/data/msg_11.txt +#usr/lib/python2.7/email/test/data/msg_12.txt +#usr/lib/python2.7/email/test/data/msg_12a.txt +#usr/lib/python2.7/email/test/data/msg_13.txt +#usr/lib/python2.7/email/test/data/msg_14.txt +#usr/lib/python2.7/email/test/data/msg_15.txt +#usr/lib/python2.7/email/test/data/msg_16.txt +#usr/lib/python2.7/email/test/data/msg_17.txt +#usr/lib/python2.7/email/test/data/msg_18.txt +#usr/lib/python2.7/email/test/data/msg_19.txt +#usr/lib/python2.7/email/test/data/msg_20.txt +#usr/lib/python2.7/email/test/data/msg_21.txt +#usr/lib/python2.7/email/test/data/msg_22.txt +#usr/lib/python2.7/email/test/data/msg_23.txt +#usr/lib/python2.7/email/test/data/msg_24.txt +#usr/lib/python2.7/email/test/data/msg_25.txt +#usr/lib/python2.7/email/test/data/msg_26.txt +#usr/lib/python2.7/email/test/data/msg_27.txt +#usr/lib/python2.7/email/test/data/msg_28.txt +#usr/lib/python2.7/email/test/data/msg_29.txt +#usr/lib/python2.7/email/test/data/msg_30.txt +#usr/lib/python2.7/email/test/data/msg_31.txt +#usr/lib/python2.7/email/test/data/msg_32.txt +#usr/lib/python2.7/email/test/data/msg_33.txt +#usr/lib/python2.7/email/test/data/msg_34.txt +#usr/lib/python2.7/email/test/data/msg_35.txt +#usr/lib/python2.7/email/test/data/msg_36.txt +#usr/lib/python2.7/email/test/data/msg_37.txt +#usr/lib/python2.7/email/test/data/msg_38.txt +#usr/lib/python2.7/email/test/data/msg_39.txt +#usr/lib/python2.7/email/test/data/msg_40.txt +#usr/lib/python2.7/email/test/data/msg_41.txt +#usr/lib/python2.7/email/test/data/msg_42.txt +#usr/lib/python2.7/email/test/data/msg_43.txt +#usr/lib/python2.7/email/test/data/msg_44.txt +#usr/lib/python2.7/email/test/data/msg_45.txt +#usr/lib/python2.7/email/test/data/msg_46.txt +#usr/lib/python2.7/email/test/test_email.py +#usr/lib/python2.7/email/test/test_email.pyc +#usr/lib/python2.7/email/test/test_email.pyo +#usr/lib/python2.7/email/test/test_email_codecs.py +#usr/lib/python2.7/email/test/test_email_codecs.pyc +#usr/lib/python2.7/email/test/test_email_codecs.pyo +#usr/lib/python2.7/email/test/test_email_codecs_renamed.py +#usr/lib/python2.7/email/test/test_email_codecs_renamed.pyc +#usr/lib/python2.7/email/test/test_email_codecs_renamed.pyo +#usr/lib/python2.7/email/test/test_email_renamed.py +#usr/lib/python2.7/email/test/test_email_renamed.pyc +#usr/lib/python2.7/email/test/test_email_renamed.pyo +#usr/lib/python2.7/email/test/test_email_torture.py +#usr/lib/python2.7/email/test/test_email_torture.pyc +#usr/lib/python2.7/email/test/test_email_torture.pyo +#usr/lib/python2.7/email/utils.py +usr/lib/python2.7/email/utils.pyc +#usr/lib/python2.7/email/utils.pyo +#usr/lib/python2.7/encodings +#usr/lib/python2.7/encodings/__init__.py +usr/lib/python2.7/encodings/__init__.pyc +#usr/lib/python2.7/encodings/__init__.pyo +#usr/lib/python2.7/encodings/aliases.py +usr/lib/python2.7/encodings/aliases.pyc +#usr/lib/python2.7/encodings/aliases.pyo +#usr/lib/python2.7/encodings/ascii.py +usr/lib/python2.7/encodings/ascii.pyc +#usr/lib/python2.7/encodings/ascii.pyo +#usr/lib/python2.7/encodings/base64_codec.py +usr/lib/python2.7/encodings/base64_codec.pyc +#usr/lib/python2.7/encodings/base64_codec.pyo +#usr/lib/python2.7/encodings/big5.py +usr/lib/python2.7/encodings/big5.pyc +#usr/lib/python2.7/encodings/big5.pyo +#usr/lib/python2.7/encodings/big5hkscs.py +usr/lib/python2.7/encodings/big5hkscs.pyc +#usr/lib/python2.7/encodings/big5hkscs.pyo +#usr/lib/python2.7/encodings/bz2_codec.py +usr/lib/python2.7/encodings/bz2_codec.pyc +#usr/lib/python2.7/encodings/bz2_codec.pyo +#usr/lib/python2.7/encodings/charmap.py +usr/lib/python2.7/encodings/charmap.pyc +#usr/lib/python2.7/encodings/charmap.pyo +#usr/lib/python2.7/encodings/cp037.py +#usr/lib/python2.7/encodings/cp037.pyc +#usr/lib/python2.7/encodings/cp037.pyo +#usr/lib/python2.7/encodings/cp1006.py +#usr/lib/python2.7/encodings/cp1006.pyc +#usr/lib/python2.7/encodings/cp1006.pyo +#usr/lib/python2.7/encodings/cp1026.py +#usr/lib/python2.7/encodings/cp1026.pyc +#usr/lib/python2.7/encodings/cp1026.pyo +#usr/lib/python2.7/encodings/cp1140.py +#usr/lib/python2.7/encodings/cp1140.pyc +#usr/lib/python2.7/encodings/cp1140.pyo +#usr/lib/python2.7/encodings/cp1250.py +#usr/lib/python2.7/encodings/cp1250.pyc +#usr/lib/python2.7/encodings/cp1250.pyo +#usr/lib/python2.7/encodings/cp1251.py +#usr/lib/python2.7/encodings/cp1251.pyc +#usr/lib/python2.7/encodings/cp1251.pyo +#usr/lib/python2.7/encodings/cp1252.py +#usr/lib/python2.7/encodings/cp1252.pyc +#usr/lib/python2.7/encodings/cp1252.pyo +#usr/lib/python2.7/encodings/cp1253.py +#usr/lib/python2.7/encodings/cp1253.pyc +#usr/lib/python2.7/encodings/cp1253.pyo +#usr/lib/python2.7/encodings/cp1254.py +#usr/lib/python2.7/encodings/cp1254.pyc +#usr/lib/python2.7/encodings/cp1254.pyo +#usr/lib/python2.7/encodings/cp1255.py +#usr/lib/python2.7/encodings/cp1255.pyc +#usr/lib/python2.7/encodings/cp1255.pyo +#usr/lib/python2.7/encodings/cp1256.py +#usr/lib/python2.7/encodings/cp1256.pyc +#usr/lib/python2.7/encodings/cp1256.pyo +#usr/lib/python2.7/encodings/cp1257.py +#usr/lib/python2.7/encodings/cp1257.pyc +#usr/lib/python2.7/encodings/cp1257.pyo +#usr/lib/python2.7/encodings/cp1258.py +#usr/lib/python2.7/encodings/cp1258.pyc +#usr/lib/python2.7/encodings/cp1258.pyo +#usr/lib/python2.7/encodings/cp424.py +#usr/lib/python2.7/encodings/cp424.pyc +#usr/lib/python2.7/encodings/cp424.pyo +#usr/lib/python2.7/encodings/cp437.py +usr/lib/python2.7/encodings/cp437.pyc +#usr/lib/python2.7/encodings/cp437.pyo +#usr/lib/python2.7/encodings/cp500.py +#usr/lib/python2.7/encodings/cp500.pyc +#usr/lib/python2.7/encodings/cp500.pyo +#usr/lib/python2.7/encodings/cp720.py +#usr/lib/python2.7/encodings/cp720.pyc +#usr/lib/python2.7/encodings/cp720.pyo +#usr/lib/python2.7/encodings/cp737.py +#usr/lib/python2.7/encodings/cp737.pyc +#usr/lib/python2.7/encodings/cp737.pyo +#usr/lib/python2.7/encodings/cp775.py +#usr/lib/python2.7/encodings/cp775.pyc +#usr/lib/python2.7/encodings/cp775.pyo +#usr/lib/python2.7/encodings/cp850.py +usr/lib/python2.7/encodings/cp850.pyc +#usr/lib/python2.7/encodings/cp850.pyo +#usr/lib/python2.7/encodings/cp852.py +#usr/lib/python2.7/encodings/cp852.pyc +#usr/lib/python2.7/encodings/cp852.pyo +#usr/lib/python2.7/encodings/cp855.py +#usr/lib/python2.7/encodings/cp855.pyc +#usr/lib/python2.7/encodings/cp855.pyo +#usr/lib/python2.7/encodings/cp856.py +#usr/lib/python2.7/encodings/cp856.pyc +#usr/lib/python2.7/encodings/cp856.pyo +#usr/lib/python2.7/encodings/cp857.py +#usr/lib/python2.7/encodings/cp857.pyc +#usr/lib/python2.7/encodings/cp857.pyo +#usr/lib/python2.7/encodings/cp858.py +#usr/lib/python2.7/encodings/cp858.pyc +#usr/lib/python2.7/encodings/cp858.pyo +#usr/lib/python2.7/encodings/cp860.py +#usr/lib/python2.7/encodings/cp860.pyc +#usr/lib/python2.7/encodings/cp860.pyo +#usr/lib/python2.7/encodings/cp861.py +#usr/lib/python2.7/encodings/cp861.pyc +#usr/lib/python2.7/encodings/cp861.pyo +#usr/lib/python2.7/encodings/cp862.py +#usr/lib/python2.7/encodings/cp862.pyc +#usr/lib/python2.7/encodings/cp862.pyo +#usr/lib/python2.7/encodings/cp863.py +#usr/lib/python2.7/encodings/cp863.pyc +#usr/lib/python2.7/encodings/cp863.pyo +#usr/lib/python2.7/encodings/cp864.py +#usr/lib/python2.7/encodings/cp864.pyc +#usr/lib/python2.7/encodings/cp864.pyo +#usr/lib/python2.7/encodings/cp865.py +#usr/lib/python2.7/encodings/cp865.pyc +#usr/lib/python2.7/encodings/cp865.pyo +#usr/lib/python2.7/encodings/cp866.py +#usr/lib/python2.7/encodings/cp866.pyc +#usr/lib/python2.7/encodings/cp866.pyo +#usr/lib/python2.7/encodings/cp869.py +#usr/lib/python2.7/encodings/cp869.pyc +#usr/lib/python2.7/encodings/cp869.pyo +#usr/lib/python2.7/encodings/cp874.py +#usr/lib/python2.7/encodings/cp874.pyc +#usr/lib/python2.7/encodings/cp874.pyo +#usr/lib/python2.7/encodings/cp875.py +#usr/lib/python2.7/encodings/cp875.pyc +#usr/lib/python2.7/encodings/cp875.pyo +#usr/lib/python2.7/encodings/cp932.py +#usr/lib/python2.7/encodings/cp932.pyc +#usr/lib/python2.7/encodings/cp932.pyo +#usr/lib/python2.7/encodings/cp949.py +#usr/lib/python2.7/encodings/cp949.pyc +#usr/lib/python2.7/encodings/cp949.pyo +#usr/lib/python2.7/encodings/cp950.py +#usr/lib/python2.7/encodings/cp950.pyc +#usr/lib/python2.7/encodings/cp950.pyo +#usr/lib/python2.7/encodings/euc_jis_2004.py +#usr/lib/python2.7/encodings/euc_jis_2004.pyc +#usr/lib/python2.7/encodings/euc_jis_2004.pyo +#usr/lib/python2.7/encodings/euc_jisx0213.py +#usr/lib/python2.7/encodings/euc_jisx0213.pyc +#usr/lib/python2.7/encodings/euc_jisx0213.pyo +#usr/lib/python2.7/encodings/euc_jp.py +#usr/lib/python2.7/encodings/euc_jp.pyc +#usr/lib/python2.7/encodings/euc_jp.pyo +#usr/lib/python2.7/encodings/euc_kr.py +#usr/lib/python2.7/encodings/euc_kr.pyc +#usr/lib/python2.7/encodings/euc_kr.pyo +#usr/lib/python2.7/encodings/gb18030.py +#usr/lib/python2.7/encodings/gb18030.pyc +#usr/lib/python2.7/encodings/gb18030.pyo +#usr/lib/python2.7/encodings/gb2312.py +#usr/lib/python2.7/encodings/gb2312.pyc +#usr/lib/python2.7/encodings/gb2312.pyo +#usr/lib/python2.7/encodings/gbk.py +#usr/lib/python2.7/encodings/gbk.pyc +#usr/lib/python2.7/encodings/gbk.pyo +#usr/lib/python2.7/encodings/hex_codec.py +usr/lib/python2.7/encodings/hex_codec.pyc +#usr/lib/python2.7/encodings/hex_codec.pyo +#usr/lib/python2.7/encodings/hp_roman8.py +#usr/lib/python2.7/encodings/hp_roman8.pyc +#usr/lib/python2.7/encodings/hp_roman8.pyo +#usr/lib/python2.7/encodings/hz.py +#usr/lib/python2.7/encodings/hz.pyc +#usr/lib/python2.7/encodings/hz.pyo +#usr/lib/python2.7/encodings/idna.py +usr/lib/python2.7/encodings/idna.pyc +#usr/lib/python2.7/encodings/idna.pyo +#usr/lib/python2.7/encodings/iso2022_jp.py +#usr/lib/python2.7/encodings/iso2022_jp.pyc +#usr/lib/python2.7/encodings/iso2022_jp.pyo +#usr/lib/python2.7/encodings/iso2022_jp_1.py +#usr/lib/python2.7/encodings/iso2022_jp_1.pyc +#usr/lib/python2.7/encodings/iso2022_jp_1.pyo +#usr/lib/python2.7/encodings/iso2022_jp_2.py +#usr/lib/python2.7/encodings/iso2022_jp_2.pyc +#usr/lib/python2.7/encodings/iso2022_jp_2.pyo +#usr/lib/python2.7/encodings/iso2022_jp_2004.py +#usr/lib/python2.7/encodings/iso2022_jp_2004.pyc +#usr/lib/python2.7/encodings/iso2022_jp_2004.pyo +#usr/lib/python2.7/encodings/iso2022_jp_3.py +#usr/lib/python2.7/encodings/iso2022_jp_3.pyc +#usr/lib/python2.7/encodings/iso2022_jp_3.pyo +#usr/lib/python2.7/encodings/iso2022_jp_ext.py +#usr/lib/python2.7/encodings/iso2022_jp_ext.pyc +#usr/lib/python2.7/encodings/iso2022_jp_ext.pyo +#usr/lib/python2.7/encodings/iso2022_kr.py +#usr/lib/python2.7/encodings/iso2022_kr.pyc +#usr/lib/python2.7/encodings/iso2022_kr.pyo +#usr/lib/python2.7/encodings/iso8859_1.py +usr/lib/python2.7/encodings/iso8859_1.pyc +#usr/lib/python2.7/encodings/iso8859_1.pyo +#usr/lib/python2.7/encodings/iso8859_10.py +usr/lib/python2.7/encodings/iso8859_10.pyc +#usr/lib/python2.7/encodings/iso8859_10.pyo +#usr/lib/python2.7/encodings/iso8859_11.py +usr/lib/python2.7/encodings/iso8859_11.pyc +#usr/lib/python2.7/encodings/iso8859_11.pyo +#usr/lib/python2.7/encodings/iso8859_13.py +usr/lib/python2.7/encodings/iso8859_13.pyc +#usr/lib/python2.7/encodings/iso8859_13.pyo +#usr/lib/python2.7/encodings/iso8859_14.py +usr/lib/python2.7/encodings/iso8859_14.pyc +#usr/lib/python2.7/encodings/iso8859_14.pyo +#usr/lib/python2.7/encodings/iso8859_15.py +usr/lib/python2.7/encodings/iso8859_15.pyc +#usr/lib/python2.7/encodings/iso8859_15.pyo +#usr/lib/python2.7/encodings/iso8859_16.py +usr/lib/python2.7/encodings/iso8859_16.pyc +#usr/lib/python2.7/encodings/iso8859_16.pyo +#usr/lib/python2.7/encodings/iso8859_2.py +usr/lib/python2.7/encodings/iso8859_2.pyc +#usr/lib/python2.7/encodings/iso8859_2.pyo +#usr/lib/python2.7/encodings/iso8859_3.py +usr/lib/python2.7/encodings/iso8859_3.pyc +#usr/lib/python2.7/encodings/iso8859_3.pyo +#usr/lib/python2.7/encodings/iso8859_4.py +usr/lib/python2.7/encodings/iso8859_4.pyc +#usr/lib/python2.7/encodings/iso8859_4.pyo +#usr/lib/python2.7/encodings/iso8859_5.py +usr/lib/python2.7/encodings/iso8859_5.pyc +#usr/lib/python2.7/encodings/iso8859_5.pyo +#usr/lib/python2.7/encodings/iso8859_6.py +usr/lib/python2.7/encodings/iso8859_6.pyc +#usr/lib/python2.7/encodings/iso8859_6.pyo +#usr/lib/python2.7/encodings/iso8859_7.py +usr/lib/python2.7/encodings/iso8859_7.pyc +#usr/lib/python2.7/encodings/iso8859_7.pyo +#usr/lib/python2.7/encodings/iso8859_8.py +usr/lib/python2.7/encodings/iso8859_8.pyc +#usr/lib/python2.7/encodings/iso8859_8.pyo +#usr/lib/python2.7/encodings/iso8859_9.py +usr/lib/python2.7/encodings/iso8859_9.pyc +#usr/lib/python2.7/encodings/iso8859_9.pyo +#usr/lib/python2.7/encodings/johab.py +#usr/lib/python2.7/encodings/johab.pyc +#usr/lib/python2.7/encodings/johab.pyo +#usr/lib/python2.7/encodings/koi8_r.py +usr/lib/python2.7/encodings/koi8_r.pyc +#usr/lib/python2.7/encodings/koi8_r.pyo +#usr/lib/python2.7/encodings/koi8_u.py +#usr/lib/python2.7/encodings/koi8_u.pyc +#usr/lib/python2.7/encodings/koi8_u.pyo +#usr/lib/python2.7/encodings/latin_1.py +usr/lib/python2.7/encodings/latin_1.pyc +#usr/lib/python2.7/encodings/latin_1.pyo +#usr/lib/python2.7/encodings/mac_arabic.py +#usr/lib/python2.7/encodings/mac_arabic.pyc +#usr/lib/python2.7/encodings/mac_arabic.pyo +#usr/lib/python2.7/encodings/mac_centeuro.py +#usr/lib/python2.7/encodings/mac_centeuro.pyc +#usr/lib/python2.7/encodings/mac_centeuro.pyo +#usr/lib/python2.7/encodings/mac_croatian.py +#usr/lib/python2.7/encodings/mac_croatian.pyc +#usr/lib/python2.7/encodings/mac_croatian.pyo +#usr/lib/python2.7/encodings/mac_cyrillic.py +#usr/lib/python2.7/encodings/mac_cyrillic.pyc +#usr/lib/python2.7/encodings/mac_cyrillic.pyo +#usr/lib/python2.7/encodings/mac_farsi.py +#usr/lib/python2.7/encodings/mac_farsi.pyc +#usr/lib/python2.7/encodings/mac_farsi.pyo +#usr/lib/python2.7/encodings/mac_greek.py +#usr/lib/python2.7/encodings/mac_greek.pyc +#usr/lib/python2.7/encodings/mac_greek.pyo +#usr/lib/python2.7/encodings/mac_iceland.py +#usr/lib/python2.7/encodings/mac_iceland.pyc +#usr/lib/python2.7/encodings/mac_iceland.pyo +#usr/lib/python2.7/encodings/mac_latin2.py +#usr/lib/python2.7/encodings/mac_latin2.pyc +#usr/lib/python2.7/encodings/mac_latin2.pyo +#usr/lib/python2.7/encodings/mac_roman.py +#usr/lib/python2.7/encodings/mac_roman.pyc +#usr/lib/python2.7/encodings/mac_roman.pyo +#usr/lib/python2.7/encodings/mac_romanian.py +#usr/lib/python2.7/encodings/mac_romanian.pyc +#usr/lib/python2.7/encodings/mac_romanian.pyo +#usr/lib/python2.7/encodings/mac_turkish.py +#usr/lib/python2.7/encodings/mac_turkish.pyc +#usr/lib/python2.7/encodings/mac_turkish.pyo +#usr/lib/python2.7/encodings/mbcs.py +#usr/lib/python2.7/encodings/mbcs.pyc +#usr/lib/python2.7/encodings/mbcs.pyo +#usr/lib/python2.7/encodings/palmos.py +#usr/lib/python2.7/encodings/palmos.pyc +#usr/lib/python2.7/encodings/palmos.pyo +#usr/lib/python2.7/encodings/ptcp154.py +#usr/lib/python2.7/encodings/ptcp154.pyc +#usr/lib/python2.7/encodings/ptcp154.pyo +#usr/lib/python2.7/encodings/punycode.py +#usr/lib/python2.7/encodings/punycode.pyc +#usr/lib/python2.7/encodings/punycode.pyo +#usr/lib/python2.7/encodings/quopri_codec.py +#usr/lib/python2.7/encodings/quopri_codec.pyc +#usr/lib/python2.7/encodings/quopri_codec.pyo +#usr/lib/python2.7/encodings/raw_unicode_escape.py +usr/lib/python2.7/encodings/raw_unicode_escape.pyc +#usr/lib/python2.7/encodings/raw_unicode_escape.pyo +#usr/lib/python2.7/encodings/rot_13.py +#usr/lib/python2.7/encodings/rot_13.pyc +#usr/lib/python2.7/encodings/rot_13.pyo +#usr/lib/python2.7/encodings/shift_jis.py +#usr/lib/python2.7/encodings/shift_jis.pyc +#usr/lib/python2.7/encodings/shift_jis.pyo +#usr/lib/python2.7/encodings/shift_jis_2004.py +#usr/lib/python2.7/encodings/shift_jis_2004.pyc +#usr/lib/python2.7/encodings/shift_jis_2004.pyo +#usr/lib/python2.7/encodings/shift_jisx0213.py +#usr/lib/python2.7/encodings/shift_jisx0213.pyc +#usr/lib/python2.7/encodings/shift_jisx0213.pyo +#usr/lib/python2.7/encodings/string_escape.py +usr/lib/python2.7/encodings/string_escape.pyc +#usr/lib/python2.7/encodings/string_escape.pyo +#usr/lib/python2.7/encodings/tis_620.py +#usr/lib/python2.7/encodings/tis_620.pyc +#usr/lib/python2.7/encodings/tis_620.pyo +#usr/lib/python2.7/encodings/undefined.py +usr/lib/python2.7/encodings/undefined.pyc +#usr/lib/python2.7/encodings/undefined.pyo +#usr/lib/python2.7/encodings/unicode_escape.py +usr/lib/python2.7/encodings/unicode_escape.pyc +#usr/lib/python2.7/encodings/unicode_escape.pyo +#usr/lib/python2.7/encodings/unicode_internal.py +usr/lib/python2.7/encodings/unicode_internal.pyc +#usr/lib/python2.7/encodings/unicode_internal.pyo +#usr/lib/python2.7/encodings/utf_16.py +usr/lib/python2.7/encodings/utf_16.pyc +#usr/lib/python2.7/encodings/utf_16.pyo +#usr/lib/python2.7/encodings/utf_16_be.py +usr/lib/python2.7/encodings/utf_16_be.pyc +#usr/lib/python2.7/encodings/utf_16_be.pyo +#usr/lib/python2.7/encodings/utf_16_le.py +usr/lib/python2.7/encodings/utf_16_le.pyc +#usr/lib/python2.7/encodings/utf_16_le.pyo +#usr/lib/python2.7/encodings/utf_32.py +usr/lib/python2.7/encodings/utf_32.pyc +#usr/lib/python2.7/encodings/utf_32.pyo +#usr/lib/python2.7/encodings/utf_32_be.py +usr/lib/python2.7/encodings/utf_32_be.pyc +#usr/lib/python2.7/encodings/utf_32_be.pyo +#usr/lib/python2.7/encodings/utf_32_le.py +usr/lib/python2.7/encodings/utf_32_le.pyc +#usr/lib/python2.7/encodings/utf_32_le.pyo +#usr/lib/python2.7/encodings/utf_7.py +usr/lib/python2.7/encodings/utf_7.pyc +#usr/lib/python2.7/encodings/utf_7.pyo +#usr/lib/python2.7/encodings/utf_8.py +usr/lib/python2.7/encodings/utf_8.pyc +#usr/lib/python2.7/encodings/utf_8.pyo +#usr/lib/python2.7/encodings/utf_8_sig.py +usr/lib/python2.7/encodings/utf_8_sig.pyc +#usr/lib/python2.7/encodings/utf_8_sig.pyo +#usr/lib/python2.7/encodings/uu_codec.py +usr/lib/python2.7/encodings/uu_codec.pyc +#usr/lib/python2.7/encodings/uu_codec.pyo +#usr/lib/python2.7/encodings/zlib_codec.py +usr/lib/python2.7/encodings/zlib_codec.pyc +#usr/lib/python2.7/encodings/zlib_codec.pyo +#usr/lib/python2.7/filecmp.py +usr/lib/python2.7/filecmp.pyc +#usr/lib/python2.7/filecmp.pyo +#usr/lib/python2.7/fileinput.py +usr/lib/python2.7/fileinput.pyc +#usr/lib/python2.7/fileinput.pyo +#usr/lib/python2.7/fnmatch.py +usr/lib/python2.7/fnmatch.pyc +#usr/lib/python2.7/fnmatch.pyo +#usr/lib/python2.7/formatter.py +usr/lib/python2.7/formatter.pyc +#usr/lib/python2.7/formatter.pyo +#usr/lib/python2.7/fpformat.py +usr/lib/python2.7/fpformat.pyc +#usr/lib/python2.7/fpformat.pyo +#usr/lib/python2.7/fractions.py +usr/lib/python2.7/fractions.pyc +#usr/lib/python2.7/fractions.pyo +#usr/lib/python2.7/ftplib.py +usr/lib/python2.7/ftplib.pyc +#usr/lib/python2.7/ftplib.pyo +#usr/lib/python2.7/functools.py +usr/lib/python2.7/functools.pyc +#usr/lib/python2.7/functools.pyo +#usr/lib/python2.7/genericpath.py +usr/lib/python2.7/genericpath.pyc +#usr/lib/python2.7/genericpath.pyo +#usr/lib/python2.7/getopt.py +usr/lib/python2.7/getopt.pyc +#usr/lib/python2.7/getopt.pyo +#usr/lib/python2.7/getpass.py +usr/lib/python2.7/getpass.pyc +#usr/lib/python2.7/getpass.pyo +#usr/lib/python2.7/gettext.py +usr/lib/python2.7/gettext.pyc +#usr/lib/python2.7/gettext.pyo +#usr/lib/python2.7/glob.py +usr/lib/python2.7/glob.pyc +#usr/lib/python2.7/glob.pyo +#usr/lib/python2.7/gzip.py +usr/lib/python2.7/gzip.pyc +#usr/lib/python2.7/gzip.pyo +#usr/lib/python2.7/hashlib.py +usr/lib/python2.7/hashlib.pyc +#usr/lib/python2.7/hashlib.pyo +#usr/lib/python2.7/heapq.py +usr/lib/python2.7/heapq.pyc +#usr/lib/python2.7/heapq.pyo +#usr/lib/python2.7/hmac.py +usr/lib/python2.7/hmac.pyc +#usr/lib/python2.7/hmac.pyo +#usr/lib/python2.7/hotshot +#usr/lib/python2.7/hotshot/__init__.py +#usr/lib/python2.7/hotshot/__init__.pyc +#usr/lib/python2.7/hotshot/__init__.pyo +#usr/lib/python2.7/hotshot/log.py +#usr/lib/python2.7/hotshot/log.pyc +#usr/lib/python2.7/hotshot/log.pyo +#usr/lib/python2.7/hotshot/stats.py +#usr/lib/python2.7/hotshot/stats.pyc +#usr/lib/python2.7/hotshot/stats.pyo +#usr/lib/python2.7/hotshot/stones.py +#usr/lib/python2.7/hotshot/stones.pyc +#usr/lib/python2.7/hotshot/stones.pyo +#usr/lib/python2.7/htmlentitydefs.py +usr/lib/python2.7/htmlentitydefs.pyc +#usr/lib/python2.7/htmlentitydefs.pyo +#usr/lib/python2.7/htmllib.py +usr/lib/python2.7/htmllib.pyc +#usr/lib/python2.7/htmllib.pyo +#usr/lib/python2.7/httplib.py +usr/lib/python2.7/httplib.pyc +#usr/lib/python2.7/httplib.pyo +#usr/lib/python2.7/idlelib +#usr/lib/python2.7/idlelib/AutoComplete.py +#usr/lib/python2.7/idlelib/AutoComplete.pyc +#usr/lib/python2.7/idlelib/AutoComplete.pyo +#usr/lib/python2.7/idlelib/AutoCompleteWindow.py +#usr/lib/python2.7/idlelib/AutoCompleteWindow.pyc +#usr/lib/python2.7/idlelib/AutoCompleteWindow.pyo +#usr/lib/python2.7/idlelib/AutoExpand.py +#usr/lib/python2.7/idlelib/AutoExpand.pyc +#usr/lib/python2.7/idlelib/AutoExpand.pyo +#usr/lib/python2.7/idlelib/Bindings.py +#usr/lib/python2.7/idlelib/Bindings.pyc +#usr/lib/python2.7/idlelib/Bindings.pyo +#usr/lib/python2.7/idlelib/CREDITS.txt +#usr/lib/python2.7/idlelib/CallTipWindow.py +#usr/lib/python2.7/idlelib/CallTipWindow.pyc +#usr/lib/python2.7/idlelib/CallTipWindow.pyo +#usr/lib/python2.7/idlelib/CallTips.py +#usr/lib/python2.7/idlelib/CallTips.pyc +#usr/lib/python2.7/idlelib/CallTips.pyo +#usr/lib/python2.7/idlelib/ChangeLog +#usr/lib/python2.7/idlelib/ClassBrowser.py +#usr/lib/python2.7/idlelib/ClassBrowser.pyc +#usr/lib/python2.7/idlelib/ClassBrowser.pyo +#usr/lib/python2.7/idlelib/CodeContext.py +#usr/lib/python2.7/idlelib/CodeContext.pyc +#usr/lib/python2.7/idlelib/CodeContext.pyo +#usr/lib/python2.7/idlelib/ColorDelegator.py +#usr/lib/python2.7/idlelib/ColorDelegator.pyc +#usr/lib/python2.7/idlelib/ColorDelegator.pyo +#usr/lib/python2.7/idlelib/Debugger.py +#usr/lib/python2.7/idlelib/Debugger.pyc +#usr/lib/python2.7/idlelib/Debugger.pyo +#usr/lib/python2.7/idlelib/Delegator.py +#usr/lib/python2.7/idlelib/Delegator.pyc +#usr/lib/python2.7/idlelib/Delegator.pyo +#usr/lib/python2.7/idlelib/EditorWindow.py +#usr/lib/python2.7/idlelib/EditorWindow.pyc +#usr/lib/python2.7/idlelib/EditorWindow.pyo +#usr/lib/python2.7/idlelib/FileList.py +#usr/lib/python2.7/idlelib/FileList.pyc +#usr/lib/python2.7/idlelib/FileList.pyo +#usr/lib/python2.7/idlelib/FormatParagraph.py +#usr/lib/python2.7/idlelib/FormatParagraph.pyc +#usr/lib/python2.7/idlelib/FormatParagraph.pyo +#usr/lib/python2.7/idlelib/GrepDialog.py +#usr/lib/python2.7/idlelib/GrepDialog.pyc +#usr/lib/python2.7/idlelib/GrepDialog.pyo +#usr/lib/python2.7/idlelib/HISTORY.txt +#usr/lib/python2.7/idlelib/HyperParser.py +#usr/lib/python2.7/idlelib/HyperParser.pyc +#usr/lib/python2.7/idlelib/HyperParser.pyo +#usr/lib/python2.7/idlelib/IOBinding.py +#usr/lib/python2.7/idlelib/IOBinding.pyc +#usr/lib/python2.7/idlelib/IOBinding.pyo +#usr/lib/python2.7/idlelib/Icons +#usr/lib/python2.7/idlelib/Icons/folder.gif +#usr/lib/python2.7/idlelib/Icons/idle.icns +#usr/lib/python2.7/idlelib/Icons/minusnode.gif +#usr/lib/python2.7/idlelib/Icons/openfolder.gif +#usr/lib/python2.7/idlelib/Icons/plusnode.gif +#usr/lib/python2.7/idlelib/Icons/python.gif +#usr/lib/python2.7/idlelib/Icons/tk.gif +#usr/lib/python2.7/idlelib/IdleHistory.py +#usr/lib/python2.7/idlelib/IdleHistory.pyc +#usr/lib/python2.7/idlelib/IdleHistory.pyo +#usr/lib/python2.7/idlelib/MultiCall.py +#usr/lib/python2.7/idlelib/MultiCall.pyc +#usr/lib/python2.7/idlelib/MultiCall.pyo +#usr/lib/python2.7/idlelib/MultiStatusBar.py +#usr/lib/python2.7/idlelib/MultiStatusBar.pyc +#usr/lib/python2.7/idlelib/MultiStatusBar.pyo +#usr/lib/python2.7/idlelib/NEWS.txt +#usr/lib/python2.7/idlelib/ObjectBrowser.py +#usr/lib/python2.7/idlelib/ObjectBrowser.pyc +#usr/lib/python2.7/idlelib/ObjectBrowser.pyo +#usr/lib/python2.7/idlelib/OutputWindow.py +#usr/lib/python2.7/idlelib/OutputWindow.pyc +#usr/lib/python2.7/idlelib/OutputWindow.pyo +#usr/lib/python2.7/idlelib/ParenMatch.py +#usr/lib/python2.7/idlelib/ParenMatch.pyc +#usr/lib/python2.7/idlelib/ParenMatch.pyo +#usr/lib/python2.7/idlelib/PathBrowser.py +#usr/lib/python2.7/idlelib/PathBrowser.pyc +#usr/lib/python2.7/idlelib/PathBrowser.pyo +#usr/lib/python2.7/idlelib/Percolator.py +#usr/lib/python2.7/idlelib/Percolator.pyc +#usr/lib/python2.7/idlelib/Percolator.pyo +#usr/lib/python2.7/idlelib/PyParse.py +#usr/lib/python2.7/idlelib/PyParse.pyc +#usr/lib/python2.7/idlelib/PyParse.pyo +#usr/lib/python2.7/idlelib/PyShell.py +#usr/lib/python2.7/idlelib/PyShell.pyc +#usr/lib/python2.7/idlelib/PyShell.pyo +#usr/lib/python2.7/idlelib/README.txt +#usr/lib/python2.7/idlelib/RemoteDebugger.py +#usr/lib/python2.7/idlelib/RemoteDebugger.pyc +#usr/lib/python2.7/idlelib/RemoteDebugger.pyo +#usr/lib/python2.7/idlelib/RemoteObjectBrowser.py +#usr/lib/python2.7/idlelib/RemoteObjectBrowser.pyc +#usr/lib/python2.7/idlelib/RemoteObjectBrowser.pyo +#usr/lib/python2.7/idlelib/ReplaceDialog.py +#usr/lib/python2.7/idlelib/ReplaceDialog.pyc +#usr/lib/python2.7/idlelib/ReplaceDialog.pyo +#usr/lib/python2.7/idlelib/RstripExtension.py +#usr/lib/python2.7/idlelib/RstripExtension.pyc +#usr/lib/python2.7/idlelib/RstripExtension.pyo +#usr/lib/python2.7/idlelib/ScriptBinding.py +#usr/lib/python2.7/idlelib/ScriptBinding.pyc +#usr/lib/python2.7/idlelib/ScriptBinding.pyo +#usr/lib/python2.7/idlelib/ScrolledList.py +#usr/lib/python2.7/idlelib/ScrolledList.pyc +#usr/lib/python2.7/idlelib/ScrolledList.pyo +#usr/lib/python2.7/idlelib/SearchDialog.py +#usr/lib/python2.7/idlelib/SearchDialog.pyc +#usr/lib/python2.7/idlelib/SearchDialog.pyo +#usr/lib/python2.7/idlelib/SearchDialogBase.py +#usr/lib/python2.7/idlelib/SearchDialogBase.pyc +#usr/lib/python2.7/idlelib/SearchDialogBase.pyo +#usr/lib/python2.7/idlelib/SearchEngine.py +#usr/lib/python2.7/idlelib/SearchEngine.pyc +#usr/lib/python2.7/idlelib/SearchEngine.pyo +#usr/lib/python2.7/idlelib/StackViewer.py +#usr/lib/python2.7/idlelib/StackViewer.pyc +#usr/lib/python2.7/idlelib/StackViewer.pyo +#usr/lib/python2.7/idlelib/TODO.txt +#usr/lib/python2.7/idlelib/ToolTip.py +#usr/lib/python2.7/idlelib/ToolTip.pyc +#usr/lib/python2.7/idlelib/ToolTip.pyo +#usr/lib/python2.7/idlelib/TreeWidget.py +#usr/lib/python2.7/idlelib/TreeWidget.pyc +#usr/lib/python2.7/idlelib/TreeWidget.pyo +#usr/lib/python2.7/idlelib/UndoDelegator.py +#usr/lib/python2.7/idlelib/UndoDelegator.pyc +#usr/lib/python2.7/idlelib/UndoDelegator.pyo +#usr/lib/python2.7/idlelib/WidgetRedirector.py +#usr/lib/python2.7/idlelib/WidgetRedirector.pyc +#usr/lib/python2.7/idlelib/WidgetRedirector.pyo +#usr/lib/python2.7/idlelib/WindowList.py +#usr/lib/python2.7/idlelib/WindowList.pyc +#usr/lib/python2.7/idlelib/WindowList.pyo +#usr/lib/python2.7/idlelib/ZoomHeight.py +#usr/lib/python2.7/idlelib/ZoomHeight.pyc +#usr/lib/python2.7/idlelib/ZoomHeight.pyo +#usr/lib/python2.7/idlelib/__init__.py +#usr/lib/python2.7/idlelib/__init__.pyc +#usr/lib/python2.7/idlelib/__init__.pyo +#usr/lib/python2.7/idlelib/aboutDialog.py +#usr/lib/python2.7/idlelib/aboutDialog.pyc +#usr/lib/python2.7/idlelib/aboutDialog.pyo +#usr/lib/python2.7/idlelib/config-extensions.def +#usr/lib/python2.7/idlelib/config-highlight.def +#usr/lib/python2.7/idlelib/config-keys.def +#usr/lib/python2.7/idlelib/config-main.def +#usr/lib/python2.7/idlelib/configDialog.py +#usr/lib/python2.7/idlelib/configDialog.pyc +#usr/lib/python2.7/idlelib/configDialog.pyo +#usr/lib/python2.7/idlelib/configHandler.py +#usr/lib/python2.7/idlelib/configHandler.pyc +#usr/lib/python2.7/idlelib/configHandler.pyo +#usr/lib/python2.7/idlelib/configHelpSourceEdit.py +#usr/lib/python2.7/idlelib/configHelpSourceEdit.pyc +#usr/lib/python2.7/idlelib/configHelpSourceEdit.pyo +#usr/lib/python2.7/idlelib/configSectionNameDialog.py +#usr/lib/python2.7/idlelib/configSectionNameDialog.pyc +#usr/lib/python2.7/idlelib/configSectionNameDialog.pyo +#usr/lib/python2.7/idlelib/dynOptionMenuWidget.py +#usr/lib/python2.7/idlelib/dynOptionMenuWidget.pyc +#usr/lib/python2.7/idlelib/dynOptionMenuWidget.pyo +#usr/lib/python2.7/idlelib/extend.txt +#usr/lib/python2.7/idlelib/help.txt +#usr/lib/python2.7/idlelib/idle.bat +#usr/lib/python2.7/idlelib/idle.py +#usr/lib/python2.7/idlelib/idle.pyc +#usr/lib/python2.7/idlelib/idle.pyo +#usr/lib/python2.7/idlelib/idle.pyw +#usr/lib/python2.7/idlelib/idlever.py +#usr/lib/python2.7/idlelib/idlever.pyc +#usr/lib/python2.7/idlelib/idlever.pyo +#usr/lib/python2.7/idlelib/keybindingDialog.py +#usr/lib/python2.7/idlelib/keybindingDialog.pyc +#usr/lib/python2.7/idlelib/keybindingDialog.pyo +#usr/lib/python2.7/idlelib/macosxSupport.py +#usr/lib/python2.7/idlelib/macosxSupport.pyc +#usr/lib/python2.7/idlelib/macosxSupport.pyo +#usr/lib/python2.7/idlelib/rpc.py +#usr/lib/python2.7/idlelib/rpc.pyc +#usr/lib/python2.7/idlelib/rpc.pyo +#usr/lib/python2.7/idlelib/run.py +#usr/lib/python2.7/idlelib/run.pyc +#usr/lib/python2.7/idlelib/run.pyo +#usr/lib/python2.7/idlelib/tabbedpages.py +#usr/lib/python2.7/idlelib/tabbedpages.pyc +#usr/lib/python2.7/idlelib/tabbedpages.pyo +#usr/lib/python2.7/idlelib/testcode.py +#usr/lib/python2.7/idlelib/testcode.pyc +#usr/lib/python2.7/idlelib/testcode.pyo +#usr/lib/python2.7/idlelib/textView.py +#usr/lib/python2.7/idlelib/textView.pyc +#usr/lib/python2.7/idlelib/textView.pyo +#usr/lib/python2.7/ihooks.py +usr/lib/python2.7/ihooks.pyc +#usr/lib/python2.7/ihooks.pyo +#usr/lib/python2.7/imaplib.py +usr/lib/python2.7/imaplib.pyc +#usr/lib/python2.7/imaplib.pyo +#usr/lib/python2.7/imghdr.py +usr/lib/python2.7/imghdr.pyc +#usr/lib/python2.7/imghdr.pyo +#usr/lib/python2.7/importlib +#usr/lib/python2.7/importlib/__init__.py +usr/lib/python2.7/importlib/__init__.pyc +#usr/lib/python2.7/importlib/__init__.pyo +#usr/lib/python2.7/imputil.py +usr/lib/python2.7/imputil.pyc +#usr/lib/python2.7/imputil.pyo +#usr/lib/python2.7/inspect.py +usr/lib/python2.7/inspect.pyc +#usr/lib/python2.7/inspect.pyo +#usr/lib/python2.7/io.py +usr/lib/python2.7/io.pyc +#usr/lib/python2.7/io.pyo +#usr/lib/python2.7/json +#usr/lib/python2.7/json/__init__.py +usr/lib/python2.7/json/__init__.pyc +#usr/lib/python2.7/json/__init__.pyo +#usr/lib/python2.7/json/decoder.py +usr/lib/python2.7/json/decoder.pyc +#usr/lib/python2.7/json/decoder.pyo +#usr/lib/python2.7/json/encoder.py +usr/lib/python2.7/json/encoder.pyc +#usr/lib/python2.7/json/encoder.pyo +#usr/lib/python2.7/json/scanner.py +usr/lib/python2.7/json/scanner.pyc +#usr/lib/python2.7/json/scanner.pyo +#usr/lib/python2.7/json/tests +#usr/lib/python2.7/json/tests/__init__.py +#usr/lib/python2.7/json/tests/__init__.pyc +#usr/lib/python2.7/json/tests/__init__.pyo +#usr/lib/python2.7/json/tests/test_check_circular.py +#usr/lib/python2.7/json/tests/test_check_circular.pyc +#usr/lib/python2.7/json/tests/test_check_circular.pyo +#usr/lib/python2.7/json/tests/test_decode.py +#usr/lib/python2.7/json/tests/test_decode.pyc +#usr/lib/python2.7/json/tests/test_decode.pyo +#usr/lib/python2.7/json/tests/test_default.py +#usr/lib/python2.7/json/tests/test_default.pyc +#usr/lib/python2.7/json/tests/test_default.pyo +#usr/lib/python2.7/json/tests/test_dump.py +#usr/lib/python2.7/json/tests/test_dump.pyc +#usr/lib/python2.7/json/tests/test_dump.pyo +#usr/lib/python2.7/json/tests/test_encode_basestring_ascii.py +#usr/lib/python2.7/json/tests/test_encode_basestring_ascii.pyc +#usr/lib/python2.7/json/tests/test_encode_basestring_ascii.pyo +#usr/lib/python2.7/json/tests/test_fail.py +#usr/lib/python2.7/json/tests/test_fail.pyc +#usr/lib/python2.7/json/tests/test_fail.pyo +#usr/lib/python2.7/json/tests/test_float.py +#usr/lib/python2.7/json/tests/test_float.pyc +#usr/lib/python2.7/json/tests/test_float.pyo +#usr/lib/python2.7/json/tests/test_indent.py +#usr/lib/python2.7/json/tests/test_indent.pyc +#usr/lib/python2.7/json/tests/test_indent.pyo +#usr/lib/python2.7/json/tests/test_pass1.py +#usr/lib/python2.7/json/tests/test_pass1.pyc +#usr/lib/python2.7/json/tests/test_pass1.pyo +#usr/lib/python2.7/json/tests/test_pass2.py +#usr/lib/python2.7/json/tests/test_pass2.pyc +#usr/lib/python2.7/json/tests/test_pass2.pyo +#usr/lib/python2.7/json/tests/test_pass3.py +#usr/lib/python2.7/json/tests/test_pass3.pyc +#usr/lib/python2.7/json/tests/test_pass3.pyo +#usr/lib/python2.7/json/tests/test_recursion.py +#usr/lib/python2.7/json/tests/test_recursion.pyc +#usr/lib/python2.7/json/tests/test_recursion.pyo +#usr/lib/python2.7/json/tests/test_scanstring.py +#usr/lib/python2.7/json/tests/test_scanstring.pyc +#usr/lib/python2.7/json/tests/test_scanstring.pyo +#usr/lib/python2.7/json/tests/test_separators.py +#usr/lib/python2.7/json/tests/test_separators.pyc +#usr/lib/python2.7/json/tests/test_separators.pyo +#usr/lib/python2.7/json/tests/test_speedups.py +#usr/lib/python2.7/json/tests/test_speedups.pyc +#usr/lib/python2.7/json/tests/test_speedups.pyo +#usr/lib/python2.7/json/tests/test_unicode.py +#usr/lib/python2.7/json/tests/test_unicode.pyc +#usr/lib/python2.7/json/tests/test_unicode.pyo +#usr/lib/python2.7/json/tool.py +usr/lib/python2.7/json/tool.pyc +#usr/lib/python2.7/json/tool.pyo +#usr/lib/python2.7/keyword.py +usr/lib/python2.7/keyword.pyc +#usr/lib/python2.7/keyword.pyo +#usr/lib/python2.7/lib-dynload +usr/lib/python2.7/lib-dynload/Python-2.7-py2.7.egg-info +usr/lib/python2.7/lib-dynload/_bisect.so +usr/lib/python2.7/lib-dynload/_bsddb.so +usr/lib/python2.7/lib-dynload/_codecs_cn.so +usr/lib/python2.7/lib-dynload/_codecs_hk.so +usr/lib/python2.7/lib-dynload/_codecs_iso2022.so +usr/lib/python2.7/lib-dynload/_codecs_jp.so +usr/lib/python2.7/lib-dynload/_codecs_kr.so +usr/lib/python2.7/lib-dynload/_codecs_tw.so +usr/lib/python2.7/lib-dynload/_collections.so +usr/lib/python2.7/lib-dynload/_csv.so +usr/lib/python2.7/lib-dynload/_ctypes.so +#usr/lib/python2.7/lib-dynload/_ctypes_test.so +usr/lib/python2.7/lib-dynload/_curses.so +usr/lib/python2.7/lib-dynload/_curses_panel.so +usr/lib/python2.7/lib-dynload/_elementtree.so +usr/lib/python2.7/lib-dynload/_functools.so +usr/lib/python2.7/lib-dynload/_hashlib.so +usr/lib/python2.7/lib-dynload/_heapq.so +#usr/lib/python2.7/lib-dynload/_hotshot.so +usr/lib/python2.7/lib-dynload/_io.so +usr/lib/python2.7/lib-dynload/_json.so +usr/lib/python2.7/lib-dynload/_locale.so +usr/lib/python2.7/lib-dynload/_lsprof.so +usr/lib/python2.7/lib-dynload/_multibytecodec.so +usr/lib/python2.7/lib-dynload/_multiprocessing.so +usr/lib/python2.7/lib-dynload/_random.so +usr/lib/python2.7/lib-dynload/_socket.so +usr/lib/python2.7/lib-dynload/_ssl.so +usr/lib/python2.7/lib-dynload/_struct.so +usr/lib/python2.7/lib-dynload/_testcapi.so +usr/lib/python2.7/lib-dynload/_weakref.so +usr/lib/python2.7/lib-dynload/array.so +usr/lib/python2.7/lib-dynload/audioop.so +usr/lib/python2.7/lib-dynload/binascii.so +usr/lib/python2.7/lib-dynload/bz2.so +usr/lib/python2.7/lib-dynload/cPickle.so +usr/lib/python2.7/lib-dynload/cStringIO.so +usr/lib/python2.7/lib-dynload/cmath.so +usr/lib/python2.7/lib-dynload/crypt.so +usr/lib/python2.7/lib-dynload/datetime.so +usr/lib/python2.7/lib-dynload/dbm.so +usr/lib/python2.7/lib-dynload/dl.so +usr/lib/python2.7/lib-dynload/fcntl.so +usr/lib/python2.7/lib-dynload/future_builtins.so +usr/lib/python2.7/lib-dynload/gdbm.so +usr/lib/python2.7/lib-dynload/grp.so +usr/lib/python2.7/lib-dynload/imageop.so +usr/lib/python2.7/lib-dynload/itertools.so +#usr/lib/python2.7/lib-dynload/linuxaudiodev.so +usr/lib/python2.7/lib-dynload/math.so +usr/lib/python2.7/lib-dynload/mmap.so +usr/lib/python2.7/lib-dynload/nis.so +usr/lib/python2.7/lib-dynload/operator.so +#usr/lib/python2.7/lib-dynload/ossaudiodev.so +usr/lib/python2.7/lib-dynload/parser.so +usr/lib/python2.7/lib-dynload/pyexpat.so +usr/lib/python2.7/lib-dynload/readline.so +usr/lib/python2.7/lib-dynload/resource.so +usr/lib/python2.7/lib-dynload/select.so +usr/lib/python2.7/lib-dynload/spwd.so +usr/lib/python2.7/lib-dynload/strop.so +usr/lib/python2.7/lib-dynload/syslog.so +usr/lib/python2.7/lib-dynload/termios.so +usr/lib/python2.7/lib-dynload/time.so +usr/lib/python2.7/lib-dynload/unicodedata.so +usr/lib/python2.7/lib-dynload/zlib.so +#usr/lib/python2.7/lib-old +#usr/lib/python2.7/lib-tk +#usr/lib/python2.7/lib-tk/Canvas.py +#usr/lib/python2.7/lib-tk/Canvas.pyc +#usr/lib/python2.7/lib-tk/Canvas.pyo +#usr/lib/python2.7/lib-tk/Dialog.py +#usr/lib/python2.7/lib-tk/Dialog.pyc +#usr/lib/python2.7/lib-tk/Dialog.pyo +#usr/lib/python2.7/lib-tk/FileDialog.py +#usr/lib/python2.7/lib-tk/FileDialog.pyc +#usr/lib/python2.7/lib-tk/FileDialog.pyo +#usr/lib/python2.7/lib-tk/FixTk.py +#usr/lib/python2.7/lib-tk/FixTk.pyc +#usr/lib/python2.7/lib-tk/FixTk.pyo +#usr/lib/python2.7/lib-tk/ScrolledText.py +#usr/lib/python2.7/lib-tk/ScrolledText.pyc +#usr/lib/python2.7/lib-tk/ScrolledText.pyo +#usr/lib/python2.7/lib-tk/SimpleDialog.py +#usr/lib/python2.7/lib-tk/SimpleDialog.pyc +#usr/lib/python2.7/lib-tk/SimpleDialog.pyo +#usr/lib/python2.7/lib-tk/Tix.py +#usr/lib/python2.7/lib-tk/Tix.pyc +#usr/lib/python2.7/lib-tk/Tix.pyo +#usr/lib/python2.7/lib-tk/Tkconstants.py +#usr/lib/python2.7/lib-tk/Tkconstants.pyc +#usr/lib/python2.7/lib-tk/Tkconstants.pyo +#usr/lib/python2.7/lib-tk/Tkdnd.py +#usr/lib/python2.7/lib-tk/Tkdnd.pyc +#usr/lib/python2.7/lib-tk/Tkdnd.pyo +#usr/lib/python2.7/lib-tk/Tkinter.py +#usr/lib/python2.7/lib-tk/Tkinter.pyc +#usr/lib/python2.7/lib-tk/Tkinter.pyo +#usr/lib/python2.7/lib-tk/test +#usr/lib/python2.7/lib-tk/test/README +#usr/lib/python2.7/lib-tk/test/runtktests.py +#usr/lib/python2.7/lib-tk/test/runtktests.pyc +#usr/lib/python2.7/lib-tk/test/runtktests.pyo +#usr/lib/python2.7/lib-tk/test/test_tkinter +#usr/lib/python2.7/lib-tk/test/test_tkinter/__init__.py +#usr/lib/python2.7/lib-tk/test/test_tkinter/__init__.pyc +#usr/lib/python2.7/lib-tk/test/test_tkinter/__init__.pyo +#usr/lib/python2.7/lib-tk/test/test_tkinter/test_loadtk.py +#usr/lib/python2.7/lib-tk/test/test_tkinter/test_loadtk.pyc +#usr/lib/python2.7/lib-tk/test/test_tkinter/test_loadtk.pyo +#usr/lib/python2.7/lib-tk/test/test_tkinter/test_text.py +#usr/lib/python2.7/lib-tk/test/test_tkinter/test_text.pyc +#usr/lib/python2.7/lib-tk/test/test_tkinter/test_text.pyo +#usr/lib/python2.7/lib-tk/test/test_ttk +#usr/lib/python2.7/lib-tk/test/test_ttk/__init__.py +#usr/lib/python2.7/lib-tk/test/test_ttk/__init__.pyc +#usr/lib/python2.7/lib-tk/test/test_ttk/__init__.pyo +#usr/lib/python2.7/lib-tk/test/test_ttk/support.py +#usr/lib/python2.7/lib-tk/test/test_ttk/support.pyc +#usr/lib/python2.7/lib-tk/test/test_ttk/support.pyo +#usr/lib/python2.7/lib-tk/test/test_ttk/test_extensions.py +#usr/lib/python2.7/lib-tk/test/test_ttk/test_extensions.pyc +#usr/lib/python2.7/lib-tk/test/test_ttk/test_extensions.pyo +#usr/lib/python2.7/lib-tk/test/test_ttk/test_functions.py +#usr/lib/python2.7/lib-tk/test/test_ttk/test_functions.pyc +#usr/lib/python2.7/lib-tk/test/test_ttk/test_functions.pyo +#usr/lib/python2.7/lib-tk/test/test_ttk/test_style.py +#usr/lib/python2.7/lib-tk/test/test_ttk/test_style.pyc +#usr/lib/python2.7/lib-tk/test/test_ttk/test_style.pyo +#usr/lib/python2.7/lib-tk/test/test_ttk/test_widgets.py +#usr/lib/python2.7/lib-tk/test/test_ttk/test_widgets.pyc +#usr/lib/python2.7/lib-tk/test/test_ttk/test_widgets.pyo +#usr/lib/python2.7/lib-tk/tkColorChooser.py +#usr/lib/python2.7/lib-tk/tkColorChooser.pyc +#usr/lib/python2.7/lib-tk/tkColorChooser.pyo +#usr/lib/python2.7/lib-tk/tkCommonDialog.py +#usr/lib/python2.7/lib-tk/tkCommonDialog.pyc +#usr/lib/python2.7/lib-tk/tkCommonDialog.pyo +#usr/lib/python2.7/lib-tk/tkFileDialog.py +#usr/lib/python2.7/lib-tk/tkFileDialog.pyc +#usr/lib/python2.7/lib-tk/tkFileDialog.pyo +#usr/lib/python2.7/lib-tk/tkFont.py +#usr/lib/python2.7/lib-tk/tkFont.pyc +#usr/lib/python2.7/lib-tk/tkFont.pyo +#usr/lib/python2.7/lib-tk/tkMessageBox.py +#usr/lib/python2.7/lib-tk/tkMessageBox.pyc +#usr/lib/python2.7/lib-tk/tkMessageBox.pyo +#usr/lib/python2.7/lib-tk/tkSimpleDialog.py +#usr/lib/python2.7/lib-tk/tkSimpleDialog.pyc +#usr/lib/python2.7/lib-tk/tkSimpleDialog.pyo +#usr/lib/python2.7/lib-tk/ttk.py +#usr/lib/python2.7/lib-tk/ttk.pyc +#usr/lib/python2.7/lib-tk/ttk.pyo +#usr/lib/python2.7/lib-tk/turtle.py +#usr/lib/python2.7/lib-tk/turtle.pyc +#usr/lib/python2.7/lib-tk/turtle.pyo +#usr/lib/python2.7/lib2to3 +#usr/lib/python2.7/lib2to3/Grammar.txt +#usr/lib/python2.7/lib2to3/Grammar2.7.0.final.0.pickle +#usr/lib/python2.7/lib2to3/PatternGrammar.txt +#usr/lib/python2.7/lib2to3/PatternGrammar2.7.0.final.0.pickle +#usr/lib/python2.7/lib2to3/__init__.py +#usr/lib/python2.7/lib2to3/__init__.pyc +#usr/lib/python2.7/lib2to3/__init__.pyo +#usr/lib/python2.7/lib2to3/fixer_base.py +#usr/lib/python2.7/lib2to3/fixer_base.pyc +#usr/lib/python2.7/lib2to3/fixer_base.pyo +#usr/lib/python2.7/lib2to3/fixer_util.py +#usr/lib/python2.7/lib2to3/fixer_util.pyc +#usr/lib/python2.7/lib2to3/fixer_util.pyo +#usr/lib/python2.7/lib2to3/fixes +#usr/lib/python2.7/lib2to3/fixes/__init__.py +#usr/lib/python2.7/lib2to3/fixes/__init__.pyc +#usr/lib/python2.7/lib2to3/fixes/__init__.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_apply.py +#usr/lib/python2.7/lib2to3/fixes/fix_apply.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_apply.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_basestring.py +#usr/lib/python2.7/lib2to3/fixes/fix_basestring.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_basestring.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_buffer.py +#usr/lib/python2.7/lib2to3/fixes/fix_buffer.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_buffer.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_callable.py +#usr/lib/python2.7/lib2to3/fixes/fix_callable.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_callable.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_dict.py +#usr/lib/python2.7/lib2to3/fixes/fix_dict.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_dict.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_except.py +#usr/lib/python2.7/lib2to3/fixes/fix_except.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_except.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_exec.py +#usr/lib/python2.7/lib2to3/fixes/fix_exec.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_exec.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_execfile.py +#usr/lib/python2.7/lib2to3/fixes/fix_execfile.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_execfile.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_exitfunc.py +#usr/lib/python2.7/lib2to3/fixes/fix_exitfunc.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_exitfunc.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_filter.py +#usr/lib/python2.7/lib2to3/fixes/fix_filter.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_filter.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_funcattrs.py +#usr/lib/python2.7/lib2to3/fixes/fix_funcattrs.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_funcattrs.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_future.py +#usr/lib/python2.7/lib2to3/fixes/fix_future.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_future.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_getcwdu.py +#usr/lib/python2.7/lib2to3/fixes/fix_getcwdu.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_getcwdu.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_has_key.py +#usr/lib/python2.7/lib2to3/fixes/fix_has_key.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_has_key.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_idioms.py +#usr/lib/python2.7/lib2to3/fixes/fix_idioms.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_idioms.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_import.py +#usr/lib/python2.7/lib2to3/fixes/fix_import.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_import.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_imports.py +#usr/lib/python2.7/lib2to3/fixes/fix_imports.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_imports.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_imports2.py +#usr/lib/python2.7/lib2to3/fixes/fix_imports2.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_imports2.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_input.py +#usr/lib/python2.7/lib2to3/fixes/fix_input.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_input.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_intern.py +#usr/lib/python2.7/lib2to3/fixes/fix_intern.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_intern.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_isinstance.py +#usr/lib/python2.7/lib2to3/fixes/fix_isinstance.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_isinstance.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_itertools.py +#usr/lib/python2.7/lib2to3/fixes/fix_itertools.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_itertools.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_itertools_imports.py +#usr/lib/python2.7/lib2to3/fixes/fix_itertools_imports.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_itertools_imports.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_long.py +#usr/lib/python2.7/lib2to3/fixes/fix_long.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_long.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_map.py +#usr/lib/python2.7/lib2to3/fixes/fix_map.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_map.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_metaclass.py +#usr/lib/python2.7/lib2to3/fixes/fix_metaclass.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_metaclass.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_methodattrs.py +#usr/lib/python2.7/lib2to3/fixes/fix_methodattrs.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_methodattrs.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_ne.py +#usr/lib/python2.7/lib2to3/fixes/fix_ne.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_ne.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_next.py +#usr/lib/python2.7/lib2to3/fixes/fix_next.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_next.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_nonzero.py +#usr/lib/python2.7/lib2to3/fixes/fix_nonzero.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_nonzero.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_numliterals.py +#usr/lib/python2.7/lib2to3/fixes/fix_numliterals.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_numliterals.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_operator.py +#usr/lib/python2.7/lib2to3/fixes/fix_operator.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_operator.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_paren.py +#usr/lib/python2.7/lib2to3/fixes/fix_paren.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_paren.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_print.py +#usr/lib/python2.7/lib2to3/fixes/fix_print.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_print.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_raise.py +#usr/lib/python2.7/lib2to3/fixes/fix_raise.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_raise.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_raw_input.py +#usr/lib/python2.7/lib2to3/fixes/fix_raw_input.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_raw_input.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_reduce.py +#usr/lib/python2.7/lib2to3/fixes/fix_reduce.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_reduce.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_renames.py +#usr/lib/python2.7/lib2to3/fixes/fix_renames.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_renames.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_repr.py +#usr/lib/python2.7/lib2to3/fixes/fix_repr.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_repr.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_set_literal.py +#usr/lib/python2.7/lib2to3/fixes/fix_set_literal.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_set_literal.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_standarderror.py +#usr/lib/python2.7/lib2to3/fixes/fix_standarderror.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_standarderror.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_sys_exc.py +#usr/lib/python2.7/lib2to3/fixes/fix_sys_exc.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_sys_exc.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_throw.py +#usr/lib/python2.7/lib2to3/fixes/fix_throw.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_throw.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_tuple_params.py +#usr/lib/python2.7/lib2to3/fixes/fix_tuple_params.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_tuple_params.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_types.py +#usr/lib/python2.7/lib2to3/fixes/fix_types.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_types.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_unicode.py +#usr/lib/python2.7/lib2to3/fixes/fix_unicode.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_unicode.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_urllib.py +#usr/lib/python2.7/lib2to3/fixes/fix_urllib.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_urllib.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_ws_comma.py +#usr/lib/python2.7/lib2to3/fixes/fix_ws_comma.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_ws_comma.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_xrange.py +#usr/lib/python2.7/lib2to3/fixes/fix_xrange.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_xrange.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_xreadlines.py +#usr/lib/python2.7/lib2to3/fixes/fix_xreadlines.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_xreadlines.pyo +#usr/lib/python2.7/lib2to3/fixes/fix_zip.py +#usr/lib/python2.7/lib2to3/fixes/fix_zip.pyc +#usr/lib/python2.7/lib2to3/fixes/fix_zip.pyo +#usr/lib/python2.7/lib2to3/main.py +#usr/lib/python2.7/lib2to3/main.pyc +#usr/lib/python2.7/lib2to3/main.pyo +#usr/lib/python2.7/lib2to3/patcomp.py +#usr/lib/python2.7/lib2to3/patcomp.pyc +#usr/lib/python2.7/lib2to3/patcomp.pyo +#usr/lib/python2.7/lib2to3/pgen2 +#usr/lib/python2.7/lib2to3/pgen2/__init__.py +#usr/lib/python2.7/lib2to3/pgen2/__init__.pyc +#usr/lib/python2.7/lib2to3/pgen2/__init__.pyo +#usr/lib/python2.7/lib2to3/pgen2/conv.py +#usr/lib/python2.7/lib2to3/pgen2/conv.pyc +#usr/lib/python2.7/lib2to3/pgen2/conv.pyo +#usr/lib/python2.7/lib2to3/pgen2/driver.py +#usr/lib/python2.7/lib2to3/pgen2/driver.pyc +#usr/lib/python2.7/lib2to3/pgen2/driver.pyo +#usr/lib/python2.7/lib2to3/pgen2/grammar.py +#usr/lib/python2.7/lib2to3/pgen2/grammar.pyc +#usr/lib/python2.7/lib2to3/pgen2/grammar.pyo +#usr/lib/python2.7/lib2to3/pgen2/literals.py +#usr/lib/python2.7/lib2to3/pgen2/literals.pyc +#usr/lib/python2.7/lib2to3/pgen2/literals.pyo +#usr/lib/python2.7/lib2to3/pgen2/parse.py +#usr/lib/python2.7/lib2to3/pgen2/parse.pyc +#usr/lib/python2.7/lib2to3/pgen2/parse.pyo +#usr/lib/python2.7/lib2to3/pgen2/pgen.py +#usr/lib/python2.7/lib2to3/pgen2/pgen.pyc +#usr/lib/python2.7/lib2to3/pgen2/pgen.pyo +#usr/lib/python2.7/lib2to3/pgen2/token.py +#usr/lib/python2.7/lib2to3/pgen2/token.pyc +#usr/lib/python2.7/lib2to3/pgen2/token.pyo +#usr/lib/python2.7/lib2to3/pgen2/tokenize.py +#usr/lib/python2.7/lib2to3/pgen2/tokenize.pyc +#usr/lib/python2.7/lib2to3/pgen2/tokenize.pyo +#usr/lib/python2.7/lib2to3/pygram.py +#usr/lib/python2.7/lib2to3/pygram.pyc +#usr/lib/python2.7/lib2to3/pygram.pyo +#usr/lib/python2.7/lib2to3/pytree.py +#usr/lib/python2.7/lib2to3/pytree.pyc +#usr/lib/python2.7/lib2to3/pytree.pyo +#usr/lib/python2.7/lib2to3/refactor.py +#usr/lib/python2.7/lib2to3/refactor.pyc +#usr/lib/python2.7/lib2to3/refactor.pyo +#usr/lib/python2.7/lib2to3/tests +#usr/lib/python2.7/lib2to3/tests/__init__.py +#usr/lib/python2.7/lib2to3/tests/__init__.pyc +#usr/lib/python2.7/lib2to3/tests/__init__.pyo +#usr/lib/python2.7/lib2to3/tests/data +#usr/lib/python2.7/lib2to3/tests/data/README +#usr/lib/python2.7/lib2to3/tests/data/bom.py +#usr/lib/python2.7/lib2to3/tests/data/crlf.py +#usr/lib/python2.7/lib2to3/tests/data/different_encoding.py +#usr/lib/python2.7/lib2to3/tests/data/fixers +#usr/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py +#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py +#usr/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py +#usr/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py +#usr/lib/python2.7/lib2to3/tests/data/infinite_recursion.py +#usr/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py +#usr/lib/python2.7/lib2to3/tests/data/py3_test_grammar.py +#usr/lib/python2.7/lib2to3/tests/pytree_idempotency.py +#usr/lib/python2.7/lib2to3/tests/pytree_idempotency.pyc +#usr/lib/python2.7/lib2to3/tests/pytree_idempotency.pyo +#usr/lib/python2.7/lib2to3/tests/support.py +#usr/lib/python2.7/lib2to3/tests/support.pyc +#usr/lib/python2.7/lib2to3/tests/support.pyo +#usr/lib/python2.7/lib2to3/tests/test_all_fixers.py +#usr/lib/python2.7/lib2to3/tests/test_all_fixers.pyc +#usr/lib/python2.7/lib2to3/tests/test_all_fixers.pyo +#usr/lib/python2.7/lib2to3/tests/test_fixers.py +#usr/lib/python2.7/lib2to3/tests/test_fixers.pyc +#usr/lib/python2.7/lib2to3/tests/test_fixers.pyo +#usr/lib/python2.7/lib2to3/tests/test_main.py +#usr/lib/python2.7/lib2to3/tests/test_main.pyc +#usr/lib/python2.7/lib2to3/tests/test_main.pyo +#usr/lib/python2.7/lib2to3/tests/test_parser.py +#usr/lib/python2.7/lib2to3/tests/test_parser.pyc +#usr/lib/python2.7/lib2to3/tests/test_parser.pyo +#usr/lib/python2.7/lib2to3/tests/test_pytree.py +#usr/lib/python2.7/lib2to3/tests/test_pytree.pyc +#usr/lib/python2.7/lib2to3/tests/test_pytree.pyo +#usr/lib/python2.7/lib2to3/tests/test_refactor.py +#usr/lib/python2.7/lib2to3/tests/test_refactor.pyc +#usr/lib/python2.7/lib2to3/tests/test_refactor.pyo +#usr/lib/python2.7/lib2to3/tests/test_util.py +#usr/lib/python2.7/lib2to3/tests/test_util.pyc +#usr/lib/python2.7/lib2to3/tests/test_util.pyo +#usr/lib/python2.7/linecache.py +usr/lib/python2.7/linecache.pyc +#usr/lib/python2.7/linecache.pyo +#usr/lib/python2.7/locale.py +usr/lib/python2.7/locale.pyc +#usr/lib/python2.7/locale.pyo +#usr/lib/python2.7/logging +#usr/lib/python2.7/logging/__init__.py +usr/lib/python2.7/logging/__init__.pyc +#usr/lib/python2.7/logging/__init__.pyo +#usr/lib/python2.7/logging/config.py +usr/lib/python2.7/logging/config.pyc +#usr/lib/python2.7/logging/config.pyo +#usr/lib/python2.7/logging/handlers.py +usr/lib/python2.7/logging/handlers.pyc +#usr/lib/python2.7/logging/handlers.pyo +#usr/lib/python2.7/macpath.py +#usr/lib/python2.7/macpath.pyc +#usr/lib/python2.7/macpath.pyo +#usr/lib/python2.7/macurl2path.py +#usr/lib/python2.7/macurl2path.pyc +#usr/lib/python2.7/macurl2path.pyo +#usr/lib/python2.7/mailbox.py +#usr/lib/python2.7/mailbox.pyc +#usr/lib/python2.7/mailbox.pyo +#usr/lib/python2.7/mailcap.py +#usr/lib/python2.7/mailcap.pyc +#usr/lib/python2.7/mailcap.pyo +#usr/lib/python2.7/markupbase.py +usr/lib/python2.7/markupbase.pyc +#usr/lib/python2.7/markupbase.pyo +#usr/lib/python2.7/md5.py +usr/lib/python2.7/md5.pyc +#usr/lib/python2.7/md5.pyo +#usr/lib/python2.7/mhlib.py +#usr/lib/python2.7/mhlib.pyc +#usr/lib/python2.7/mhlib.pyo +#usr/lib/python2.7/mimetools.py +usr/lib/python2.7/mimetools.pyc +#usr/lib/python2.7/mimetools.pyo +#usr/lib/python2.7/mimetypes.py +usr/lib/python2.7/mimetypes.pyc +#usr/lib/python2.7/mimetypes.pyo +#usr/lib/python2.7/mimify.py +usr/lib/python2.7/mimify.pyc +#usr/lib/python2.7/mimify.pyo +#usr/lib/python2.7/modulefinder.py +usr/lib/python2.7/modulefinder.pyc +#usr/lib/python2.7/modulefinder.pyo +#usr/lib/python2.7/multifile.py +usr/lib/python2.7/multifile.pyc +#usr/lib/python2.7/multifile.pyo +#usr/lib/python2.7/multiprocessing +#usr/lib/python2.7/multiprocessing/__init__.py +usr/lib/python2.7/multiprocessing/__init__.pyc +#usr/lib/python2.7/multiprocessing/__init__.pyo +#usr/lib/python2.7/multiprocessing/connection.py +usr/lib/python2.7/multiprocessing/connection.pyc +#usr/lib/python2.7/multiprocessing/connection.pyo +#usr/lib/python2.7/multiprocessing/dummy +#usr/lib/python2.7/multiprocessing/dummy/__init__.py +usr/lib/python2.7/multiprocessing/dummy/__init__.pyc +#usr/lib/python2.7/multiprocessing/dummy/__init__.pyo +#usr/lib/python2.7/multiprocessing/dummy/connection.py +usr/lib/python2.7/multiprocessing/dummy/connection.pyc +#usr/lib/python2.7/multiprocessing/dummy/connection.pyo +#usr/lib/python2.7/multiprocessing/forking.py +usr/lib/python2.7/multiprocessing/forking.pyc +#usr/lib/python2.7/multiprocessing/forking.pyo +#usr/lib/python2.7/multiprocessing/heap.py +usr/lib/python2.7/multiprocessing/heap.pyc +#usr/lib/python2.7/multiprocessing/heap.pyo +#usr/lib/python2.7/multiprocessing/managers.py +usr/lib/python2.7/multiprocessing/managers.pyc +#usr/lib/python2.7/multiprocessing/managers.pyo +#usr/lib/python2.7/multiprocessing/pool.py +usr/lib/python2.7/multiprocessing/pool.pyc +#usr/lib/python2.7/multiprocessing/pool.pyo +#usr/lib/python2.7/multiprocessing/process.py +usr/lib/python2.7/multiprocessing/process.pyc +#usr/lib/python2.7/multiprocessing/process.pyo +#usr/lib/python2.7/multiprocessing/queues.py +usr/lib/python2.7/multiprocessing/queues.pyc +#usr/lib/python2.7/multiprocessing/queues.pyo +#usr/lib/python2.7/multiprocessing/reduction.py +usr/lib/python2.7/multiprocessing/reduction.pyc +#usr/lib/python2.7/multiprocessing/reduction.pyo +#usr/lib/python2.7/multiprocessing/sharedctypes.py +usr/lib/python2.7/multiprocessing/sharedctypes.pyc +#usr/lib/python2.7/multiprocessing/sharedctypes.pyo +#usr/lib/python2.7/multiprocessing/synchronize.py +usr/lib/python2.7/multiprocessing/synchronize.pyc +#usr/lib/python2.7/multiprocessing/synchronize.pyo +#usr/lib/python2.7/multiprocessing/util.py +usr/lib/python2.7/multiprocessing/util.pyc +#usr/lib/python2.7/multiprocessing/util.pyo +#usr/lib/python2.7/mutex.py +usr/lib/python2.7/mutex.pyc +#usr/lib/python2.7/mutex.pyo +#usr/lib/python2.7/netrc.py +usr/lib/python2.7/netrc.pyc +#usr/lib/python2.7/netrc.pyo +#usr/lib/python2.7/new.py +usr/lib/python2.7/new.pyc +#usr/lib/python2.7/new.pyo +#usr/lib/python2.7/nntplib.py +usr/lib/python2.7/nntplib.pyc +#usr/lib/python2.7/nntplib.pyo +#usr/lib/python2.7/ntpath.py +#usr/lib/python2.7/ntpath.pyc +#usr/lib/python2.7/ntpath.pyo +#usr/lib/python2.7/nturl2path.py +#usr/lib/python2.7/nturl2path.pyc +#usr/lib/python2.7/nturl2path.pyo +#usr/lib/python2.7/numbers.py +usr/lib/python2.7/numbers.pyc +#usr/lib/python2.7/numbers.pyo +#usr/lib/python2.7/opcode.py +usr/lib/python2.7/opcode.pyc +#usr/lib/python2.7/opcode.pyo +#usr/lib/python2.7/optparse.py +usr/lib/python2.7/optparse.pyc +#usr/lib/python2.7/optparse.pyo +#usr/lib/python2.7/os.py +usr/lib/python2.7/os.pyc +#usr/lib/python2.7/os.pyo +#usr/lib/python2.7/os2emxpath.py +#usr/lib/python2.7/os2emxpath.pyc +#usr/lib/python2.7/os2emxpath.pyo +#usr/lib/python2.7/pdb.doc +#usr/lib/python2.7/pdb.py +usr/lib/python2.7/pdb.pyc +#usr/lib/python2.7/pdb.pyo +#usr/lib/python2.7/pickle.py +usr/lib/python2.7/pickle.pyc +#usr/lib/python2.7/pickle.pyo +#usr/lib/python2.7/pickletools.py +usr/lib/python2.7/pickletools.pyc +#usr/lib/python2.7/pickletools.pyo +#usr/lib/python2.7/pipes.py +usr/lib/python2.7/pipes.pyc +#usr/lib/python2.7/pipes.pyo +#usr/lib/python2.7/pkgutil.py +usr/lib/python2.7/pkgutil.pyc +#usr/lib/python2.7/pkgutil.pyo +#usr/lib/python2.7/plat-linux2 +#usr/lib/python2.7/plat-linux2/CDROM.py +usr/lib/python2.7/plat-linux2/CDROM.pyc +#usr/lib/python2.7/plat-linux2/CDROM.pyo +#usr/lib/python2.7/plat-linux2/DLFCN.py +usr/lib/python2.7/plat-linux2/DLFCN.pyc +#usr/lib/python2.7/plat-linux2/DLFCN.pyo +#usr/lib/python2.7/plat-linux2/IN.py +usr/lib/python2.7/plat-linux2/IN.pyc +#usr/lib/python2.7/plat-linux2/IN.pyo +#usr/lib/python2.7/plat-linux2/TYPES.py +usr/lib/python2.7/plat-linux2/TYPES.pyc +#usr/lib/python2.7/plat-linux2/TYPES.pyo +#usr/lib/python2.7/plat-linux2/regen +#usr/lib/python2.7/platform.py +usr/lib/python2.7/platform.pyc +#usr/lib/python2.7/platform.pyo +#usr/lib/python2.7/plistlib.py +usr/lib/python2.7/plistlib.pyc +#usr/lib/python2.7/plistlib.pyo +#usr/lib/python2.7/popen2.py +usr/lib/python2.7/popen2.pyc +#usr/lib/python2.7/popen2.pyo +#usr/lib/python2.7/poplib.py +usr/lib/python2.7/poplib.pyc +#usr/lib/python2.7/poplib.pyo +#usr/lib/python2.7/posixfile.py +usr/lib/python2.7/posixfile.pyc +#usr/lib/python2.7/posixfile.pyo +#usr/lib/python2.7/posixpath.py +usr/lib/python2.7/posixpath.pyc +#usr/lib/python2.7/posixpath.pyo +#usr/lib/python2.7/pprint.py +usr/lib/python2.7/pprint.pyc +#usr/lib/python2.7/pprint.pyo +#usr/lib/python2.7/profile.py +#usr/lib/python2.7/profile.pyc +#usr/lib/python2.7/profile.pyo +#usr/lib/python2.7/pstats.py +usr/lib/python2.7/pstats.pyc +#usr/lib/python2.7/pstats.pyo +#usr/lib/python2.7/pty.py +usr/lib/python2.7/pty.pyc +#usr/lib/python2.7/pty.pyo +#usr/lib/python2.7/py_compile.py +usr/lib/python2.7/py_compile.pyc +#usr/lib/python2.7/py_compile.pyo +#usr/lib/python2.7/pyclbr.py +usr/lib/python2.7/pyclbr.pyc +#usr/lib/python2.7/pyclbr.pyo +#usr/lib/python2.7/pydoc.py +usr/lib/python2.7/pydoc.pyc +#usr/lib/python2.7/pydoc.pyo +#usr/lib/python2.7/pydoc_data +#usr/lib/python2.7/pydoc_data/__init__.py +usr/lib/python2.7/pydoc_data/__init__.pyc +#usr/lib/python2.7/pydoc_data/__init__.pyo +#usr/lib/python2.7/pydoc_data/topics.py +usr/lib/python2.7/pydoc_data/topics.pyc +#usr/lib/python2.7/pydoc_data/topics.pyo +#usr/lib/python2.7/quopri.py +usr/lib/python2.7/quopri.pyc +#usr/lib/python2.7/quopri.pyo +#usr/lib/python2.7/random.py +usr/lib/python2.7/random.pyc +#usr/lib/python2.7/random.pyo +#usr/lib/python2.7/re.py +usr/lib/python2.7/re.pyc +#usr/lib/python2.7/re.pyo +#usr/lib/python2.7/repr.py +usr/lib/python2.7/repr.pyc +#usr/lib/python2.7/repr.pyo +#usr/lib/python2.7/rexec.py +usr/lib/python2.7/rexec.pyc +#usr/lib/python2.7/rexec.pyo +#usr/lib/python2.7/rfc822.py +usr/lib/python2.7/rfc822.pyc +#usr/lib/python2.7/rfc822.pyo +#usr/lib/python2.7/rlcompleter.py +usr/lib/python2.7/rlcompleter.pyc +#usr/lib/python2.7/rlcompleter.pyo +#usr/lib/python2.7/robotparser.py +usr/lib/python2.7/robotparser.pyc +#usr/lib/python2.7/robotparser.pyo +#usr/lib/python2.7/runpy.py +usr/lib/python2.7/runpy.pyc +#usr/lib/python2.7/runpy.pyo +#usr/lib/python2.7/sched.py +usr/lib/python2.7/sched.pyc +#usr/lib/python2.7/sched.pyo +#usr/lib/python2.7/sets.py +usr/lib/python2.7/sets.pyc +#usr/lib/python2.7/sets.pyo +#usr/lib/python2.7/sgmllib.py +usr/lib/python2.7/sgmllib.pyc +#usr/lib/python2.7/sgmllib.pyo +#usr/lib/python2.7/sha.py +usr/lib/python2.7/sha.pyc +#usr/lib/python2.7/sha.pyo +#usr/lib/python2.7/shelve.py +usr/lib/python2.7/shelve.pyc +#usr/lib/python2.7/shelve.pyo +#usr/lib/python2.7/shlex.py +usr/lib/python2.7/shlex.pyc +#usr/lib/python2.7/shlex.pyo +#usr/lib/python2.7/shutil.py +usr/lib/python2.7/shutil.pyc +#usr/lib/python2.7/shutil.pyo +#usr/lib/python2.7/site-packages +#usr/lib/python2.7/site-packages/README +#usr/lib/python2.7/site.py +usr/lib/python2.7/site.pyc +#usr/lib/python2.7/site.pyo +#usr/lib/python2.7/smtpd.py +#usr/lib/python2.7/smtpd.pyc +#usr/lib/python2.7/smtpd.pyo +#usr/lib/python2.7/smtplib.py +#usr/lib/python2.7/smtplib.pyc +#usr/lib/python2.7/smtplib.pyo +#usr/lib/python2.7/sndhdr.py +#usr/lib/python2.7/sndhdr.pyc +#usr/lib/python2.7/sndhdr.pyo +#usr/lib/python2.7/socket.py +usr/lib/python2.7/socket.pyc +#usr/lib/python2.7/socket.pyo +#usr/lib/python2.7/sqlite3 +#usr/lib/python2.7/sqlite3/__init__.py +usr/lib/python2.7/sqlite3/__init__.pyc +#usr/lib/python2.7/sqlite3/__init__.pyo +#usr/lib/python2.7/sqlite3/dbapi2.py +usr/lib/python2.7/sqlite3/dbapi2.pyc +#usr/lib/python2.7/sqlite3/dbapi2.pyo +#usr/lib/python2.7/sqlite3/dump.py +usr/lib/python2.7/sqlite3/dump.pyc +#usr/lib/python2.7/sqlite3/dump.pyo +#usr/lib/python2.7/sqlite3/test +#usr/lib/python2.7/sqlite3/test/__init__.py +#usr/lib/python2.7/sqlite3/test/__init__.pyc +#usr/lib/python2.7/sqlite3/test/__init__.pyo +#usr/lib/python2.7/sqlite3/test/dbapi.py +#usr/lib/python2.7/sqlite3/test/dbapi.pyc +#usr/lib/python2.7/sqlite3/test/dbapi.pyo +#usr/lib/python2.7/sqlite3/test/dump.py +#usr/lib/python2.7/sqlite3/test/dump.pyc +#usr/lib/python2.7/sqlite3/test/dump.pyo +#usr/lib/python2.7/sqlite3/test/factory.py +#usr/lib/python2.7/sqlite3/test/factory.pyc +#usr/lib/python2.7/sqlite3/test/factory.pyo +#usr/lib/python2.7/sqlite3/test/hooks.py +#usr/lib/python2.7/sqlite3/test/hooks.pyc +#usr/lib/python2.7/sqlite3/test/hooks.pyo +#usr/lib/python2.7/sqlite3/test/py25tests.py +#usr/lib/python2.7/sqlite3/test/py25tests.pyc +#usr/lib/python2.7/sqlite3/test/py25tests.pyo +#usr/lib/python2.7/sqlite3/test/regression.py +#usr/lib/python2.7/sqlite3/test/regression.pyc +#usr/lib/python2.7/sqlite3/test/regression.pyo +#usr/lib/python2.7/sqlite3/test/transactions.py +#usr/lib/python2.7/sqlite3/test/transactions.pyc +#usr/lib/python2.7/sqlite3/test/transactions.pyo +#usr/lib/python2.7/sqlite3/test/types.py +#usr/lib/python2.7/sqlite3/test/types.pyc +#usr/lib/python2.7/sqlite3/test/types.pyo +#usr/lib/python2.7/sqlite3/test/userfunctions.py +#usr/lib/python2.7/sqlite3/test/userfunctions.pyc +#usr/lib/python2.7/sqlite3/test/userfunctions.pyo +#usr/lib/python2.7/sre.py +usr/lib/python2.7/sre.pyc +#usr/lib/python2.7/sre.pyo +#usr/lib/python2.7/sre_compile.py +usr/lib/python2.7/sre_compile.pyc +#usr/lib/python2.7/sre_compile.pyo +#usr/lib/python2.7/sre_constants.py +usr/lib/python2.7/sre_constants.pyc +#usr/lib/python2.7/sre_constants.pyo +#usr/lib/python2.7/sre_parse.py +usr/lib/python2.7/sre_parse.pyc +#usr/lib/python2.7/sre_parse.pyo +#usr/lib/python2.7/ssl.py +usr/lib/python2.7/ssl.pyc +#usr/lib/python2.7/ssl.pyo +#usr/lib/python2.7/stat.py +usr/lib/python2.7/stat.pyc +#usr/lib/python2.7/stat.pyo +#usr/lib/python2.7/statvfs.py +usr/lib/python2.7/statvfs.pyc +#usr/lib/python2.7/statvfs.pyo +#usr/lib/python2.7/string.py +usr/lib/python2.7/string.pyc +#usr/lib/python2.7/string.pyo +#usr/lib/python2.7/stringold.py +usr/lib/python2.7/stringold.pyc +#usr/lib/python2.7/stringold.pyo +#usr/lib/python2.7/stringprep.py +usr/lib/python2.7/stringprep.pyc +#usr/lib/python2.7/stringprep.pyo +#usr/lib/python2.7/struct.py +usr/lib/python2.7/struct.pyc +#usr/lib/python2.7/struct.pyo +#usr/lib/python2.7/subprocess.py +usr/lib/python2.7/subprocess.pyc +#usr/lib/python2.7/subprocess.pyo +#usr/lib/python2.7/sunau.py +usr/lib/python2.7/sunau.pyc +#usr/lib/python2.7/sunau.pyo +#usr/lib/python2.7/sunaudio.py +#usr/lib/python2.7/sunaudio.pyc +#usr/lib/python2.7/sunaudio.pyo +#usr/lib/python2.7/symbol.py +usr/lib/python2.7/symbol.pyc +#usr/lib/python2.7/symbol.pyo +#usr/lib/python2.7/symtable.py +usr/lib/python2.7/symtable.pyc +#usr/lib/python2.7/symtable.pyo +#usr/lib/python2.7/sysconfig.py +usr/lib/python2.7/sysconfig.pyc +#usr/lib/python2.7/sysconfig.pyo +#usr/lib/python2.7/tabnanny.py +usr/lib/python2.7/tabnanny.pyc +#usr/lib/python2.7/tabnanny.pyo +#usr/lib/python2.7/tarfile.py +usr/lib/python2.7/tarfile.pyc +#usr/lib/python2.7/tarfile.pyo +#usr/lib/python2.7/telnetlib.py +usr/lib/python2.7/telnetlib.pyc +#usr/lib/python2.7/telnetlib.pyo +#usr/lib/python2.7/tempfile.py +usr/lib/python2.7/tempfile.pyc +#usr/lib/python2.7/tempfile.pyo +#usr/lib/python2.7/test +#usr/lib/python2.7/test/185test.db +#usr/lib/python2.7/test/Sine-1000Hz-300ms.aif +#usr/lib/python2.7/test/__init__.py +#usr/lib/python2.7/test/__init__.pyc +#usr/lib/python2.7/test/__init__.pyo +#usr/lib/python2.7/test/audiotest.au +#usr/lib/python2.7/test/autotest.py +#usr/lib/python2.7/test/autotest.pyc +#usr/lib/python2.7/test/autotest.pyo +#usr/lib/python2.7/test/bad_coding.py +#usr/lib/python2.7/test/bad_coding2.py +#usr/lib/python2.7/test/badcert.pem +#usr/lib/python2.7/test/badkey.pem +#usr/lib/python2.7/test/badsyntax_future3.py +#usr/lib/python2.7/test/badsyntax_future4.py +#usr/lib/python2.7/test/badsyntax_future5.py +#usr/lib/python2.7/test/badsyntax_future6.py +#usr/lib/python2.7/test/badsyntax_future7.py +#usr/lib/python2.7/test/badsyntax_future8.py +#usr/lib/python2.7/test/badsyntax_future9.py +#usr/lib/python2.7/test/badsyntax_nocaret.py +#usr/lib/python2.7/test/buffer_tests.py +#usr/lib/python2.7/test/buffer_tests.pyc +#usr/lib/python2.7/test/buffer_tests.pyo +#usr/lib/python2.7/test/cfgparser.1 +#usr/lib/python2.7/test/check_soundcard.vbs +#usr/lib/python2.7/test/cjkencodings_test.py +#usr/lib/python2.7/test/cjkencodings_test.pyc +#usr/lib/python2.7/test/cjkencodings_test.pyo +#usr/lib/python2.7/test/cmath_testcases.txt +#usr/lib/python2.7/test/curses_tests.py +#usr/lib/python2.7/test/curses_tests.pyc +#usr/lib/python2.7/test/curses_tests.pyo +#usr/lib/python2.7/test/data +#usr/lib/python2.7/test/decimaltestdata +#usr/lib/python2.7/test/decimaltestdata/abs.decTest +#usr/lib/python2.7/test/decimaltestdata/add.decTest +#usr/lib/python2.7/test/decimaltestdata/and.decTest +#usr/lib/python2.7/test/decimaltestdata/base.decTest +#usr/lib/python2.7/test/decimaltestdata/clamp.decTest +#usr/lib/python2.7/test/decimaltestdata/class.decTest +#usr/lib/python2.7/test/decimaltestdata/compare.decTest +#usr/lib/python2.7/test/decimaltestdata/comparetotal.decTest +#usr/lib/python2.7/test/decimaltestdata/comparetotmag.decTest +#usr/lib/python2.7/test/decimaltestdata/copy.decTest +#usr/lib/python2.7/test/decimaltestdata/copyabs.decTest +#usr/lib/python2.7/test/decimaltestdata/copynegate.decTest +#usr/lib/python2.7/test/decimaltestdata/copysign.decTest +#usr/lib/python2.7/test/decimaltestdata/ddAbs.decTest +#usr/lib/python2.7/test/decimaltestdata/ddAdd.decTest +#usr/lib/python2.7/test/decimaltestdata/ddAnd.decTest +#usr/lib/python2.7/test/decimaltestdata/ddBase.decTest +#usr/lib/python2.7/test/decimaltestdata/ddCanonical.decTest +#usr/lib/python2.7/test/decimaltestdata/ddClass.decTest +#usr/lib/python2.7/test/decimaltestdata/ddCompare.decTest +#usr/lib/python2.7/test/decimaltestdata/ddCompareSig.decTest +#usr/lib/python2.7/test/decimaltestdata/ddCompareTotal.decTest +#usr/lib/python2.7/test/decimaltestdata/ddCompareTotalMag.decTest +#usr/lib/python2.7/test/decimaltestdata/ddCopy.decTest +#usr/lib/python2.7/test/decimaltestdata/ddCopyAbs.decTest +#usr/lib/python2.7/test/decimaltestdata/ddCopyNegate.decTest +#usr/lib/python2.7/test/decimaltestdata/ddCopySign.decTest +#usr/lib/python2.7/test/decimaltestdata/ddDivide.decTest +#usr/lib/python2.7/test/decimaltestdata/ddDivideInt.decTest +#usr/lib/python2.7/test/decimaltestdata/ddEncode.decTest +#usr/lib/python2.7/test/decimaltestdata/ddFMA.decTest +#usr/lib/python2.7/test/decimaltestdata/ddInvert.decTest +#usr/lib/python2.7/test/decimaltestdata/ddLogB.decTest +#usr/lib/python2.7/test/decimaltestdata/ddMax.decTest +#usr/lib/python2.7/test/decimaltestdata/ddMaxMag.decTest +#usr/lib/python2.7/test/decimaltestdata/ddMin.decTest +#usr/lib/python2.7/test/decimaltestdata/ddMinMag.decTest +#usr/lib/python2.7/test/decimaltestdata/ddMinus.decTest +#usr/lib/python2.7/test/decimaltestdata/ddMultiply.decTest +#usr/lib/python2.7/test/decimaltestdata/ddNextMinus.decTest +#usr/lib/python2.7/test/decimaltestdata/ddNextPlus.decTest +#usr/lib/python2.7/test/decimaltestdata/ddNextToward.decTest +#usr/lib/python2.7/test/decimaltestdata/ddOr.decTest +#usr/lib/python2.7/test/decimaltestdata/ddPlus.decTest +#usr/lib/python2.7/test/decimaltestdata/ddQuantize.decTest +#usr/lib/python2.7/test/decimaltestdata/ddReduce.decTest +#usr/lib/python2.7/test/decimaltestdata/ddRemainder.decTest +#usr/lib/python2.7/test/decimaltestdata/ddRemainderNear.decTest +#usr/lib/python2.7/test/decimaltestdata/ddRotate.decTest +#usr/lib/python2.7/test/decimaltestdata/ddSameQuantum.decTest +#usr/lib/python2.7/test/decimaltestdata/ddScaleB.decTest +#usr/lib/python2.7/test/decimaltestdata/ddShift.decTest +#usr/lib/python2.7/test/decimaltestdata/ddSubtract.decTest +#usr/lib/python2.7/test/decimaltestdata/ddToIntegral.decTest +#usr/lib/python2.7/test/decimaltestdata/ddXor.decTest +#usr/lib/python2.7/test/decimaltestdata/decDouble.decTest +#usr/lib/python2.7/test/decimaltestdata/decQuad.decTest +#usr/lib/python2.7/test/decimaltestdata/decSingle.decTest +#usr/lib/python2.7/test/decimaltestdata/divide.decTest +#usr/lib/python2.7/test/decimaltestdata/divideint.decTest +#usr/lib/python2.7/test/decimaltestdata/dqAbs.decTest +#usr/lib/python2.7/test/decimaltestdata/dqAdd.decTest +#usr/lib/python2.7/test/decimaltestdata/dqAnd.decTest +#usr/lib/python2.7/test/decimaltestdata/dqBase.decTest +#usr/lib/python2.7/test/decimaltestdata/dqCanonical.decTest +#usr/lib/python2.7/test/decimaltestdata/dqClass.decTest +#usr/lib/python2.7/test/decimaltestdata/dqCompare.decTest +#usr/lib/python2.7/test/decimaltestdata/dqCompareSig.decTest +#usr/lib/python2.7/test/decimaltestdata/dqCompareTotal.decTest +#usr/lib/python2.7/test/decimaltestdata/dqCompareTotalMag.decTest +#usr/lib/python2.7/test/decimaltestdata/dqCopy.decTest +#usr/lib/python2.7/test/decimaltestdata/dqCopyAbs.decTest +#usr/lib/python2.7/test/decimaltestdata/dqCopyNegate.decTest +#usr/lib/python2.7/test/decimaltestdata/dqCopySign.decTest +#usr/lib/python2.7/test/decimaltestdata/dqDivide.decTest +#usr/lib/python2.7/test/decimaltestdata/dqDivideInt.decTest +#usr/lib/python2.7/test/decimaltestdata/dqEncode.decTest +#usr/lib/python2.7/test/decimaltestdata/dqFMA.decTest +#usr/lib/python2.7/test/decimaltestdata/dqInvert.decTest +#usr/lib/python2.7/test/decimaltestdata/dqLogB.decTest +#usr/lib/python2.7/test/decimaltestdata/dqMax.decTest +#usr/lib/python2.7/test/decimaltestdata/dqMaxMag.decTest +#usr/lib/python2.7/test/decimaltestdata/dqMin.decTest +#usr/lib/python2.7/test/decimaltestdata/dqMinMag.decTest +#usr/lib/python2.7/test/decimaltestdata/dqMinus.decTest +#usr/lib/python2.7/test/decimaltestdata/dqMultiply.decTest +#usr/lib/python2.7/test/decimaltestdata/dqNextMinus.decTest +#usr/lib/python2.7/test/decimaltestdata/dqNextPlus.decTest +#usr/lib/python2.7/test/decimaltestdata/dqNextToward.decTest +#usr/lib/python2.7/test/decimaltestdata/dqOr.decTest +#usr/lib/python2.7/test/decimaltestdata/dqPlus.decTest +#usr/lib/python2.7/test/decimaltestdata/dqQuantize.decTest +#usr/lib/python2.7/test/decimaltestdata/dqReduce.decTest +#usr/lib/python2.7/test/decimaltestdata/dqRemainder.decTest +#usr/lib/python2.7/test/decimaltestdata/dqRemainderNear.decTest +#usr/lib/python2.7/test/decimaltestdata/dqRotate.decTest +#usr/lib/python2.7/test/decimaltestdata/dqSameQuantum.decTest +#usr/lib/python2.7/test/decimaltestdata/dqScaleB.decTest +#usr/lib/python2.7/test/decimaltestdata/dqShift.decTest +#usr/lib/python2.7/test/decimaltestdata/dqSubtract.decTest +#usr/lib/python2.7/test/decimaltestdata/dqToIntegral.decTest +#usr/lib/python2.7/test/decimaltestdata/dqXor.decTest +#usr/lib/python2.7/test/decimaltestdata/dsBase.decTest +#usr/lib/python2.7/test/decimaltestdata/dsEncode.decTest +#usr/lib/python2.7/test/decimaltestdata/exp.decTest +#usr/lib/python2.7/test/decimaltestdata/extra.decTest +#usr/lib/python2.7/test/decimaltestdata/fma.decTest +#usr/lib/python2.7/test/decimaltestdata/inexact.decTest +#usr/lib/python2.7/test/decimaltestdata/invert.decTest +#usr/lib/python2.7/test/decimaltestdata/ln.decTest +#usr/lib/python2.7/test/decimaltestdata/log10.decTest +#usr/lib/python2.7/test/decimaltestdata/logb.decTest +#usr/lib/python2.7/test/decimaltestdata/max.decTest +#usr/lib/python2.7/test/decimaltestdata/maxmag.decTest +#usr/lib/python2.7/test/decimaltestdata/min.decTest +#usr/lib/python2.7/test/decimaltestdata/minmag.decTest +#usr/lib/python2.7/test/decimaltestdata/minus.decTest +#usr/lib/python2.7/test/decimaltestdata/multiply.decTest +#usr/lib/python2.7/test/decimaltestdata/nextminus.decTest +#usr/lib/python2.7/test/decimaltestdata/nextplus.decTest +#usr/lib/python2.7/test/decimaltestdata/nexttoward.decTest +#usr/lib/python2.7/test/decimaltestdata/or.decTest +#usr/lib/python2.7/test/decimaltestdata/plus.decTest +#usr/lib/python2.7/test/decimaltestdata/power.decTest +#usr/lib/python2.7/test/decimaltestdata/powersqrt.decTest +#usr/lib/python2.7/test/decimaltestdata/quantize.decTest +#usr/lib/python2.7/test/decimaltestdata/randomBound32.decTest +#usr/lib/python2.7/test/decimaltestdata/randoms.decTest +#usr/lib/python2.7/test/decimaltestdata/reduce.decTest +#usr/lib/python2.7/test/decimaltestdata/remainder.decTest +#usr/lib/python2.7/test/decimaltestdata/remainderNear.decTest +#usr/lib/python2.7/test/decimaltestdata/rescale.decTest +#usr/lib/python2.7/test/decimaltestdata/rotate.decTest +#usr/lib/python2.7/test/decimaltestdata/rounding.decTest +#usr/lib/python2.7/test/decimaltestdata/samequantum.decTest +#usr/lib/python2.7/test/decimaltestdata/scaleb.decTest +#usr/lib/python2.7/test/decimaltestdata/shift.decTest +#usr/lib/python2.7/test/decimaltestdata/squareroot.decTest +#usr/lib/python2.7/test/decimaltestdata/subtract.decTest +#usr/lib/python2.7/test/decimaltestdata/testall.decTest +#usr/lib/python2.7/test/decimaltestdata/tointegral.decTest +#usr/lib/python2.7/test/decimaltestdata/tointegralx.decTest +#usr/lib/python2.7/test/decimaltestdata/xor.decTest +#usr/lib/python2.7/test/doctest_aliases.py +#usr/lib/python2.7/test/doctest_aliases.pyc +#usr/lib/python2.7/test/doctest_aliases.pyo +#usr/lib/python2.7/test/double_const.py +#usr/lib/python2.7/test/double_const.pyc +#usr/lib/python2.7/test/double_const.pyo +#usr/lib/python2.7/test/empty.vbs +#usr/lib/python2.7/test/exception_hierarchy.txt +#usr/lib/python2.7/test/floating_points.txt +#usr/lib/python2.7/test/fork_wait.py +#usr/lib/python2.7/test/fork_wait.pyc +#usr/lib/python2.7/test/fork_wait.pyo +#usr/lib/python2.7/test/formatfloat_testcases.txt +#usr/lib/python2.7/test/gdb_sample.py +#usr/lib/python2.7/test/gdb_sample.pyc +#usr/lib/python2.7/test/gdb_sample.pyo +#usr/lib/python2.7/test/greyrgb.uue +#usr/lib/python2.7/test/https_svn_python_org_root.pem +#usr/lib/python2.7/test/ieee754.txt +#usr/lib/python2.7/test/infinite_reload.py +#usr/lib/python2.7/test/infinite_reload.pyc +#usr/lib/python2.7/test/infinite_reload.pyo +#usr/lib/python2.7/test/inspect_fodder.py +#usr/lib/python2.7/test/inspect_fodder.pyc +#usr/lib/python2.7/test/inspect_fodder.pyo +#usr/lib/python2.7/test/inspect_fodder2.py +#usr/lib/python2.7/test/inspect_fodder2.pyc +#usr/lib/python2.7/test/inspect_fodder2.pyo +#usr/lib/python2.7/test/keycert.pem +#usr/lib/python2.7/test/list_tests.py +#usr/lib/python2.7/test/list_tests.pyc +#usr/lib/python2.7/test/list_tests.pyo +#usr/lib/python2.7/test/lock_tests.py +#usr/lib/python2.7/test/lock_tests.pyc +#usr/lib/python2.7/test/lock_tests.pyo +#usr/lib/python2.7/test/mapping_tests.py +#usr/lib/python2.7/test/mapping_tests.pyc +#usr/lib/python2.7/test/mapping_tests.pyo +#usr/lib/python2.7/test/math_testcases.txt +#usr/lib/python2.7/test/nullcert.pem +#usr/lib/python2.7/test/outstanding_bugs.py +#usr/lib/python2.7/test/outstanding_bugs.pyc +#usr/lib/python2.7/test/outstanding_bugs.pyo +#usr/lib/python2.7/test/pickletester.py +#usr/lib/python2.7/test/pickletester.pyc +#usr/lib/python2.7/test/pickletester.pyo +#usr/lib/python2.7/test/profilee.py +#usr/lib/python2.7/test/profilee.pyc +#usr/lib/python2.7/test/profilee.pyo +#usr/lib/python2.7/test/pyclbr_input.py +#usr/lib/python2.7/test/pyclbr_input.pyc +#usr/lib/python2.7/test/pyclbr_input.pyo +#usr/lib/python2.7/test/pydoc_mod.py +#usr/lib/python2.7/test/pydoc_mod.pyc +#usr/lib/python2.7/test/pydoc_mod.pyo +#usr/lib/python2.7/test/pydocfodder.py +#usr/lib/python2.7/test/pydocfodder.pyc +#usr/lib/python2.7/test/pydocfodder.pyo +#usr/lib/python2.7/test/pystone.py +#usr/lib/python2.7/test/pystone.pyc +#usr/lib/python2.7/test/pystone.pyo +#usr/lib/python2.7/test/randv2_32.pck +#usr/lib/python2.7/test/randv2_64.pck +#usr/lib/python2.7/test/randv3.pck +#usr/lib/python2.7/test/re_tests.py +#usr/lib/python2.7/test/re_tests.pyc +#usr/lib/python2.7/test/re_tests.pyo +#usr/lib/python2.7/test/regex_tests.py +#usr/lib/python2.7/test/regex_tests.pyc +#usr/lib/python2.7/test/regex_tests.pyo +#usr/lib/python2.7/test/regrtest.py +#usr/lib/python2.7/test/regrtest.pyc +#usr/lib/python2.7/test/regrtest.pyo +#usr/lib/python2.7/test/relimport.py +#usr/lib/python2.7/test/relimport.pyc +#usr/lib/python2.7/test/relimport.pyo +#usr/lib/python2.7/test/reperf.py +#usr/lib/python2.7/test/reperf.pyc +#usr/lib/python2.7/test/reperf.pyo +#usr/lib/python2.7/test/sample_doctest.py +#usr/lib/python2.7/test/sample_doctest.pyc +#usr/lib/python2.7/test/sample_doctest.pyo +#usr/lib/python2.7/test/script_helper.py +#usr/lib/python2.7/test/script_helper.pyc +#usr/lib/python2.7/test/script_helper.pyo +#usr/lib/python2.7/test/seq_tests.py +#usr/lib/python2.7/test/seq_tests.pyc +#usr/lib/python2.7/test/seq_tests.pyo +#usr/lib/python2.7/test/sgml_input.html +#usr/lib/python2.7/test/sha256.pem +#usr/lib/python2.7/test/sortperf.py +#usr/lib/python2.7/test/sortperf.pyc +#usr/lib/python2.7/test/sortperf.pyo +#usr/lib/python2.7/test/ssl_cert.pem +#usr/lib/python2.7/test/ssl_key.pem +#usr/lib/python2.7/test/string_tests.py +#usr/lib/python2.7/test/string_tests.pyc +#usr/lib/python2.7/test/string_tests.pyo +#usr/lib/python2.7/test/svn_python_org_https_cert.pem +#usr/lib/python2.7/test/test_MimeWriter.py +#usr/lib/python2.7/test/test_MimeWriter.pyc +#usr/lib/python2.7/test/test_MimeWriter.pyo +#usr/lib/python2.7/test/test_SimpleHTTPServer.py +#usr/lib/python2.7/test/test_SimpleHTTPServer.pyc +#usr/lib/python2.7/test/test_SimpleHTTPServer.pyo +#usr/lib/python2.7/test/test_StringIO.py +#usr/lib/python2.7/test/test_StringIO.pyc +#usr/lib/python2.7/test/test_StringIO.pyo +#usr/lib/python2.7/test/test___all__.py +#usr/lib/python2.7/test/test___all__.pyc +#usr/lib/python2.7/test/test___all__.pyo +#usr/lib/python2.7/test/test___future__.py +#usr/lib/python2.7/test/test___future__.pyc +#usr/lib/python2.7/test/test___future__.pyo +#usr/lib/python2.7/test/test__locale.py +#usr/lib/python2.7/test/test__locale.pyc +#usr/lib/python2.7/test/test__locale.pyo +#usr/lib/python2.7/test/test_abc.py +#usr/lib/python2.7/test/test_abc.pyc +#usr/lib/python2.7/test/test_abc.pyo +#usr/lib/python2.7/test/test_abstract_numbers.py +#usr/lib/python2.7/test/test_abstract_numbers.pyc +#usr/lib/python2.7/test/test_abstract_numbers.pyo +#usr/lib/python2.7/test/test_aepack.py +#usr/lib/python2.7/test/test_aepack.pyc +#usr/lib/python2.7/test/test_aepack.pyo +#usr/lib/python2.7/test/test_aifc.py +#usr/lib/python2.7/test/test_aifc.pyc +#usr/lib/python2.7/test/test_aifc.pyo +#usr/lib/python2.7/test/test_al.py +#usr/lib/python2.7/test/test_al.pyc +#usr/lib/python2.7/test/test_al.pyo +#usr/lib/python2.7/test/test_anydbm.py +#usr/lib/python2.7/test/test_anydbm.pyc +#usr/lib/python2.7/test/test_anydbm.pyo +#usr/lib/python2.7/test/test_applesingle.py +#usr/lib/python2.7/test/test_applesingle.pyc +#usr/lib/python2.7/test/test_applesingle.pyo +#usr/lib/python2.7/test/test_argparse.py +#usr/lib/python2.7/test/test_argparse.pyc +#usr/lib/python2.7/test/test_argparse.pyo +#usr/lib/python2.7/test/test_array.py +#usr/lib/python2.7/test/test_array.pyc +#usr/lib/python2.7/test/test_array.pyo +#usr/lib/python2.7/test/test_ascii_formatd.py +#usr/lib/python2.7/test/test_ascii_formatd.pyc +#usr/lib/python2.7/test/test_ascii_formatd.pyo +#usr/lib/python2.7/test/test_ast.py +#usr/lib/python2.7/test/test_ast.pyc +#usr/lib/python2.7/test/test_ast.pyo +#usr/lib/python2.7/test/test_asynchat.py +#usr/lib/python2.7/test/test_asynchat.pyc +#usr/lib/python2.7/test/test_asynchat.pyo +#usr/lib/python2.7/test/test_asyncore.py +#usr/lib/python2.7/test/test_asyncore.pyc +#usr/lib/python2.7/test/test_asyncore.pyo +#usr/lib/python2.7/test/test_atexit.py +#usr/lib/python2.7/test/test_atexit.pyc +#usr/lib/python2.7/test/test_atexit.pyo +#usr/lib/python2.7/test/test_audioop.py +#usr/lib/python2.7/test/test_audioop.pyc +#usr/lib/python2.7/test/test_audioop.pyo +#usr/lib/python2.7/test/test_augassign.py +#usr/lib/python2.7/test/test_augassign.pyc +#usr/lib/python2.7/test/test_augassign.pyo +#usr/lib/python2.7/test/test_base64.py +#usr/lib/python2.7/test/test_base64.pyc +#usr/lib/python2.7/test/test_base64.pyo +#usr/lib/python2.7/test/test_bastion.py +#usr/lib/python2.7/test/test_bastion.pyc +#usr/lib/python2.7/test/test_bastion.pyo +#usr/lib/python2.7/test/test_bigaddrspace.py +#usr/lib/python2.7/test/test_bigaddrspace.pyc +#usr/lib/python2.7/test/test_bigaddrspace.pyo +#usr/lib/python2.7/test/test_bigmem.py +#usr/lib/python2.7/test/test_bigmem.pyc +#usr/lib/python2.7/test/test_bigmem.pyo +#usr/lib/python2.7/test/test_binascii.py +#usr/lib/python2.7/test/test_binascii.pyc +#usr/lib/python2.7/test/test_binascii.pyo +#usr/lib/python2.7/test/test_binhex.py +#usr/lib/python2.7/test/test_binhex.pyc +#usr/lib/python2.7/test/test_binhex.pyo +#usr/lib/python2.7/test/test_binop.py +#usr/lib/python2.7/test/test_binop.pyc +#usr/lib/python2.7/test/test_binop.pyo +#usr/lib/python2.7/test/test_bisect.py +#usr/lib/python2.7/test/test_bisect.pyc +#usr/lib/python2.7/test/test_bisect.pyo +#usr/lib/python2.7/test/test_bool.py +#usr/lib/python2.7/test/test_bool.pyc +#usr/lib/python2.7/test/test_bool.pyo +#usr/lib/python2.7/test/test_bsddb.py +#usr/lib/python2.7/test/test_bsddb.pyc +#usr/lib/python2.7/test/test_bsddb.pyo +#usr/lib/python2.7/test/test_bsddb185.py +#usr/lib/python2.7/test/test_bsddb185.pyc +#usr/lib/python2.7/test/test_bsddb185.pyo +#usr/lib/python2.7/test/test_bsddb3.py +#usr/lib/python2.7/test/test_bsddb3.pyc +#usr/lib/python2.7/test/test_bsddb3.pyo +#usr/lib/python2.7/test/test_buffer.py +#usr/lib/python2.7/test/test_buffer.pyc +#usr/lib/python2.7/test/test_buffer.pyo +#usr/lib/python2.7/test/test_bufio.py +#usr/lib/python2.7/test/test_bufio.pyc +#usr/lib/python2.7/test/test_bufio.pyo +#usr/lib/python2.7/test/test_builtin.py +#usr/lib/python2.7/test/test_builtin.pyc +#usr/lib/python2.7/test/test_builtin.pyo +#usr/lib/python2.7/test/test_bytes.py +#usr/lib/python2.7/test/test_bytes.pyc +#usr/lib/python2.7/test/test_bytes.pyo +#usr/lib/python2.7/test/test_bz2.py +#usr/lib/python2.7/test/test_bz2.pyc +#usr/lib/python2.7/test/test_bz2.pyo +#usr/lib/python2.7/test/test_calendar.py +#usr/lib/python2.7/test/test_calendar.pyc +#usr/lib/python2.7/test/test_calendar.pyo +#usr/lib/python2.7/test/test_call.py +#usr/lib/python2.7/test/test_call.pyc +#usr/lib/python2.7/test/test_call.pyo +#usr/lib/python2.7/test/test_capi.py +#usr/lib/python2.7/test/test_capi.pyc +#usr/lib/python2.7/test/test_capi.pyo +#usr/lib/python2.7/test/test_cd.py +#usr/lib/python2.7/test/test_cd.pyc +#usr/lib/python2.7/test/test_cd.pyo +#usr/lib/python2.7/test/test_cfgparser.py +#usr/lib/python2.7/test/test_cfgparser.pyc +#usr/lib/python2.7/test/test_cfgparser.pyo +#usr/lib/python2.7/test/test_cgi.py +#usr/lib/python2.7/test/test_cgi.pyc +#usr/lib/python2.7/test/test_cgi.pyo +#usr/lib/python2.7/test/test_charmapcodec.py +#usr/lib/python2.7/test/test_charmapcodec.pyc +#usr/lib/python2.7/test/test_charmapcodec.pyo +#usr/lib/python2.7/test/test_cl.py +#usr/lib/python2.7/test/test_cl.pyc +#usr/lib/python2.7/test/test_cl.pyo +#usr/lib/python2.7/test/test_class.py +#usr/lib/python2.7/test/test_class.pyc +#usr/lib/python2.7/test/test_class.pyo +#usr/lib/python2.7/test/test_cmath.py +#usr/lib/python2.7/test/test_cmath.pyc +#usr/lib/python2.7/test/test_cmath.pyo +#usr/lib/python2.7/test/test_cmd.py +#usr/lib/python2.7/test/test_cmd.pyc +#usr/lib/python2.7/test/test_cmd.pyo +#usr/lib/python2.7/test/test_cmd_line.py +#usr/lib/python2.7/test/test_cmd_line.pyc +#usr/lib/python2.7/test/test_cmd_line.pyo +#usr/lib/python2.7/test/test_cmd_line_script.py +#usr/lib/python2.7/test/test_cmd_line_script.pyc +#usr/lib/python2.7/test/test_cmd_line_script.pyo +#usr/lib/python2.7/test/test_code.py +#usr/lib/python2.7/test/test_code.pyc +#usr/lib/python2.7/test/test_code.pyo +#usr/lib/python2.7/test/test_codeccallbacks.py +#usr/lib/python2.7/test/test_codeccallbacks.pyc +#usr/lib/python2.7/test/test_codeccallbacks.pyo +#usr/lib/python2.7/test/test_codecencodings_cn.py +#usr/lib/python2.7/test/test_codecencodings_cn.pyc +#usr/lib/python2.7/test/test_codecencodings_cn.pyo +#usr/lib/python2.7/test/test_codecencodings_hk.py +#usr/lib/python2.7/test/test_codecencodings_hk.pyc +#usr/lib/python2.7/test/test_codecencodings_hk.pyo +#usr/lib/python2.7/test/test_codecencodings_jp.py +#usr/lib/python2.7/test/test_codecencodings_jp.pyc +#usr/lib/python2.7/test/test_codecencodings_jp.pyo +#usr/lib/python2.7/test/test_codecencodings_kr.py +#usr/lib/python2.7/test/test_codecencodings_kr.pyc +#usr/lib/python2.7/test/test_codecencodings_kr.pyo +#usr/lib/python2.7/test/test_codecencodings_tw.py +#usr/lib/python2.7/test/test_codecencodings_tw.pyc +#usr/lib/python2.7/test/test_codecencodings_tw.pyo +#usr/lib/python2.7/test/test_codecmaps_cn.py +#usr/lib/python2.7/test/test_codecmaps_cn.pyc +#usr/lib/python2.7/test/test_codecmaps_cn.pyo +#usr/lib/python2.7/test/test_codecmaps_hk.py +#usr/lib/python2.7/test/test_codecmaps_hk.pyc +#usr/lib/python2.7/test/test_codecmaps_hk.pyo +#usr/lib/python2.7/test/test_codecmaps_jp.py +#usr/lib/python2.7/test/test_codecmaps_jp.pyc +#usr/lib/python2.7/test/test_codecmaps_jp.pyo +#usr/lib/python2.7/test/test_codecmaps_kr.py +#usr/lib/python2.7/test/test_codecmaps_kr.pyc +#usr/lib/python2.7/test/test_codecmaps_kr.pyo +#usr/lib/python2.7/test/test_codecmaps_tw.py +#usr/lib/python2.7/test/test_codecmaps_tw.pyc +#usr/lib/python2.7/test/test_codecmaps_tw.pyo +#usr/lib/python2.7/test/test_codecs.py +#usr/lib/python2.7/test/test_codecs.pyc +#usr/lib/python2.7/test/test_codecs.pyo +#usr/lib/python2.7/test/test_codeop.py +#usr/lib/python2.7/test/test_codeop.pyc +#usr/lib/python2.7/test/test_codeop.pyo +#usr/lib/python2.7/test/test_coding.py +#usr/lib/python2.7/test/test_coding.pyc +#usr/lib/python2.7/test/test_coding.pyo +#usr/lib/python2.7/test/test_coercion.py +#usr/lib/python2.7/test/test_coercion.pyc +#usr/lib/python2.7/test/test_coercion.pyo +#usr/lib/python2.7/test/test_collections.py +#usr/lib/python2.7/test/test_collections.pyc +#usr/lib/python2.7/test/test_collections.pyo +#usr/lib/python2.7/test/test_colorsys.py +#usr/lib/python2.7/test/test_colorsys.pyc +#usr/lib/python2.7/test/test_colorsys.pyo +#usr/lib/python2.7/test/test_commands.py +#usr/lib/python2.7/test/test_commands.pyc +#usr/lib/python2.7/test/test_commands.pyo +#usr/lib/python2.7/test/test_compare.py +#usr/lib/python2.7/test/test_compare.pyc +#usr/lib/python2.7/test/test_compare.pyo +#usr/lib/python2.7/test/test_compile.py +#usr/lib/python2.7/test/test_compile.pyc +#usr/lib/python2.7/test/test_compile.pyo +#usr/lib/python2.7/test/test_compileall.py +#usr/lib/python2.7/test/test_compileall.pyc +#usr/lib/python2.7/test/test_compileall.pyo +#usr/lib/python2.7/test/test_compiler.py +#usr/lib/python2.7/test/test_compiler.pyc +#usr/lib/python2.7/test/test_compiler.pyo +#usr/lib/python2.7/test/test_complex.py +#usr/lib/python2.7/test/test_complex.pyc +#usr/lib/python2.7/test/test_complex.pyo +#usr/lib/python2.7/test/test_complex_args.py +#usr/lib/python2.7/test/test_complex_args.pyc +#usr/lib/python2.7/test/test_complex_args.pyo +#usr/lib/python2.7/test/test_contains.py +#usr/lib/python2.7/test/test_contains.pyc +#usr/lib/python2.7/test/test_contains.pyo +#usr/lib/python2.7/test/test_contextlib.py +#usr/lib/python2.7/test/test_contextlib.pyc +#usr/lib/python2.7/test/test_contextlib.pyo +#usr/lib/python2.7/test/test_cookie.py +#usr/lib/python2.7/test/test_cookie.pyc +#usr/lib/python2.7/test/test_cookie.pyo +#usr/lib/python2.7/test/test_cookielib.py +#usr/lib/python2.7/test/test_cookielib.pyc +#usr/lib/python2.7/test/test_cookielib.pyo +#usr/lib/python2.7/test/test_copy.py +#usr/lib/python2.7/test/test_copy.pyc +#usr/lib/python2.7/test/test_copy.pyo +#usr/lib/python2.7/test/test_copy_reg.py +#usr/lib/python2.7/test/test_copy_reg.pyc +#usr/lib/python2.7/test/test_copy_reg.pyo +#usr/lib/python2.7/test/test_cpickle.py +#usr/lib/python2.7/test/test_cpickle.pyc +#usr/lib/python2.7/test/test_cpickle.pyo +#usr/lib/python2.7/test/test_cprofile.py +#usr/lib/python2.7/test/test_cprofile.pyc +#usr/lib/python2.7/test/test_cprofile.pyo +#usr/lib/python2.7/test/test_crypt.py +#usr/lib/python2.7/test/test_crypt.pyc +#usr/lib/python2.7/test/test_crypt.pyo +#usr/lib/python2.7/test/test_csv.py +#usr/lib/python2.7/test/test_csv.pyc +#usr/lib/python2.7/test/test_csv.pyo +#usr/lib/python2.7/test/test_ctypes.py +#usr/lib/python2.7/test/test_ctypes.pyc +#usr/lib/python2.7/test/test_ctypes.pyo +#usr/lib/python2.7/test/test_curses.py +#usr/lib/python2.7/test/test_curses.pyc +#usr/lib/python2.7/test/test_curses.pyo +#usr/lib/python2.7/test/test_datetime.py +#usr/lib/python2.7/test/test_datetime.pyc +#usr/lib/python2.7/test/test_datetime.pyo +#usr/lib/python2.7/test/test_dbm.py +#usr/lib/python2.7/test/test_dbm.pyc +#usr/lib/python2.7/test/test_dbm.pyo +#usr/lib/python2.7/test/test_decimal.py +#usr/lib/python2.7/test/test_decimal.pyc +#usr/lib/python2.7/test/test_decimal.pyo +#usr/lib/python2.7/test/test_decorators.py +#usr/lib/python2.7/test/test_decorators.pyc +#usr/lib/python2.7/test/test_decorators.pyo +#usr/lib/python2.7/test/test_defaultdict.py +#usr/lib/python2.7/test/test_defaultdict.pyc +#usr/lib/python2.7/test/test_defaultdict.pyo +#usr/lib/python2.7/test/test_deque.py +#usr/lib/python2.7/test/test_deque.pyc +#usr/lib/python2.7/test/test_deque.pyo +#usr/lib/python2.7/test/test_descr.py +#usr/lib/python2.7/test/test_descr.pyc +#usr/lib/python2.7/test/test_descr.pyo +#usr/lib/python2.7/test/test_descrtut.py +#usr/lib/python2.7/test/test_descrtut.pyc +#usr/lib/python2.7/test/test_descrtut.pyo +#usr/lib/python2.7/test/test_dict.py +#usr/lib/python2.7/test/test_dict.pyc +#usr/lib/python2.7/test/test_dict.pyo +#usr/lib/python2.7/test/test_dictcomps.py +#usr/lib/python2.7/test/test_dictcomps.pyc +#usr/lib/python2.7/test/test_dictcomps.pyo +#usr/lib/python2.7/test/test_dictviews.py +#usr/lib/python2.7/test/test_dictviews.pyc +#usr/lib/python2.7/test/test_dictviews.pyo +#usr/lib/python2.7/test/test_difflib.py +#usr/lib/python2.7/test/test_difflib.pyc +#usr/lib/python2.7/test/test_difflib.pyo +#usr/lib/python2.7/test/test_difflib_expect.html +#usr/lib/python2.7/test/test_dircache.py +#usr/lib/python2.7/test/test_dircache.pyc +#usr/lib/python2.7/test/test_dircache.pyo +#usr/lib/python2.7/test/test_dis.py +#usr/lib/python2.7/test/test_dis.pyc +#usr/lib/python2.7/test/test_dis.pyo +#usr/lib/python2.7/test/test_distutils.py +#usr/lib/python2.7/test/test_distutils.pyc +#usr/lib/python2.7/test/test_distutils.pyo +#usr/lib/python2.7/test/test_dl.py +#usr/lib/python2.7/test/test_dl.pyc +#usr/lib/python2.7/test/test_dl.pyo +#usr/lib/python2.7/test/test_doctest.py +#usr/lib/python2.7/test/test_doctest.pyc +#usr/lib/python2.7/test/test_doctest.pyo +#usr/lib/python2.7/test/test_doctest.txt +#usr/lib/python2.7/test/test_doctest2.py +#usr/lib/python2.7/test/test_doctest2.pyc +#usr/lib/python2.7/test/test_doctest2.pyo +#usr/lib/python2.7/test/test_doctest2.txt +#usr/lib/python2.7/test/test_doctest3.txt +#usr/lib/python2.7/test/test_doctest4.txt +#usr/lib/python2.7/test/test_docxmlrpc.py +#usr/lib/python2.7/test/test_docxmlrpc.pyc +#usr/lib/python2.7/test/test_docxmlrpc.pyo +#usr/lib/python2.7/test/test_dumbdbm.py +#usr/lib/python2.7/test/test_dumbdbm.pyc +#usr/lib/python2.7/test/test_dumbdbm.pyo +#usr/lib/python2.7/test/test_dummy_thread.py +#usr/lib/python2.7/test/test_dummy_thread.pyc +#usr/lib/python2.7/test/test_dummy_thread.pyo +#usr/lib/python2.7/test/test_dummy_threading.py +#usr/lib/python2.7/test/test_dummy_threading.pyc +#usr/lib/python2.7/test/test_dummy_threading.pyo +#usr/lib/python2.7/test/test_email.py +#usr/lib/python2.7/test/test_email.pyc +#usr/lib/python2.7/test/test_email.pyo +#usr/lib/python2.7/test/test_email_codecs.py +#usr/lib/python2.7/test/test_email_codecs.pyc +#usr/lib/python2.7/test/test_email_codecs.pyo +#usr/lib/python2.7/test/test_email_renamed.py +#usr/lib/python2.7/test/test_email_renamed.pyc +#usr/lib/python2.7/test/test_email_renamed.pyo +#usr/lib/python2.7/test/test_enumerate.py +#usr/lib/python2.7/test/test_enumerate.pyc +#usr/lib/python2.7/test/test_enumerate.pyo +#usr/lib/python2.7/test/test_eof.py +#usr/lib/python2.7/test/test_eof.pyc +#usr/lib/python2.7/test/test_eof.pyo +#usr/lib/python2.7/test/test_epoll.py +#usr/lib/python2.7/test/test_epoll.pyc +#usr/lib/python2.7/test/test_epoll.pyo +#usr/lib/python2.7/test/test_errno.py +#usr/lib/python2.7/test/test_errno.pyc +#usr/lib/python2.7/test/test_errno.pyo +#usr/lib/python2.7/test/test_exception_variations.py +#usr/lib/python2.7/test/test_exception_variations.pyc +#usr/lib/python2.7/test/test_exception_variations.pyo +#usr/lib/python2.7/test/test_exceptions.py +#usr/lib/python2.7/test/test_exceptions.pyc +#usr/lib/python2.7/test/test_exceptions.pyo +#usr/lib/python2.7/test/test_extcall.py +#usr/lib/python2.7/test/test_extcall.pyc +#usr/lib/python2.7/test/test_extcall.pyo +#usr/lib/python2.7/test/test_fcntl.py +#usr/lib/python2.7/test/test_fcntl.pyc +#usr/lib/python2.7/test/test_fcntl.pyo +#usr/lib/python2.7/test/test_file.py +#usr/lib/python2.7/test/test_file.pyc +#usr/lib/python2.7/test/test_file.pyo +#usr/lib/python2.7/test/test_file2k.py +#usr/lib/python2.7/test/test_file2k.pyc +#usr/lib/python2.7/test/test_file2k.pyo +#usr/lib/python2.7/test/test_filecmp.py +#usr/lib/python2.7/test/test_filecmp.pyc +#usr/lib/python2.7/test/test_filecmp.pyo +#usr/lib/python2.7/test/test_fileinput.py +#usr/lib/python2.7/test/test_fileinput.pyc +#usr/lib/python2.7/test/test_fileinput.pyo +#usr/lib/python2.7/test/test_fileio.py +#usr/lib/python2.7/test/test_fileio.pyc +#usr/lib/python2.7/test/test_fileio.pyo +#usr/lib/python2.7/test/test_float.py +#usr/lib/python2.7/test/test_float.pyc +#usr/lib/python2.7/test/test_float.pyo +#usr/lib/python2.7/test/test_fnmatch.py +#usr/lib/python2.7/test/test_fnmatch.pyc +#usr/lib/python2.7/test/test_fnmatch.pyo +#usr/lib/python2.7/test/test_fork1.py +#usr/lib/python2.7/test/test_fork1.pyc +#usr/lib/python2.7/test/test_fork1.pyo +#usr/lib/python2.7/test/test_format.py +#usr/lib/python2.7/test/test_format.pyc +#usr/lib/python2.7/test/test_format.pyo +#usr/lib/python2.7/test/test_fpformat.py +#usr/lib/python2.7/test/test_fpformat.pyc +#usr/lib/python2.7/test/test_fpformat.pyo +#usr/lib/python2.7/test/test_fractions.py +#usr/lib/python2.7/test/test_fractions.pyc +#usr/lib/python2.7/test/test_fractions.pyo +#usr/lib/python2.7/test/test_frozen.py +#usr/lib/python2.7/test/test_frozen.pyc +#usr/lib/python2.7/test/test_frozen.pyo +#usr/lib/python2.7/test/test_ftplib.py +#usr/lib/python2.7/test/test_ftplib.pyc +#usr/lib/python2.7/test/test_ftplib.pyo +#usr/lib/python2.7/test/test_funcattrs.py +#usr/lib/python2.7/test/test_funcattrs.pyc +#usr/lib/python2.7/test/test_funcattrs.pyo +#usr/lib/python2.7/test/test_functools.py +#usr/lib/python2.7/test/test_functools.pyc +#usr/lib/python2.7/test/test_functools.pyo +#usr/lib/python2.7/test/test_future.py +#usr/lib/python2.7/test/test_future.pyc +#usr/lib/python2.7/test/test_future.pyo +#usr/lib/python2.7/test/test_future1.py +#usr/lib/python2.7/test/test_future1.pyc +#usr/lib/python2.7/test/test_future1.pyo +#usr/lib/python2.7/test/test_future2.py +#usr/lib/python2.7/test/test_future2.pyc +#usr/lib/python2.7/test/test_future2.pyo +#usr/lib/python2.7/test/test_future3.py +#usr/lib/python2.7/test/test_future3.pyc +#usr/lib/python2.7/test/test_future3.pyo +#usr/lib/python2.7/test/test_future4.py +#usr/lib/python2.7/test/test_future4.pyc +#usr/lib/python2.7/test/test_future4.pyo +#usr/lib/python2.7/test/test_future5.py +#usr/lib/python2.7/test/test_future5.pyc +#usr/lib/python2.7/test/test_future5.pyo +#usr/lib/python2.7/test/test_future_builtins.py +#usr/lib/python2.7/test/test_future_builtins.pyc +#usr/lib/python2.7/test/test_future_builtins.pyo +#usr/lib/python2.7/test/test_gc.py +#usr/lib/python2.7/test/test_gc.pyc +#usr/lib/python2.7/test/test_gc.pyo +#usr/lib/python2.7/test/test_gdb.py +#usr/lib/python2.7/test/test_gdb.pyc +#usr/lib/python2.7/test/test_gdb.pyo +#usr/lib/python2.7/test/test_gdbm.py +#usr/lib/python2.7/test/test_gdbm.pyc +#usr/lib/python2.7/test/test_gdbm.pyo +#usr/lib/python2.7/test/test_generators.py +#usr/lib/python2.7/test/test_generators.pyc +#usr/lib/python2.7/test/test_generators.pyo +#usr/lib/python2.7/test/test_genericpath.py +#usr/lib/python2.7/test/test_genericpath.pyc +#usr/lib/python2.7/test/test_genericpath.pyo +#usr/lib/python2.7/test/test_genexps.py +#usr/lib/python2.7/test/test_genexps.pyc +#usr/lib/python2.7/test/test_genexps.pyo +#usr/lib/python2.7/test/test_getargs.py +#usr/lib/python2.7/test/test_getargs.pyc +#usr/lib/python2.7/test/test_getargs.pyo +#usr/lib/python2.7/test/test_getargs2.py +#usr/lib/python2.7/test/test_getargs2.pyc +#usr/lib/python2.7/test/test_getargs2.pyo +#usr/lib/python2.7/test/test_getopt.py +#usr/lib/python2.7/test/test_getopt.pyc +#usr/lib/python2.7/test/test_getopt.pyo +#usr/lib/python2.7/test/test_gettext.py +#usr/lib/python2.7/test/test_gettext.pyc +#usr/lib/python2.7/test/test_gettext.pyo +#usr/lib/python2.7/test/test_gl.py +#usr/lib/python2.7/test/test_gl.pyc +#usr/lib/python2.7/test/test_gl.pyo +#usr/lib/python2.7/test/test_glob.py +#usr/lib/python2.7/test/test_glob.pyc +#usr/lib/python2.7/test/test_glob.pyo +#usr/lib/python2.7/test/test_global.py +#usr/lib/python2.7/test/test_global.pyc +#usr/lib/python2.7/test/test_global.pyo +#usr/lib/python2.7/test/test_grammar.py +#usr/lib/python2.7/test/test_grammar.pyc +#usr/lib/python2.7/test/test_grammar.pyo +#usr/lib/python2.7/test/test_grp.py +#usr/lib/python2.7/test/test_grp.pyc +#usr/lib/python2.7/test/test_grp.pyo +#usr/lib/python2.7/test/test_gzip.py +#usr/lib/python2.7/test/test_gzip.pyc +#usr/lib/python2.7/test/test_gzip.pyo +#usr/lib/python2.7/test/test_hash.py +#usr/lib/python2.7/test/test_hash.pyc +#usr/lib/python2.7/test/test_hash.pyo +#usr/lib/python2.7/test/test_hashlib.py +#usr/lib/python2.7/test/test_hashlib.pyc +#usr/lib/python2.7/test/test_hashlib.pyo +#usr/lib/python2.7/test/test_heapq.py +#usr/lib/python2.7/test/test_heapq.pyc +#usr/lib/python2.7/test/test_heapq.pyo +#usr/lib/python2.7/test/test_hmac.py +#usr/lib/python2.7/test/test_hmac.pyc +#usr/lib/python2.7/test/test_hmac.pyo +#usr/lib/python2.7/test/test_hotshot.py +#usr/lib/python2.7/test/test_hotshot.pyc +#usr/lib/python2.7/test/test_hotshot.pyo +#usr/lib/python2.7/test/test_htmllib.py +#usr/lib/python2.7/test/test_htmllib.pyc +#usr/lib/python2.7/test/test_htmllib.pyo +#usr/lib/python2.7/test/test_htmlparser.py +#usr/lib/python2.7/test/test_htmlparser.pyc +#usr/lib/python2.7/test/test_htmlparser.pyo +#usr/lib/python2.7/test/test_httplib.py +#usr/lib/python2.7/test/test_httplib.pyc +#usr/lib/python2.7/test/test_httplib.pyo +#usr/lib/python2.7/test/test_httpservers.py +#usr/lib/python2.7/test/test_httpservers.pyc +#usr/lib/python2.7/test/test_httpservers.pyo +#usr/lib/python2.7/test/test_imageop.py +#usr/lib/python2.7/test/test_imageop.pyc +#usr/lib/python2.7/test/test_imageop.pyo +#usr/lib/python2.7/test/test_imaplib.py +#usr/lib/python2.7/test/test_imaplib.pyc +#usr/lib/python2.7/test/test_imaplib.pyo +#usr/lib/python2.7/test/test_imgfile.py +#usr/lib/python2.7/test/test_imgfile.pyc +#usr/lib/python2.7/test/test_imgfile.pyo +#usr/lib/python2.7/test/test_imp.py +#usr/lib/python2.7/test/test_imp.pyc +#usr/lib/python2.7/test/test_imp.pyo +#usr/lib/python2.7/test/test_import.py +#usr/lib/python2.7/test/test_import.pyc +#usr/lib/python2.7/test/test_import.pyo +#usr/lib/python2.7/test/test_importhooks.py +#usr/lib/python2.7/test/test_importhooks.pyc +#usr/lib/python2.7/test/test_importhooks.pyo +#usr/lib/python2.7/test/test_importlib.py +#usr/lib/python2.7/test/test_importlib.pyc +#usr/lib/python2.7/test/test_importlib.pyo +#usr/lib/python2.7/test/test_index.py +#usr/lib/python2.7/test/test_index.pyc +#usr/lib/python2.7/test/test_index.pyo +#usr/lib/python2.7/test/test_inspect.py +#usr/lib/python2.7/test/test_inspect.pyc +#usr/lib/python2.7/test/test_inspect.pyo +#usr/lib/python2.7/test/test_int.py +#usr/lib/python2.7/test/test_int.pyc +#usr/lib/python2.7/test/test_int.pyo +#usr/lib/python2.7/test/test_int_literal.py +#usr/lib/python2.7/test/test_int_literal.pyc +#usr/lib/python2.7/test/test_int_literal.pyo +#usr/lib/python2.7/test/test_io.py +#usr/lib/python2.7/test/test_io.pyc +#usr/lib/python2.7/test/test_io.pyo +#usr/lib/python2.7/test/test_ioctl.py +#usr/lib/python2.7/test/test_ioctl.pyc +#usr/lib/python2.7/test/test_ioctl.pyo +#usr/lib/python2.7/test/test_isinstance.py +#usr/lib/python2.7/test/test_isinstance.pyc +#usr/lib/python2.7/test/test_isinstance.pyo +#usr/lib/python2.7/test/test_iter.py +#usr/lib/python2.7/test/test_iter.pyc +#usr/lib/python2.7/test/test_iter.pyo +#usr/lib/python2.7/test/test_iterlen.py +#usr/lib/python2.7/test/test_iterlen.pyc +#usr/lib/python2.7/test/test_iterlen.pyo +#usr/lib/python2.7/test/test_itertools.py +#usr/lib/python2.7/test/test_itertools.pyc +#usr/lib/python2.7/test/test_itertools.pyo +#usr/lib/python2.7/test/test_json.py +#usr/lib/python2.7/test/test_json.pyc +#usr/lib/python2.7/test/test_json.pyo +#usr/lib/python2.7/test/test_kqueue.py +#usr/lib/python2.7/test/test_kqueue.pyc +#usr/lib/python2.7/test/test_kqueue.pyo +#usr/lib/python2.7/test/test_largefile.py +#usr/lib/python2.7/test/test_largefile.pyc +#usr/lib/python2.7/test/test_largefile.pyo +#usr/lib/python2.7/test/test_lib2to3.py +#usr/lib/python2.7/test/test_lib2to3.pyc +#usr/lib/python2.7/test/test_lib2to3.pyo +#usr/lib/python2.7/test/test_linecache.py +#usr/lib/python2.7/test/test_linecache.pyc +#usr/lib/python2.7/test/test_linecache.pyo +#usr/lib/python2.7/test/test_linuxaudiodev.py +#usr/lib/python2.7/test/test_linuxaudiodev.pyc +#usr/lib/python2.7/test/test_linuxaudiodev.pyo +#usr/lib/python2.7/test/test_list.py +#usr/lib/python2.7/test/test_list.pyc +#usr/lib/python2.7/test/test_list.pyo +#usr/lib/python2.7/test/test_locale.py +#usr/lib/python2.7/test/test_locale.pyc +#usr/lib/python2.7/test/test_locale.pyo +#usr/lib/python2.7/test/test_logging.py +#usr/lib/python2.7/test/test_logging.pyc +#usr/lib/python2.7/test/test_logging.pyo +#usr/lib/python2.7/test/test_long.py +#usr/lib/python2.7/test/test_long.pyc +#usr/lib/python2.7/test/test_long.pyo +#usr/lib/python2.7/test/test_long_future.py +#usr/lib/python2.7/test/test_long_future.pyc +#usr/lib/python2.7/test/test_long_future.pyo +#usr/lib/python2.7/test/test_longexp.py +#usr/lib/python2.7/test/test_longexp.pyc +#usr/lib/python2.7/test/test_longexp.pyo +#usr/lib/python2.7/test/test_macos.py +#usr/lib/python2.7/test/test_macos.pyc +#usr/lib/python2.7/test/test_macos.pyo +#usr/lib/python2.7/test/test_macostools.py +#usr/lib/python2.7/test/test_macostools.pyc +#usr/lib/python2.7/test/test_macostools.pyo +#usr/lib/python2.7/test/test_macpath.py +#usr/lib/python2.7/test/test_macpath.pyc +#usr/lib/python2.7/test/test_macpath.pyo +#usr/lib/python2.7/test/test_mailbox.py +#usr/lib/python2.7/test/test_mailbox.pyc +#usr/lib/python2.7/test/test_mailbox.pyo +#usr/lib/python2.7/test/test_marshal.py +#usr/lib/python2.7/test/test_marshal.pyc +#usr/lib/python2.7/test/test_marshal.pyo +#usr/lib/python2.7/test/test_math.py +#usr/lib/python2.7/test/test_math.pyc +#usr/lib/python2.7/test/test_math.pyo +#usr/lib/python2.7/test/test_md5.py +#usr/lib/python2.7/test/test_md5.pyc +#usr/lib/python2.7/test/test_md5.pyo +#usr/lib/python2.7/test/test_memoryio.py +#usr/lib/python2.7/test/test_memoryio.pyc +#usr/lib/python2.7/test/test_memoryio.pyo +#usr/lib/python2.7/test/test_memoryview.py +#usr/lib/python2.7/test/test_memoryview.pyc +#usr/lib/python2.7/test/test_memoryview.pyo +#usr/lib/python2.7/test/test_mhlib.py +#usr/lib/python2.7/test/test_mhlib.pyc +#usr/lib/python2.7/test/test_mhlib.pyo +#usr/lib/python2.7/test/test_mimetools.py +#usr/lib/python2.7/test/test_mimetools.pyc +#usr/lib/python2.7/test/test_mimetools.pyo +#usr/lib/python2.7/test/test_mimetypes.py +#usr/lib/python2.7/test/test_mimetypes.pyc +#usr/lib/python2.7/test/test_mimetypes.pyo +#usr/lib/python2.7/test/test_minidom.py +#usr/lib/python2.7/test/test_minidom.pyc +#usr/lib/python2.7/test/test_minidom.pyo +#usr/lib/python2.7/test/test_mmap.py +#usr/lib/python2.7/test/test_mmap.pyc +#usr/lib/python2.7/test/test_mmap.pyo +#usr/lib/python2.7/test/test_module.py +#usr/lib/python2.7/test/test_module.pyc +#usr/lib/python2.7/test/test_module.pyo +#usr/lib/python2.7/test/test_modulefinder.py +#usr/lib/python2.7/test/test_modulefinder.pyc +#usr/lib/python2.7/test/test_modulefinder.pyo +#usr/lib/python2.7/test/test_multibytecodec.py +#usr/lib/python2.7/test/test_multibytecodec.pyc +#usr/lib/python2.7/test/test_multibytecodec.pyo +#usr/lib/python2.7/test/test_multibytecodec_support.py +#usr/lib/python2.7/test/test_multibytecodec_support.pyc +#usr/lib/python2.7/test/test_multibytecodec_support.pyo +#usr/lib/python2.7/test/test_multifile.py +#usr/lib/python2.7/test/test_multifile.pyc +#usr/lib/python2.7/test/test_multifile.pyo +#usr/lib/python2.7/test/test_multiprocessing.py +#usr/lib/python2.7/test/test_multiprocessing.pyc +#usr/lib/python2.7/test/test_multiprocessing.pyo +#usr/lib/python2.7/test/test_mutants.py +#usr/lib/python2.7/test/test_mutants.pyc +#usr/lib/python2.7/test/test_mutants.pyo +#usr/lib/python2.7/test/test_mutex.py +#usr/lib/python2.7/test/test_mutex.pyc +#usr/lib/python2.7/test/test_mutex.pyo +#usr/lib/python2.7/test/test_netrc.py +#usr/lib/python2.7/test/test_netrc.pyc +#usr/lib/python2.7/test/test_netrc.pyo +#usr/lib/python2.7/test/test_new.py +#usr/lib/python2.7/test/test_new.pyc +#usr/lib/python2.7/test/test_new.pyo +#usr/lib/python2.7/test/test_nis.py +#usr/lib/python2.7/test/test_nis.pyc +#usr/lib/python2.7/test/test_nis.pyo +#usr/lib/python2.7/test/test_normalization.py +#usr/lib/python2.7/test/test_normalization.pyc +#usr/lib/python2.7/test/test_normalization.pyo +#usr/lib/python2.7/test/test_ntpath.py +#usr/lib/python2.7/test/test_ntpath.pyc +#usr/lib/python2.7/test/test_ntpath.pyo +#usr/lib/python2.7/test/test_old_mailbox.py +#usr/lib/python2.7/test/test_old_mailbox.pyc +#usr/lib/python2.7/test/test_old_mailbox.pyo +#usr/lib/python2.7/test/test_opcodes.py +#usr/lib/python2.7/test/test_opcodes.pyc +#usr/lib/python2.7/test/test_opcodes.pyo +#usr/lib/python2.7/test/test_openpty.py +#usr/lib/python2.7/test/test_openpty.pyc +#usr/lib/python2.7/test/test_openpty.pyo +#usr/lib/python2.7/test/test_operator.py +#usr/lib/python2.7/test/test_operator.pyc +#usr/lib/python2.7/test/test_operator.pyo +#usr/lib/python2.7/test/test_optparse.py +#usr/lib/python2.7/test/test_optparse.pyc +#usr/lib/python2.7/test/test_optparse.pyo +#usr/lib/python2.7/test/test_os.py +#usr/lib/python2.7/test/test_os.pyc +#usr/lib/python2.7/test/test_os.pyo +#usr/lib/python2.7/test/test_ossaudiodev.py +#usr/lib/python2.7/test/test_ossaudiodev.pyc +#usr/lib/python2.7/test/test_ossaudiodev.pyo +#usr/lib/python2.7/test/test_parser.py +#usr/lib/python2.7/test/test_parser.pyc +#usr/lib/python2.7/test/test_parser.pyo +#usr/lib/python2.7/test/test_pdb.py +#usr/lib/python2.7/test/test_pdb.pyc +#usr/lib/python2.7/test/test_pdb.pyo +#usr/lib/python2.7/test/test_peepholer.py +#usr/lib/python2.7/test/test_peepholer.pyc +#usr/lib/python2.7/test/test_peepholer.pyo +#usr/lib/python2.7/test/test_pep247.py +#usr/lib/python2.7/test/test_pep247.pyc +#usr/lib/python2.7/test/test_pep247.pyo +#usr/lib/python2.7/test/test_pep263.py +#usr/lib/python2.7/test/test_pep263.pyc +#usr/lib/python2.7/test/test_pep263.pyo +#usr/lib/python2.7/test/test_pep277.py +#usr/lib/python2.7/test/test_pep277.pyc +#usr/lib/python2.7/test/test_pep277.pyo +#usr/lib/python2.7/test/test_pep292.py +#usr/lib/python2.7/test/test_pep292.pyc +#usr/lib/python2.7/test/test_pep292.pyo +#usr/lib/python2.7/test/test_pep352.py +#usr/lib/python2.7/test/test_pep352.pyc +#usr/lib/python2.7/test/test_pep352.pyo +#usr/lib/python2.7/test/test_pickle.py +#usr/lib/python2.7/test/test_pickle.pyc +#usr/lib/python2.7/test/test_pickle.pyo +#usr/lib/python2.7/test/test_pickletools.py +#usr/lib/python2.7/test/test_pickletools.pyc +#usr/lib/python2.7/test/test_pickletools.pyo +#usr/lib/python2.7/test/test_pipes.py +#usr/lib/python2.7/test/test_pipes.pyc +#usr/lib/python2.7/test/test_pipes.pyo +#usr/lib/python2.7/test/test_pkg.py +#usr/lib/python2.7/test/test_pkg.pyc +#usr/lib/python2.7/test/test_pkg.pyo +#usr/lib/python2.7/test/test_pkgimport.py +#usr/lib/python2.7/test/test_pkgimport.pyc +#usr/lib/python2.7/test/test_pkgimport.pyo +#usr/lib/python2.7/test/test_pkgutil.py +#usr/lib/python2.7/test/test_pkgutil.pyc +#usr/lib/python2.7/test/test_pkgutil.pyo +#usr/lib/python2.7/test/test_platform.py +#usr/lib/python2.7/test/test_platform.pyc +#usr/lib/python2.7/test/test_platform.pyo +#usr/lib/python2.7/test/test_plistlib.py +#usr/lib/python2.7/test/test_plistlib.pyc +#usr/lib/python2.7/test/test_plistlib.pyo +#usr/lib/python2.7/test/test_poll.py +#usr/lib/python2.7/test/test_poll.pyc +#usr/lib/python2.7/test/test_poll.pyo +#usr/lib/python2.7/test/test_popen.py +#usr/lib/python2.7/test/test_popen.pyc +#usr/lib/python2.7/test/test_popen.pyo +#usr/lib/python2.7/test/test_popen2.py +#usr/lib/python2.7/test/test_popen2.pyc +#usr/lib/python2.7/test/test_popen2.pyo +#usr/lib/python2.7/test/test_poplib.py +#usr/lib/python2.7/test/test_poplib.pyc +#usr/lib/python2.7/test/test_poplib.pyo +#usr/lib/python2.7/test/test_posix.py +#usr/lib/python2.7/test/test_posix.pyc +#usr/lib/python2.7/test/test_posix.pyo +#usr/lib/python2.7/test/test_posixpath.py +#usr/lib/python2.7/test/test_posixpath.pyc +#usr/lib/python2.7/test/test_posixpath.pyo +#usr/lib/python2.7/test/test_pow.py +#usr/lib/python2.7/test/test_pow.pyc +#usr/lib/python2.7/test/test_pow.pyo +#usr/lib/python2.7/test/test_pprint.py +#usr/lib/python2.7/test/test_pprint.pyc +#usr/lib/python2.7/test/test_pprint.pyo +#usr/lib/python2.7/test/test_print.py +#usr/lib/python2.7/test/test_print.pyc +#usr/lib/python2.7/test/test_print.pyo +#usr/lib/python2.7/test/test_profile.py +#usr/lib/python2.7/test/test_profile.pyc +#usr/lib/python2.7/test/test_profile.pyo +#usr/lib/python2.7/test/test_profilehooks.py +#usr/lib/python2.7/test/test_profilehooks.pyc +#usr/lib/python2.7/test/test_profilehooks.pyo +#usr/lib/python2.7/test/test_property.py +#usr/lib/python2.7/test/test_property.pyc +#usr/lib/python2.7/test/test_property.pyo +#usr/lib/python2.7/test/test_pstats.py +#usr/lib/python2.7/test/test_pstats.pyc +#usr/lib/python2.7/test/test_pstats.pyo +#usr/lib/python2.7/test/test_pty.py +#usr/lib/python2.7/test/test_pty.pyc +#usr/lib/python2.7/test/test_pty.pyo +#usr/lib/python2.7/test/test_pwd.py +#usr/lib/python2.7/test/test_pwd.pyc +#usr/lib/python2.7/test/test_pwd.pyo +#usr/lib/python2.7/test/test_py3kwarn.py +#usr/lib/python2.7/test/test_py3kwarn.pyc +#usr/lib/python2.7/test/test_py3kwarn.pyo +#usr/lib/python2.7/test/test_pyclbr.py +#usr/lib/python2.7/test/test_pyclbr.pyc +#usr/lib/python2.7/test/test_pyclbr.pyo +#usr/lib/python2.7/test/test_pydoc.py +#usr/lib/python2.7/test/test_pydoc.pyc +#usr/lib/python2.7/test/test_pydoc.pyo +#usr/lib/python2.7/test/test_pyexpat.py +#usr/lib/python2.7/test/test_pyexpat.pyc +#usr/lib/python2.7/test/test_pyexpat.pyo +#usr/lib/python2.7/test/test_queue.py +#usr/lib/python2.7/test/test_queue.pyc +#usr/lib/python2.7/test/test_queue.pyo +#usr/lib/python2.7/test/test_quopri.py +#usr/lib/python2.7/test/test_quopri.pyc +#usr/lib/python2.7/test/test_quopri.pyo +#usr/lib/python2.7/test/test_random.py +#usr/lib/python2.7/test/test_random.pyc +#usr/lib/python2.7/test/test_random.pyo +#usr/lib/python2.7/test/test_re.py +#usr/lib/python2.7/test/test_re.pyc +#usr/lib/python2.7/test/test_re.pyo +#usr/lib/python2.7/test/test_readline.py +#usr/lib/python2.7/test/test_readline.pyc +#usr/lib/python2.7/test/test_readline.pyo +#usr/lib/python2.7/test/test_repr.py +#usr/lib/python2.7/test/test_repr.pyc +#usr/lib/python2.7/test/test_repr.pyo +#usr/lib/python2.7/test/test_resource.py +#usr/lib/python2.7/test/test_resource.pyc +#usr/lib/python2.7/test/test_resource.pyo +#usr/lib/python2.7/test/test_rfc822.py +#usr/lib/python2.7/test/test_rfc822.pyc +#usr/lib/python2.7/test/test_rfc822.pyo +#usr/lib/python2.7/test/test_richcmp.py +#usr/lib/python2.7/test/test_richcmp.pyc +#usr/lib/python2.7/test/test_richcmp.pyo +#usr/lib/python2.7/test/test_robotparser.py +#usr/lib/python2.7/test/test_robotparser.pyc +#usr/lib/python2.7/test/test_robotparser.pyo +#usr/lib/python2.7/test/test_runpy.py +#usr/lib/python2.7/test/test_runpy.pyc +#usr/lib/python2.7/test/test_runpy.pyo +#usr/lib/python2.7/test/test_sax.py +#usr/lib/python2.7/test/test_sax.pyc +#usr/lib/python2.7/test/test_sax.pyo +#usr/lib/python2.7/test/test_scope.py +#usr/lib/python2.7/test/test_scope.pyc +#usr/lib/python2.7/test/test_scope.pyo +#usr/lib/python2.7/test/test_scriptpackages.py +#usr/lib/python2.7/test/test_scriptpackages.pyc +#usr/lib/python2.7/test/test_scriptpackages.pyo +#usr/lib/python2.7/test/test_select.py +#usr/lib/python2.7/test/test_select.pyc +#usr/lib/python2.7/test/test_select.pyo +#usr/lib/python2.7/test/test_set.py +#usr/lib/python2.7/test/test_set.pyc +#usr/lib/python2.7/test/test_set.pyo +#usr/lib/python2.7/test/test_setcomps.py +#usr/lib/python2.7/test/test_setcomps.pyc +#usr/lib/python2.7/test/test_setcomps.pyo +#usr/lib/python2.7/test/test_sets.py +#usr/lib/python2.7/test/test_sets.pyc +#usr/lib/python2.7/test/test_sets.pyo +#usr/lib/python2.7/test/test_sgmllib.py +#usr/lib/python2.7/test/test_sgmllib.pyc +#usr/lib/python2.7/test/test_sgmllib.pyo +#usr/lib/python2.7/test/test_sha.py +#usr/lib/python2.7/test/test_sha.pyc +#usr/lib/python2.7/test/test_sha.pyo +#usr/lib/python2.7/test/test_shelve.py +#usr/lib/python2.7/test/test_shelve.pyc +#usr/lib/python2.7/test/test_shelve.pyo +#usr/lib/python2.7/test/test_shlex.py +#usr/lib/python2.7/test/test_shlex.pyc +#usr/lib/python2.7/test/test_shlex.pyo +#usr/lib/python2.7/test/test_shutil.py +#usr/lib/python2.7/test/test_shutil.pyc +#usr/lib/python2.7/test/test_shutil.pyo +#usr/lib/python2.7/test/test_signal.py +#usr/lib/python2.7/test/test_signal.pyc +#usr/lib/python2.7/test/test_signal.pyo +#usr/lib/python2.7/test/test_site.py +#usr/lib/python2.7/test/test_site.pyc +#usr/lib/python2.7/test/test_site.pyo +#usr/lib/python2.7/test/test_slice.py +#usr/lib/python2.7/test/test_slice.pyc +#usr/lib/python2.7/test/test_slice.pyo +#usr/lib/python2.7/test/test_smtplib.py +#usr/lib/python2.7/test/test_smtplib.pyc +#usr/lib/python2.7/test/test_smtplib.pyo +#usr/lib/python2.7/test/test_smtpnet.py +#usr/lib/python2.7/test/test_smtpnet.pyc +#usr/lib/python2.7/test/test_smtpnet.pyo +#usr/lib/python2.7/test/test_socket.py +#usr/lib/python2.7/test/test_socket.pyc +#usr/lib/python2.7/test/test_socket.pyo +#usr/lib/python2.7/test/test_socketserver.py +#usr/lib/python2.7/test/test_socketserver.pyc +#usr/lib/python2.7/test/test_socketserver.pyo +#usr/lib/python2.7/test/test_softspace.py +#usr/lib/python2.7/test/test_softspace.pyc +#usr/lib/python2.7/test/test_softspace.pyo +#usr/lib/python2.7/test/test_sort.py +#usr/lib/python2.7/test/test_sort.pyc +#usr/lib/python2.7/test/test_sort.pyo +#usr/lib/python2.7/test/test_sqlite.py +#usr/lib/python2.7/test/test_sqlite.pyc +#usr/lib/python2.7/test/test_sqlite.pyo +#usr/lib/python2.7/test/test_ssl.py +#usr/lib/python2.7/test/test_ssl.pyc +#usr/lib/python2.7/test/test_ssl.pyo +#usr/lib/python2.7/test/test_startfile.py +#usr/lib/python2.7/test/test_startfile.pyc +#usr/lib/python2.7/test/test_startfile.pyo +#usr/lib/python2.7/test/test_str.py +#usr/lib/python2.7/test/test_str.pyc +#usr/lib/python2.7/test/test_str.pyo +#usr/lib/python2.7/test/test_strftime.py +#usr/lib/python2.7/test/test_strftime.pyc +#usr/lib/python2.7/test/test_strftime.pyo +#usr/lib/python2.7/test/test_string.py +#usr/lib/python2.7/test/test_string.pyc +#usr/lib/python2.7/test/test_string.pyo +#usr/lib/python2.7/test/test_stringprep.py +#usr/lib/python2.7/test/test_stringprep.pyc +#usr/lib/python2.7/test/test_stringprep.pyo +#usr/lib/python2.7/test/test_strop.py +#usr/lib/python2.7/test/test_strop.pyc +#usr/lib/python2.7/test/test_strop.pyo +#usr/lib/python2.7/test/test_strptime.py +#usr/lib/python2.7/test/test_strptime.pyc +#usr/lib/python2.7/test/test_strptime.pyo +#usr/lib/python2.7/test/test_strtod.py +#usr/lib/python2.7/test/test_strtod.pyc +#usr/lib/python2.7/test/test_strtod.pyo +#usr/lib/python2.7/test/test_struct.py +#usr/lib/python2.7/test/test_struct.pyc +#usr/lib/python2.7/test/test_struct.pyo +#usr/lib/python2.7/test/test_structmembers.py +#usr/lib/python2.7/test/test_structmembers.pyc +#usr/lib/python2.7/test/test_structmembers.pyo +#usr/lib/python2.7/test/test_structseq.py +#usr/lib/python2.7/test/test_structseq.pyc +#usr/lib/python2.7/test/test_structseq.pyo +#usr/lib/python2.7/test/test_subprocess.py +#usr/lib/python2.7/test/test_subprocess.pyc +#usr/lib/python2.7/test/test_subprocess.pyo +#usr/lib/python2.7/test/test_sunaudiodev.py +#usr/lib/python2.7/test/test_sunaudiodev.pyc +#usr/lib/python2.7/test/test_sunaudiodev.pyo +#usr/lib/python2.7/test/test_sundry.py +#usr/lib/python2.7/test/test_sundry.pyc +#usr/lib/python2.7/test/test_sundry.pyo +#usr/lib/python2.7/test/test_support.py +#usr/lib/python2.7/test/test_support.pyc +#usr/lib/python2.7/test/test_support.pyo +#usr/lib/python2.7/test/test_symtable.py +#usr/lib/python2.7/test/test_symtable.pyc +#usr/lib/python2.7/test/test_symtable.pyo +#usr/lib/python2.7/test/test_syntax.py +#usr/lib/python2.7/test/test_syntax.pyc +#usr/lib/python2.7/test/test_syntax.pyo +#usr/lib/python2.7/test/test_sys.py +#usr/lib/python2.7/test/test_sys.pyc +#usr/lib/python2.7/test/test_sys.pyo +#usr/lib/python2.7/test/test_sysconfig.py +#usr/lib/python2.7/test/test_sysconfig.pyc +#usr/lib/python2.7/test/test_sysconfig.pyo +#usr/lib/python2.7/test/test_tarfile.py +#usr/lib/python2.7/test/test_tarfile.pyc +#usr/lib/python2.7/test/test_tarfile.pyo +#usr/lib/python2.7/test/test_tcl.py +#usr/lib/python2.7/test/test_tcl.pyc +#usr/lib/python2.7/test/test_tcl.pyo +#usr/lib/python2.7/test/test_telnetlib.py +#usr/lib/python2.7/test/test_telnetlib.pyc +#usr/lib/python2.7/test/test_telnetlib.pyo +#usr/lib/python2.7/test/test_tempfile.py +#usr/lib/python2.7/test/test_tempfile.pyc +#usr/lib/python2.7/test/test_tempfile.pyo +#usr/lib/python2.7/test/test_textwrap.py +#usr/lib/python2.7/test/test_textwrap.pyc +#usr/lib/python2.7/test/test_textwrap.pyo +#usr/lib/python2.7/test/test_thread.py +#usr/lib/python2.7/test/test_thread.pyc +#usr/lib/python2.7/test/test_thread.pyo +#usr/lib/python2.7/test/test_threaded_import.py +#usr/lib/python2.7/test/test_threaded_import.pyc +#usr/lib/python2.7/test/test_threaded_import.pyo +#usr/lib/python2.7/test/test_threadedtempfile.py +#usr/lib/python2.7/test/test_threadedtempfile.pyc +#usr/lib/python2.7/test/test_threadedtempfile.pyo +#usr/lib/python2.7/test/test_threading.py +#usr/lib/python2.7/test/test_threading.pyc +#usr/lib/python2.7/test/test_threading.pyo +#usr/lib/python2.7/test/test_threading_local.py +#usr/lib/python2.7/test/test_threading_local.pyc +#usr/lib/python2.7/test/test_threading_local.pyo +#usr/lib/python2.7/test/test_threadsignals.py +#usr/lib/python2.7/test/test_threadsignals.pyc +#usr/lib/python2.7/test/test_threadsignals.pyo +#usr/lib/python2.7/test/test_time.py +#usr/lib/python2.7/test/test_time.pyc +#usr/lib/python2.7/test/test_time.pyo +#usr/lib/python2.7/test/test_timeout.py +#usr/lib/python2.7/test/test_timeout.pyc +#usr/lib/python2.7/test/test_timeout.pyo +#usr/lib/python2.7/test/test_tk.py +#usr/lib/python2.7/test/test_tk.pyc +#usr/lib/python2.7/test/test_tk.pyo +#usr/lib/python2.7/test/test_tokenize.py +#usr/lib/python2.7/test/test_tokenize.pyc +#usr/lib/python2.7/test/test_tokenize.pyo +#usr/lib/python2.7/test/test_trace.py +#usr/lib/python2.7/test/test_trace.pyc +#usr/lib/python2.7/test/test_trace.pyo +#usr/lib/python2.7/test/test_traceback.py +#usr/lib/python2.7/test/test_traceback.pyc +#usr/lib/python2.7/test/test_traceback.pyo +#usr/lib/python2.7/test/test_transformer.py +#usr/lib/python2.7/test/test_transformer.pyc +#usr/lib/python2.7/test/test_transformer.pyo +#usr/lib/python2.7/test/test_ttk_guionly.py +#usr/lib/python2.7/test/test_ttk_guionly.pyc +#usr/lib/python2.7/test/test_ttk_guionly.pyo +#usr/lib/python2.7/test/test_ttk_textonly.py +#usr/lib/python2.7/test/test_ttk_textonly.pyc +#usr/lib/python2.7/test/test_ttk_textonly.pyo +#usr/lib/python2.7/test/test_tuple.py +#usr/lib/python2.7/test/test_tuple.pyc +#usr/lib/python2.7/test/test_tuple.pyo +#usr/lib/python2.7/test/test_typechecks.py +#usr/lib/python2.7/test/test_typechecks.pyc +#usr/lib/python2.7/test/test_typechecks.pyo +#usr/lib/python2.7/test/test_types.py +#usr/lib/python2.7/test/test_types.pyc +#usr/lib/python2.7/test/test_types.pyo +#usr/lib/python2.7/test/test_ucn.py +#usr/lib/python2.7/test/test_ucn.pyc +#usr/lib/python2.7/test/test_ucn.pyo +#usr/lib/python2.7/test/test_unary.py +#usr/lib/python2.7/test/test_unary.pyc +#usr/lib/python2.7/test/test_unary.pyo +#usr/lib/python2.7/test/test_undocumented_details.py +#usr/lib/python2.7/test/test_undocumented_details.pyc +#usr/lib/python2.7/test/test_undocumented_details.pyo +#usr/lib/python2.7/test/test_unicode.py +#usr/lib/python2.7/test/test_unicode.pyc +#usr/lib/python2.7/test/test_unicode.pyo +#usr/lib/python2.7/test/test_unicode_file.py +#usr/lib/python2.7/test/test_unicode_file.pyc +#usr/lib/python2.7/test/test_unicode_file.pyo +#usr/lib/python2.7/test/test_unicodedata.py +#usr/lib/python2.7/test/test_unicodedata.pyc +#usr/lib/python2.7/test/test_unicodedata.pyo +#usr/lib/python2.7/test/test_unittest.py +#usr/lib/python2.7/test/test_unittest.pyc +#usr/lib/python2.7/test/test_unittest.pyo +#usr/lib/python2.7/test/test_univnewlines.py +#usr/lib/python2.7/test/test_univnewlines.pyc +#usr/lib/python2.7/test/test_univnewlines.pyo +#usr/lib/python2.7/test/test_univnewlines2k.py +#usr/lib/python2.7/test/test_univnewlines2k.pyc +#usr/lib/python2.7/test/test_univnewlines2k.pyo +#usr/lib/python2.7/test/test_unpack.py +#usr/lib/python2.7/test/test_unpack.pyc +#usr/lib/python2.7/test/test_unpack.pyo +#usr/lib/python2.7/test/test_urllib.py +#usr/lib/python2.7/test/test_urllib.pyc +#usr/lib/python2.7/test/test_urllib.pyo +#usr/lib/python2.7/test/test_urllib2.py +#usr/lib/python2.7/test/test_urllib2.pyc +#usr/lib/python2.7/test/test_urllib2.pyo +#usr/lib/python2.7/test/test_urllib2_localnet.py +#usr/lib/python2.7/test/test_urllib2_localnet.pyc +#usr/lib/python2.7/test/test_urllib2_localnet.pyo +#usr/lib/python2.7/test/test_urllib2net.py +#usr/lib/python2.7/test/test_urllib2net.pyc +#usr/lib/python2.7/test/test_urllib2net.pyo +#usr/lib/python2.7/test/test_urllibnet.py +#usr/lib/python2.7/test/test_urllibnet.pyc +#usr/lib/python2.7/test/test_urllibnet.pyo +#usr/lib/python2.7/test/test_urlparse.py +#usr/lib/python2.7/test/test_urlparse.pyc +#usr/lib/python2.7/test/test_urlparse.pyo +#usr/lib/python2.7/test/test_userdict.py +#usr/lib/python2.7/test/test_userdict.pyc +#usr/lib/python2.7/test/test_userdict.pyo +#usr/lib/python2.7/test/test_userlist.py +#usr/lib/python2.7/test/test_userlist.pyc +#usr/lib/python2.7/test/test_userlist.pyo +#usr/lib/python2.7/test/test_userstring.py +#usr/lib/python2.7/test/test_userstring.pyc +#usr/lib/python2.7/test/test_userstring.pyo +#usr/lib/python2.7/test/test_uu.py +#usr/lib/python2.7/test/test_uu.pyc +#usr/lib/python2.7/test/test_uu.pyo +#usr/lib/python2.7/test/test_uuid.py +#usr/lib/python2.7/test/test_uuid.pyc +#usr/lib/python2.7/test/test_uuid.pyo +#usr/lib/python2.7/test/test_wait3.py +#usr/lib/python2.7/test/test_wait3.pyc +#usr/lib/python2.7/test/test_wait3.pyo +#usr/lib/python2.7/test/test_wait4.py +#usr/lib/python2.7/test/test_wait4.pyc +#usr/lib/python2.7/test/test_wait4.pyo +#usr/lib/python2.7/test/test_warnings.py +#usr/lib/python2.7/test/test_warnings.pyc +#usr/lib/python2.7/test/test_warnings.pyo +#usr/lib/python2.7/test/test_wave.py +#usr/lib/python2.7/test/test_wave.pyc +#usr/lib/python2.7/test/test_wave.pyo +#usr/lib/python2.7/test/test_weakref.py +#usr/lib/python2.7/test/test_weakref.pyc +#usr/lib/python2.7/test/test_weakref.pyo +#usr/lib/python2.7/test/test_weakset.py +#usr/lib/python2.7/test/test_weakset.pyc +#usr/lib/python2.7/test/test_weakset.pyo +#usr/lib/python2.7/test/test_whichdb.py +#usr/lib/python2.7/test/test_whichdb.pyc +#usr/lib/python2.7/test/test_whichdb.pyo +#usr/lib/python2.7/test/test_winreg.py +#usr/lib/python2.7/test/test_winreg.pyc +#usr/lib/python2.7/test/test_winreg.pyo +#usr/lib/python2.7/test/test_winsound.py +#usr/lib/python2.7/test/test_winsound.pyc +#usr/lib/python2.7/test/test_winsound.pyo +#usr/lib/python2.7/test/test_with.py +#usr/lib/python2.7/test/test_with.pyc +#usr/lib/python2.7/test/test_with.pyo +#usr/lib/python2.7/test/test_wsgiref.py +#usr/lib/python2.7/test/test_wsgiref.pyc +#usr/lib/python2.7/test/test_wsgiref.pyo +#usr/lib/python2.7/test/test_xdrlib.py +#usr/lib/python2.7/test/test_xdrlib.pyc +#usr/lib/python2.7/test/test_xdrlib.pyo +#usr/lib/python2.7/test/test_xml_etree.py +#usr/lib/python2.7/test/test_xml_etree.pyc +#usr/lib/python2.7/test/test_xml_etree.pyo +#usr/lib/python2.7/test/test_xml_etree_c.py +#usr/lib/python2.7/test/test_xml_etree_c.pyc +#usr/lib/python2.7/test/test_xml_etree_c.pyo +#usr/lib/python2.7/test/test_xmllib.py +#usr/lib/python2.7/test/test_xmllib.pyc +#usr/lib/python2.7/test/test_xmllib.pyo +#usr/lib/python2.7/test/test_xmlrpc.py +#usr/lib/python2.7/test/test_xmlrpc.pyc +#usr/lib/python2.7/test/test_xmlrpc.pyo +#usr/lib/python2.7/test/test_xpickle.py +#usr/lib/python2.7/test/test_xpickle.pyc +#usr/lib/python2.7/test/test_xpickle.pyo +#usr/lib/python2.7/test/test_xrange.py +#usr/lib/python2.7/test/test_xrange.pyc +#usr/lib/python2.7/test/test_xrange.pyo +#usr/lib/python2.7/test/test_zipfile.py +#usr/lib/python2.7/test/test_zipfile.pyc +#usr/lib/python2.7/test/test_zipfile.pyo +#usr/lib/python2.7/test/test_zipfile64.py +#usr/lib/python2.7/test/test_zipfile64.pyc +#usr/lib/python2.7/test/test_zipfile64.pyo +#usr/lib/python2.7/test/test_zipimport.py +#usr/lib/python2.7/test/test_zipimport.pyc +#usr/lib/python2.7/test/test_zipimport.pyo +#usr/lib/python2.7/test/test_zipimport_support.py +#usr/lib/python2.7/test/test_zipimport_support.pyc +#usr/lib/python2.7/test/test_zipimport_support.pyo +#usr/lib/python2.7/test/test_zlib.py +#usr/lib/python2.7/test/test_zlib.pyc +#usr/lib/python2.7/test/test_zlib.pyo +#usr/lib/python2.7/test/testall.py +#usr/lib/python2.7/test/testall.pyc +#usr/lib/python2.7/test/testall.pyo +#usr/lib/python2.7/test/testcodec.py +#usr/lib/python2.7/test/testcodec.pyc +#usr/lib/python2.7/test/testcodec.pyo +#usr/lib/python2.7/test/testimg.uue +#usr/lib/python2.7/test/testimgr.uue +#usr/lib/python2.7/test/testrgb.uue +#usr/lib/python2.7/test/testtar.tar +#usr/lib/python2.7/test/tf_inherit_check.py +#usr/lib/python2.7/test/tf_inherit_check.pyc +#usr/lib/python2.7/test/tf_inherit_check.pyo +#usr/lib/python2.7/test/threaded_import_hangers.py +#usr/lib/python2.7/test/threaded_import_hangers.pyc +#usr/lib/python2.7/test/threaded_import_hangers.pyo +#usr/lib/python2.7/test/time_hashlib.py +#usr/lib/python2.7/test/time_hashlib.pyc +#usr/lib/python2.7/test/time_hashlib.pyo +#usr/lib/python2.7/test/tokenize_tests.txt +#usr/lib/python2.7/test/warning_tests.py +#usr/lib/python2.7/test/warning_tests.pyc +#usr/lib/python2.7/test/warning_tests.pyo +#usr/lib/python2.7/test/win_console_handler.py +#usr/lib/python2.7/test/win_console_handler.pyc +#usr/lib/python2.7/test/win_console_handler.pyo +#usr/lib/python2.7/test/wrongcert.pem +#usr/lib/python2.7/test/xmltestdata +#usr/lib/python2.7/test/xmltestdata/simple-ns.xml +#usr/lib/python2.7/test/xmltestdata/simple.xml +#usr/lib/python2.7/test/xmltestdata/test.xml +#usr/lib/python2.7/test/xmltestdata/test.xml.out +#usr/lib/python2.7/test/xmltests.py +#usr/lib/python2.7/test/xmltests.pyc +#usr/lib/python2.7/test/xmltests.pyo +#usr/lib/python2.7/test/zipdir.zip +#usr/lib/python2.7/textwrap.py +usr/lib/python2.7/textwrap.pyc +#usr/lib/python2.7/textwrap.pyo +#usr/lib/python2.7/this.py +usr/lib/python2.7/this.pyc +#usr/lib/python2.7/this.pyo +#usr/lib/python2.7/threading.py +usr/lib/python2.7/threading.pyc +#usr/lib/python2.7/threading.pyo +#usr/lib/python2.7/timeit.py +usr/lib/python2.7/timeit.pyc +#usr/lib/python2.7/timeit.pyo +#usr/lib/python2.7/toaiff.py +usr/lib/python2.7/toaiff.pyc +#usr/lib/python2.7/toaiff.pyo +#usr/lib/python2.7/token.py +usr/lib/python2.7/token.pyc +#usr/lib/python2.7/token.pyo +#usr/lib/python2.7/tokenize.py +usr/lib/python2.7/tokenize.pyc +#usr/lib/python2.7/tokenize.pyo +#usr/lib/python2.7/trace.py +usr/lib/python2.7/trace.pyc +#usr/lib/python2.7/trace.pyo +#usr/lib/python2.7/traceback.py +usr/lib/python2.7/traceback.pyc +#usr/lib/python2.7/traceback.pyo +#usr/lib/python2.7/tty.py +usr/lib/python2.7/tty.pyc +#usr/lib/python2.7/tty.pyo +#usr/lib/python2.7/types.py +usr/lib/python2.7/types.pyc +#usr/lib/python2.7/types.pyo +#usr/lib/python2.7/unittest +#usr/lib/python2.7/unittest/__init__.py +usr/lib/python2.7/unittest/__init__.pyc +#usr/lib/python2.7/unittest/__init__.pyo +#usr/lib/python2.7/unittest/__main__.py +usr/lib/python2.7/unittest/__main__.pyc +#usr/lib/python2.7/unittest/__main__.pyo +#usr/lib/python2.7/unittest/case.py +usr/lib/python2.7/unittest/case.pyc +#usr/lib/python2.7/unittest/case.pyo +#usr/lib/python2.7/unittest/loader.py +usr/lib/python2.7/unittest/loader.pyc +#usr/lib/python2.7/unittest/loader.pyo +#usr/lib/python2.7/unittest/main.py +usr/lib/python2.7/unittest/main.pyc +#usr/lib/python2.7/unittest/main.pyo +#usr/lib/python2.7/unittest/result.py +usr/lib/python2.7/unittest/result.pyc +#usr/lib/python2.7/unittest/result.pyo +#usr/lib/python2.7/unittest/runner.py +usr/lib/python2.7/unittest/runner.pyc +#usr/lib/python2.7/unittest/runner.pyo +#usr/lib/python2.7/unittest/signals.py +usr/lib/python2.7/unittest/signals.pyc +#usr/lib/python2.7/unittest/signals.pyo +#usr/lib/python2.7/unittest/suite.py +usr/lib/python2.7/unittest/suite.pyc +#usr/lib/python2.7/unittest/suite.pyo +#usr/lib/python2.7/unittest/test +#usr/lib/python2.7/unittest/test/__init__.py +#usr/lib/python2.7/unittest/test/__init__.pyc +#usr/lib/python2.7/unittest/test/__init__.pyo +#usr/lib/python2.7/unittest/test/dummy.py +#usr/lib/python2.7/unittest/test/dummy.pyc +#usr/lib/python2.7/unittest/test/dummy.pyo +#usr/lib/python2.7/unittest/test/support.py +#usr/lib/python2.7/unittest/test/support.pyc +#usr/lib/python2.7/unittest/test/support.pyo +#usr/lib/python2.7/unittest/test/test_assertions.py +#usr/lib/python2.7/unittest/test/test_assertions.pyc +#usr/lib/python2.7/unittest/test/test_assertions.pyo +#usr/lib/python2.7/unittest/test/test_break.py +#usr/lib/python2.7/unittest/test/test_break.pyc +#usr/lib/python2.7/unittest/test/test_break.pyo +#usr/lib/python2.7/unittest/test/test_case.py +#usr/lib/python2.7/unittest/test/test_case.pyc +#usr/lib/python2.7/unittest/test/test_case.pyo +#usr/lib/python2.7/unittest/test/test_discovery.py +#usr/lib/python2.7/unittest/test/test_discovery.pyc +#usr/lib/python2.7/unittest/test/test_discovery.pyo +#usr/lib/python2.7/unittest/test/test_functiontestcase.py +#usr/lib/python2.7/unittest/test/test_functiontestcase.pyc +#usr/lib/python2.7/unittest/test/test_functiontestcase.pyo +#usr/lib/python2.7/unittest/test/test_loader.py +#usr/lib/python2.7/unittest/test/test_loader.pyc +#usr/lib/python2.7/unittest/test/test_loader.pyo +#usr/lib/python2.7/unittest/test/test_program.py +#usr/lib/python2.7/unittest/test/test_program.pyc +#usr/lib/python2.7/unittest/test/test_program.pyo +#usr/lib/python2.7/unittest/test/test_result.py +#usr/lib/python2.7/unittest/test/test_result.pyc +#usr/lib/python2.7/unittest/test/test_result.pyo +#usr/lib/python2.7/unittest/test/test_runner.py +#usr/lib/python2.7/unittest/test/test_runner.pyc +#usr/lib/python2.7/unittest/test/test_runner.pyo +#usr/lib/python2.7/unittest/test/test_setups.py +#usr/lib/python2.7/unittest/test/test_setups.pyc +#usr/lib/python2.7/unittest/test/test_setups.pyo +#usr/lib/python2.7/unittest/test/test_skipping.py +#usr/lib/python2.7/unittest/test/test_skipping.pyc +#usr/lib/python2.7/unittest/test/test_skipping.pyo +#usr/lib/python2.7/unittest/test/test_suite.py +#usr/lib/python2.7/unittest/test/test_suite.pyc +#usr/lib/python2.7/unittest/test/test_suite.pyo +#usr/lib/python2.7/unittest/util.py +#usr/lib/python2.7/unittest/util.pyc +#usr/lib/python2.7/unittest/util.pyo +#usr/lib/python2.7/urllib.py +usr/lib/python2.7/urllib.pyc +#usr/lib/python2.7/urllib.pyo +#usr/lib/python2.7/urllib2.py +usr/lib/python2.7/urllib2.pyc +#usr/lib/python2.7/urllib2.pyo +#usr/lib/python2.7/urlparse.py +usr/lib/python2.7/urlparse.pyc +#usr/lib/python2.7/urlparse.pyo +#usr/lib/python2.7/user.py +usr/lib/python2.7/user.pyc +#usr/lib/python2.7/user.pyo +#usr/lib/python2.7/uu.py +usr/lib/python2.7/uu.pyc +#usr/lib/python2.7/uu.pyo +#usr/lib/python2.7/uuid.py +usr/lib/python2.7/uuid.pyc +#usr/lib/python2.7/uuid.pyo +#usr/lib/python2.7/warnings.py +usr/lib/python2.7/warnings.pyc +#usr/lib/python2.7/warnings.pyo +#usr/lib/python2.7/wave.py +usr/lib/python2.7/wave.pyc +#usr/lib/python2.7/wave.pyo +#usr/lib/python2.7/weakref.py +usr/lib/python2.7/weakref.pyc +#usr/lib/python2.7/weakref.pyo +#usr/lib/python2.7/webbrowser.py +usr/lib/python2.7/webbrowser.pyc +#usr/lib/python2.7/webbrowser.pyo +#usr/lib/python2.7/whichdb.py +usr/lib/python2.7/whichdb.pyc +#usr/lib/python2.7/whichdb.pyo +#usr/lib/python2.7/wsgiref +#usr/lib/python2.7/wsgiref.egg-info +#usr/lib/python2.7/wsgiref/__init__.py +usr/lib/python2.7/wsgiref/__init__.pyc +#usr/lib/python2.7/wsgiref/__init__.pyo +#usr/lib/python2.7/wsgiref/handlers.py +usr/lib/python2.7/wsgiref/handlers.pyc +#usr/lib/python2.7/wsgiref/handlers.pyo +#usr/lib/python2.7/wsgiref/headers.py +usr/lib/python2.7/wsgiref/headers.pyc +#usr/lib/python2.7/wsgiref/headers.pyo +#usr/lib/python2.7/wsgiref/simple_server.py +usr/lib/python2.7/wsgiref/simple_server.pyc +#usr/lib/python2.7/wsgiref/simple_server.pyo +#usr/lib/python2.7/wsgiref/util.py +usr/lib/python2.7/wsgiref/util.pyc +#usr/lib/python2.7/wsgiref/util.pyo +#usr/lib/python2.7/wsgiref/validate.py +usr/lib/python2.7/wsgiref/validate.pyc +#usr/lib/python2.7/wsgiref/validate.pyo +#usr/lib/python2.7/xdrlib.py +usr/lib/python2.7/xdrlib.pyc +#usr/lib/python2.7/xdrlib.pyo +#usr/lib/python2.7/xml +#usr/lib/python2.7/xml/__init__.py +usr/lib/python2.7/xml/__init__.pyc +#usr/lib/python2.7/xml/__init__.pyo +#usr/lib/python2.7/xml/dom +#usr/lib/python2.7/xml/dom/NodeFilter.py +usr/lib/python2.7/xml/dom/NodeFilter.pyc +#usr/lib/python2.7/xml/dom/NodeFilter.pyo +#usr/lib/python2.7/xml/dom/__init__.py +usr/lib/python2.7/xml/dom/__init__.pyc +#usr/lib/python2.7/xml/dom/__init__.pyo +#usr/lib/python2.7/xml/dom/domreg.py +usr/lib/python2.7/xml/dom/domreg.pyc +#usr/lib/python2.7/xml/dom/domreg.pyo +#usr/lib/python2.7/xml/dom/expatbuilder.py +usr/lib/python2.7/xml/dom/expatbuilder.pyc +#usr/lib/python2.7/xml/dom/expatbuilder.pyo +#usr/lib/python2.7/xml/dom/minicompat.py +usr/lib/python2.7/xml/dom/minicompat.pyc +#usr/lib/python2.7/xml/dom/minicompat.pyo +#usr/lib/python2.7/xml/dom/minidom.py +usr/lib/python2.7/xml/dom/minidom.pyc +#usr/lib/python2.7/xml/dom/minidom.pyo +#usr/lib/python2.7/xml/dom/pulldom.py +usr/lib/python2.7/xml/dom/pulldom.pyc +#usr/lib/python2.7/xml/dom/pulldom.pyo +#usr/lib/python2.7/xml/dom/xmlbuilder.py +usr/lib/python2.7/xml/dom/xmlbuilder.pyc +#usr/lib/python2.7/xml/dom/xmlbuilder.pyo +#usr/lib/python2.7/xml/etree +#usr/lib/python2.7/xml/etree/ElementInclude.py +usr/lib/python2.7/xml/etree/ElementInclude.pyc +#usr/lib/python2.7/xml/etree/ElementInclude.pyo +#usr/lib/python2.7/xml/etree/ElementPath.py +usr/lib/python2.7/xml/etree/ElementPath.pyc +#usr/lib/python2.7/xml/etree/ElementPath.pyo +#usr/lib/python2.7/xml/etree/ElementTree.py +usr/lib/python2.7/xml/etree/ElementTree.pyc +#usr/lib/python2.7/xml/etree/ElementTree.pyo +#usr/lib/python2.7/xml/etree/__init__.py +usr/lib/python2.7/xml/etree/__init__.pyc +#usr/lib/python2.7/xml/etree/__init__.pyo +#usr/lib/python2.7/xml/etree/cElementTree.py +usr/lib/python2.7/xml/etree/cElementTree.pyc +#usr/lib/python2.7/xml/etree/cElementTree.pyo +#usr/lib/python2.7/xml/parsers +#usr/lib/python2.7/xml/parsers/__init__.py +usr/lib/python2.7/xml/parsers/__init__.pyc +#usr/lib/python2.7/xml/parsers/__init__.pyo +#usr/lib/python2.7/xml/parsers/expat.py +usr/lib/python2.7/xml/parsers/expat.pyc +#usr/lib/python2.7/xml/parsers/expat.pyo +#usr/lib/python2.7/xml/sax +#usr/lib/python2.7/xml/sax/__init__.py +usr/lib/python2.7/xml/sax/__init__.pyc +#usr/lib/python2.7/xml/sax/__init__.pyo +#usr/lib/python2.7/xml/sax/_exceptions.py +usr/lib/python2.7/xml/sax/_exceptions.pyc +#usr/lib/python2.7/xml/sax/_exceptions.pyo +#usr/lib/python2.7/xml/sax/expatreader.py +usr/lib/python2.7/xml/sax/expatreader.pyc +#usr/lib/python2.7/xml/sax/expatreader.pyo +#usr/lib/python2.7/xml/sax/handler.py +usr/lib/python2.7/xml/sax/handler.pyc +#usr/lib/python2.7/xml/sax/handler.pyo +#usr/lib/python2.7/xml/sax/saxutils.py +usr/lib/python2.7/xml/sax/saxutils.pyc +#usr/lib/python2.7/xml/sax/saxutils.pyo +#usr/lib/python2.7/xml/sax/xmlreader.py +usr/lib/python2.7/xml/sax/xmlreader.pyc +#usr/lib/python2.7/xml/sax/xmlreader.pyo +#usr/lib/python2.7/xmllib.py +usr/lib/python2.7/xmllib.pyc +#usr/lib/python2.7/xmllib.pyo +#usr/lib/python2.7/xmlrpclib.py +usr/lib/python2.7/xmlrpclib.pyc +#usr/lib/python2.7/xmlrpclib.pyo +#usr/lib/python2.7/zipfile.py +usr/lib/python2.7/zipfile.pyc +#usr/lib/python2.7/zipfile.pyo +#usr/share/man/man1/python2.7.1 diff --git a/config/rootfiles/common/python-setuptools b/config/rootfiles/common/python-setuptools index 6000f85..15b22ac 100644 --- a/config/rootfiles/common/python-setuptools +++ b/config/rootfiles/common/python-setuptools @@ -1,87 +1,5 @@ #usr/bin/easy_install -#usr/bin/easy_install-2.4 -#usr/lib/python2.4/site-packages/easy-install.pth -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/EGG-INFO -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/EGG-INFO/PKG-INFO -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/EGG-INFO/SOURCES.txt -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/EGG-INFO/dependency_links.txt -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/EGG-INFO/entry_points.txt -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/EGG-INFO/not-zip-safe -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/EGG-INFO/top_level.txt -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/easy_install.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/easy_install.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/__init__.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/__init__.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/archive_util.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/archive_util.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/cli.exe -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/__init__.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/__init__.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/alias.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/alias.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/bdist_egg.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/bdist_egg.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/bdist_rpm.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/bdist_rpm.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/bdist_wininst.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/bdist_wininst.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/build_ext.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/build_ext.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/build_py.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/build_py.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/develop.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/develop.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/easy_install.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/easy_install.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/egg_info.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/egg_info.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/install.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/install.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/install_egg_info.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/install_egg_info.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/install_lib.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/install_lib.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/install_scripts.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/install_scripts.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/register.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/register.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/rotate.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/rotate.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/saveopts.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/saveopts.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/sdist.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/sdist.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/setopt.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/setopt.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/test.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/test.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/upload.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/upload.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/depends.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/depends.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/dist.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/dist.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/extension.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/extension.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/gui.exe -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/package_index.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/package_index.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/sandbox.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/sandbox.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/tests -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/tests/__init__.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/tests/__init__.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/tests/doctest.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/tests/doctest.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/tests/test_packageindex.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/tests/test_packageindex.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/tests/test_resources.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/tests/test_resources.pyc -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/site.py -#usr/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/site.pyc -#usr/lib/python2.4/site-packages/setuptools.pth +#usr/bin/easy_install-2.7 +#usr/lib/python2.7/site-packages/easy-install.pth +#usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg +#usr/lib/python2.7/site-packages/setuptools.pth diff --git a/config/rootfiles/common/reiser4progs b/config/rootfiles/common/reiser4progs index 668e709..e01e4f8 100644 --- a/config/rootfiles/common/reiser4progs +++ b/config/rootfiles/common/reiser4progs @@ -40,7 +40,6 @@ sbin/mkfs.reiser4 #usr/include/repair/format.h #usr/include/repair/item.h #usr/include/repair/journal.h -#usr/include/repair/key.h #usr/include/repair/librepair.h #usr/include/repair/lost_found.h #usr/include/repair/master.h @@ -49,26 +48,28 @@ sbin/mkfs.reiser4 #usr/include/repair/oid.h #usr/include/repair/place.h #usr/include/repair/plugin.h +#usr/include/repair/pset.h #usr/include/repair/repair.h #usr/include/repair/semantic.h #usr/include/repair/status.h #usr/include/repair/tree.h #usr/include/repair/twig_scan.h -usr/lib/libreiser4-1.0.so.5 -usr/lib/libreiser4-1.0.so.5.0.0 -usr/lib/libreiser4-minimal-1.0.so.5 -usr/lib/libreiser4-minimal-1.0.so.5.0.0 +usr/lib/libreiser4-1.0.so.6 +usr/lib/libreiser4-1.0.so.6.0.0 +usr/lib/libreiser4-minimal-1.0.so.6 +usr/lib/libreiser4-minimal-1.0.so.6.0.0 #usr/lib/libreiser4-minimal.a #usr/lib/libreiser4-minimal.la usr/lib/libreiser4-minimal.so #usr/lib/libreiser4.a #usr/lib/libreiser4.la usr/lib/libreiser4.so -usr/lib/librepair-1.0.so.5 -usr/lib/librepair-1.0.so.5.0.0 +usr/lib/librepair-1.0.so.6 +usr/lib/librepair-1.0.so.6.0.0 #usr/lib/librepair.a #usr/lib/librepair.la usr/lib/librepair.so +#usr/man/man8 #usr/man/man8/debugfs.reiser4.8 #usr/man/man8/fsck.reiser4.8 #usr/man/man8/measurefs.reiser4.8 diff --git a/config/rootfiles/common/reiserfsprogs b/config/rootfiles/common/reiserfsprogs index 266c423..f5cfca2 100644 --- a/config/rootfiles/common/reiserfsprogs +++ b/config/rootfiles/common/reiserfsprogs @@ -5,8 +5,8 @@ sbin/mkreiserfs sbin/reiserfsck sbin/reiserfstune sbin/resize_reiserfs -#usr/man/man8/debugreiserfs.8 -#usr/man/man8/mkreiserfs.8 -#usr/man/man8/reiserfsck.8 -#usr/man/man8/reiserfstune.8 -#usr/man/man8/resize_reiserfs.8 +#usr/share/man/man8/debugreiserfs.8 +#usr/share/man/man8/mkreiserfs.8 +#usr/share/man/man8/reiserfsck.8 +#usr/share/man/man8/reiserfstune.8 +#usr/share/man/man8/resize_reiserfs.8 diff --git a/config/rootfiles/common/rp-pppoe b/config/rootfiles/common/rp-pppoe deleted file mode 100644 index 3a77732..0000000 --- a/config/rootfiles/common/rp-pppoe +++ /dev/null @@ -1,33 +0,0 @@ -#etc/ppp/firewall-masq -#etc/ppp/firewall-standalone -#etc/ppp/plugins -#etc/ppp/plugins/README -#etc/ppp/pppoe-server-options -etc/ppp/pppoe.conf -#usr/man/man5/pppoe.conf.5 -#usr/man/man8/pppoe-connect.8 -#usr/man/man8/pppoe-relay.8 -#usr/man/man8/pppoe-server.8 -#usr/man/man8/pppoe-setup.8 -#usr/man/man8/pppoe-sniff.8 -#usr/man/man8/pppoe-start.8 -#usr/man/man8/pppoe-status.8 -#usr/man/man8/pppoe-stop.8 -#usr/man/man8/pppoe.8 -usr/sbin/pppoe -usr/sbin/pppoe-connect -#usr/sbin/pppoe-relay -#usr/sbin/pppoe-server -usr/sbin/pppoe-setup -usr/sbin/pppoe-sniff -usr/sbin/pppoe-start -usr/sbin/pppoe-status -usr/sbin/pppoe-stop -#usr/share/doc/rp-pppoe-3.8 -#usr/share/doc/rp-pppoe-3.8/CHANGES -#usr/share/doc/rp-pppoe-3.8/HOW-TO-CONNECT -#usr/share/doc/rp-pppoe-3.8/KERNEL-MODE-PPPOE -#usr/share/doc/rp-pppoe-3.8/LICENSE -#usr/share/doc/rp-pppoe-3.8/README -#usr/share/doc/rp-pppoe-3.8/SERVPOET -#usr/share/doc/rp-pppoe-3.8/pap-secrets diff --git a/config/rootfiles/common/smartmontools b/config/rootfiles/common/smartmontools index 574dd0a..31a37f0 100644 --- a/config/rootfiles/common/smartmontools +++ b/config/rootfiles/common/smartmontools @@ -4,22 +4,22 @@ #usr/etc/smartd.conf usr/sbin/smartctl #usr/sbin/smartd -#usr/share/doc/smartmontools-5.39 -#usr/share/doc/smartmontools-5.39/AUTHORS -#usr/share/doc/smartmontools-5.39/CHANGELOG -#usr/share/doc/smartmontools-5.39/COPYING -#usr/share/doc/smartmontools-5.39/INSTALL -#usr/share/doc/smartmontools-5.39/NEWS -#usr/share/doc/smartmontools-5.39/README -#usr/share/doc/smartmontools-5.39/TODO -#usr/share/doc/smartmontools-5.39/WARNINGS -#usr/share/doc/smartmontools-5.39/examplescripts -#usr/share/doc/smartmontools-5.39/examplescripts/Example1 -#usr/share/doc/smartmontools-5.39/examplescripts/Example2 -#usr/share/doc/smartmontools-5.39/examplescripts/Example3 -#usr/share/doc/smartmontools-5.39/examplescripts/Example4 -#usr/share/doc/smartmontools-5.39/examplescripts/README -#usr/share/doc/smartmontools-5.39/smartd.conf +#usr/share/doc/smartmontools-5.39.1 +#usr/share/doc/smartmontools-5.39.1/AUTHORS +#usr/share/doc/smartmontools-5.39.1/CHANGELOG +#usr/share/doc/smartmontools-5.39.1/COPYING +#usr/share/doc/smartmontools-5.39.1/INSTALL +#usr/share/doc/smartmontools-5.39.1/NEWS +#usr/share/doc/smartmontools-5.39.1/README +#usr/share/doc/smartmontools-5.39.1/TODO +#usr/share/doc/smartmontools-5.39.1/WARNINGS +#usr/share/doc/smartmontools-5.39.1/examplescripts +#usr/share/doc/smartmontools-5.39.1/examplescripts/Example1 +#usr/share/doc/smartmontools-5.39.1/examplescripts/Example2 +#usr/share/doc/smartmontools-5.39.1/examplescripts/Example3 +#usr/share/doc/smartmontools-5.39.1/examplescripts/Example4 +#usr/share/doc/smartmontools-5.39.1/examplescripts/README +#usr/share/doc/smartmontools-5.39.1/smartd.conf #usr/man/man5/smartd.conf.5 #usr/man/man8/smartctl.8 #usr/man/man8/smartd.8 diff --git a/config/rootfiles/common/snort b/config/rootfiles/common/snort index ac635dc..91970dd 100644 --- a/config/rootfiles/common/snort +++ b/config/rootfiles/common/snort @@ -1,648 +1,10 @@ #etc/snort -#etc/snort/docs -#etc/snort/docs/100000100.txt -#etc/snort/docs/100000101.txt -#etc/snort/docs/100000102.txt -#etc/snort/docs/100000103.txt -#etc/snort/docs/100000104.txt -#etc/snort/docs/100000105.txt -#etc/snort/docs/100000106.txt -#etc/snort/docs/100000107.txt -#etc/snort/docs/100000108.txt -#etc/snort/docs/100000109.txt -#etc/snort/docs/100000110.txt -#etc/snort/docs/100000111.txt -#etc/snort/docs/100000112.txt -#etc/snort/docs/100000113.txt -#etc/snort/docs/100000114.txt -#etc/snort/docs/100000115.txt -#etc/snort/docs/100000116.txt -#etc/snort/docs/100000117.txt -#etc/snort/docs/100000118.txt -#etc/snort/docs/100000119.txt -#etc/snort/docs/100000121.txt -#etc/snort/docs/100000122.txt -#etc/snort/docs/100000123.txt -#etc/snort/docs/100000124.txt -#etc/snort/docs/100000125.txt -#etc/snort/docs/100000126.txt -#etc/snort/docs/100000127.txt -#etc/snort/docs/100000128.txt -#etc/snort/docs/100000129.txt -#etc/snort/docs/100000130.txt -#etc/snort/docs/100000131.txt -#etc/snort/docs/100000132.txt -#etc/snort/docs/100000133.txt -#etc/snort/docs/100000134.txt -#etc/snort/docs/100000135.txt -#etc/snort/docs/100000136.txt -#etc/snort/docs/100000138.txt -#etc/snort/docs/100000139.txt -#etc/snort/docs/100000140.txt -#etc/snort/docs/100000141.txt -#etc/snort/docs/100000142.txt -#etc/snort/docs/100000143.txt -#etc/snort/docs/100000144.txt -#etc/snort/docs/100000145.txt -#etc/snort/docs/100000146.txt -#etc/snort/docs/100000148.txt -#etc/snort/docs/100000152.txt -#etc/snort/docs/100000153.txt -#etc/snort/docs/100000154.txt -#etc/snort/docs/100000155.txt -#etc/snort/docs/100000158.txt -#etc/snort/docs/100000159.txt -#etc/snort/docs/100000160.txt -#etc/snort/docs/100000161.txt -#etc/snort/docs/100000162.txt -#etc/snort/docs/100000163.txt -#etc/snort/docs/100000164.txt -#etc/snort/docs/100000165.txt -#etc/snort/docs/100000166.txt -#etc/snort/docs/100000167.txt -#etc/snort/docs/100000168.txt -#etc/snort/docs/100000169.txt -#etc/snort/docs/100000170.txt -#etc/snort/docs/100000171.txt -#etc/snort/docs/100000172.txt -#etc/snort/docs/100000173.txt -#etc/snort/docs/100000174.txt -#etc/snort/docs/100000175.txt -#etc/snort/docs/100000176.txt -#etc/snort/docs/100000177.txt -#etc/snort/docs/100000178.txt -#etc/snort/docs/100000179.txt -#etc/snort/docs/100000226.txt -#etc/snort/docs/100000315.txt -#etc/snort/docs/100000316.txt -#etc/snort/docs/100000317.txt -#etc/snort/docs/100000318.txt -#etc/snort/docs/100000319.txt -#etc/snort/docs/100000320.txt -#etc/snort/docs/100000321.txt -#etc/snort/docs/100000322.txt -#etc/snort/docs/100000323.txt -#etc/snort/docs/100000324.txt -#etc/snort/docs/100000325.txt -#etc/snort/docs/100000326.txt -#etc/snort/docs/100000327.txt -#etc/snort/docs/100000328.txt -#etc/snort/docs/100000329.txt -#etc/snort/docs/100000330.txt -#etc/snort/docs/100000331.txt -#etc/snort/docs/100000332.txt -#etc/snort/docs/100000333.txt -#etc/snort/docs/100000334.txt -#etc/snort/docs/100000335.txt -#etc/snort/docs/100000336.txt -#etc/snort/docs/100000337.txt -#etc/snort/docs/100000338.txt -#etc/snort/docs/100000339.txt -#etc/snort/docs/100000340.txt -#etc/snort/docs/100000341.txt -#etc/snort/docs/100000342.txt -#etc/snort/docs/100000343.txt -#etc/snort/docs/100000344.txt -#etc/snort/docs/100000345.txt -#etc/snort/docs/100000346.txt -#etc/snort/docs/100000347.txt -#etc/snort/docs/100000348.txt -#etc/snort/docs/100000349.txt -#etc/snort/docs/100000350.txt -#etc/snort/docs/100000351.txt -#etc/snort/docs/100000352.txt -#etc/snort/docs/100000353.txt -#etc/snort/docs/100000354.txt -#etc/snort/docs/100000355.txt -#etc/snort/docs/100000356.txt -#etc/snort/docs/100000357.txt -#etc/snort/docs/100000358.txt -#etc/snort/docs/100000359.txt -#etc/snort/docs/100000360.txt -#etc/snort/docs/100000361.txt -#etc/snort/docs/100000362.txt -#etc/snort/docs/100000363.txt -#etc/snort/docs/100000364.txt -#etc/snort/docs/100000365.txt -#etc/snort/docs/100000366.txt -#etc/snort/docs/100000367.txt -#etc/snort/docs/100000368.txt -#etc/snort/docs/100000369.txt -#etc/snort/docs/100000370.txt -#etc/snort/docs/100000371.txt -#etc/snort/docs/100000372.txt -#etc/snort/docs/100000373.txt -#etc/snort/docs/100000374.txt -#etc/snort/docs/100000375.txt -#etc/snort/docs/100000376.txt -#etc/snort/docs/100000377.txt -#etc/snort/docs/100000378.txt -#etc/snort/docs/100000379.txt -#etc/snort/docs/100000380.txt -#etc/snort/docs/100000381.txt -#etc/snort/docs/100000382.txt -#etc/snort/docs/100000383.txt -#etc/snort/docs/100000384.txt -#etc/snort/docs/100000385.txt -#etc/snort/docs/100000386.txt -#etc/snort/docs/100000387.txt -#etc/snort/docs/100000388.txt -#etc/snort/docs/100000389.txt -#etc/snort/docs/100000390.txt -#etc/snort/docs/100000391.txt -#etc/snort/docs/100000392.txt -#etc/snort/docs/100000393.txt -#etc/snort/docs/100000394.txt -#etc/snort/docs/100000395.txt -#etc/snort/docs/100000396.txt -#etc/snort/docs/100000397.txt -#etc/snort/docs/100000398.txt -#etc/snort/docs/100000399.txt -#etc/snort/docs/100000400.txt -#etc/snort/docs/100000401.txt -#etc/snort/docs/100000402.txt -#etc/snort/docs/100000403.txt -#etc/snort/docs/100000404.txt -#etc/snort/docs/100000405.txt -#etc/snort/docs/100000406.txt -#etc/snort/docs/100000407.txt -#etc/snort/docs/100000408.txt -#etc/snort/docs/100000409.txt -#etc/snort/docs/100000410.txt -#etc/snort/docs/100000411.txt -#etc/snort/docs/100000412.txt -#etc/snort/docs/100000413.txt -#etc/snort/docs/100000414.txt -#etc/snort/docs/100000415.txt -#etc/snort/docs/100000416.txt -#etc/snort/docs/100000417.txt -#etc/snort/docs/100000418.txt -#etc/snort/docs/100000419.txt -#etc/snort/docs/100000420.txt -#etc/snort/docs/100000421.txt -#etc/snort/docs/100000422.txt -#etc/snort/docs/100000423.txt -#etc/snort/docs/100000424.txt -#etc/snort/docs/100000425.txt -#etc/snort/docs/100000426.txt -#etc/snort/docs/100000430.txt -#etc/snort/docs/100000431.txt -#etc/snort/docs/100000432.txt -#etc/snort/docs/100000433.txt -#etc/snort/docs/100000434.txt -#etc/snort/docs/100000435.txt -#etc/snort/docs/100000436.txt -#etc/snort/docs/100000437.txt -#etc/snort/docs/100000438.txt -#etc/snort/docs/100000439.txt -#etc/snort/docs/100000440.txt -#etc/snort/docs/100000441.txt -#etc/snort/docs/100000442.txt -#etc/snort/docs/100000443.txt -#etc/snort/docs/100000444.txt -#etc/snort/docs/100000445.txt -#etc/snort/docs/100000446.txt -#etc/snort/docs/100000448.txt -#etc/snort/docs/100000449.txt -#etc/snort/docs/100000450.txt -#etc/snort/docs/100000451.txt -#etc/snort/docs/100000452.txt -#etc/snort/docs/100000453.txt -#etc/snort/docs/100000454.txt -#etc/snort/docs/100000455.txt -#etc/snort/docs/100000456.txt -#etc/snort/docs/100000457.txt -#etc/snort/docs/100000458.txt -#etc/snort/docs/100000459.txt -#etc/snort/docs/100000461.txt -#etc/snort/docs/100000462.txt -#etc/snort/docs/100000463.txt -#etc/snort/docs/100000464.txt -#etc/snort/docs/100000465.txt -#etc/snort/docs/100000466.txt -#etc/snort/docs/100000467.txt -#etc/snort/docs/100000468.txt -#etc/snort/docs/100000469.txt -#etc/snort/docs/100000470.txt -#etc/snort/docs/100000471.txt -#etc/snort/docs/100000472.txt -#etc/snort/docs/100000473.txt -#etc/snort/docs/100000474.txt -#etc/snort/docs/100000475.txt -#etc/snort/docs/100000476.txt -#etc/snort/docs/100000477.txt -#etc/snort/docs/100000478.txt -#etc/snort/docs/100000479.txt -#etc/snort/docs/100000480.txt -#etc/snort/docs/100000481.txt -#etc/snort/docs/100000482.txt -#etc/snort/docs/100000483.txt -#etc/snort/docs/100000484.txt -#etc/snort/docs/100000485.txt -#etc/snort/docs/100000486.txt -#etc/snort/docs/100000487.txt -#etc/snort/docs/100000488.txt -#etc/snort/docs/100000489.txt -#etc/snort/docs/100000490.txt -#etc/snort/docs/100000491.txt -#etc/snort/docs/100000492.txt -#etc/snort/docs/100000493.txt -#etc/snort/docs/100000494.txt -#etc/snort/docs/100000495.txt -#etc/snort/docs/100000496.txt -#etc/snort/docs/100000497.txt -#etc/snort/docs/100000498.txt -#etc/snort/docs/100000499.txt -#etc/snort/docs/100000500.txt -#etc/snort/docs/100000501.txt -#etc/snort/docs/100000502.txt -#etc/snort/docs/100000503.txt -#etc/snort/docs/100000504.txt -#etc/snort/docs/100000505.txt -#etc/snort/docs/100000506.txt -#etc/snort/docs/100000507.txt -#etc/snort/docs/100000508.txt -#etc/snort/docs/100000509.txt -#etc/snort/docs/100000510.txt -#etc/snort/docs/100000511.txt -#etc/snort/docs/100000512.txt -#etc/snort/docs/100000513.txt -#etc/snort/docs/100000514.txt -#etc/snort/docs/100000515.txt -#etc/snort/docs/100000516.txt -#etc/snort/docs/100000517.txt -#etc/snort/docs/100000518.txt -#etc/snort/docs/100000519.txt -#etc/snort/docs/100000520.txt -#etc/snort/docs/100000521.txt -#etc/snort/docs/100000522.txt -#etc/snort/docs/100000523.txt -#etc/snort/docs/100000524.txt -#etc/snort/docs/100000525.txt -#etc/snort/docs/100000526.txt -#etc/snort/docs/100000527.txt -#etc/snort/docs/100000528.txt -#etc/snort/docs/100000529.txt -#etc/snort/docs/100000530.txt -#etc/snort/docs/100000531.txt -#etc/snort/docs/100000532.txt -#etc/snort/docs/100000533.txt -#etc/snort/docs/100000534.txt -#etc/snort/docs/100000535.txt -#etc/snort/docs/100000536.txt -#etc/snort/docs/100000537.txt -#etc/snort/docs/100000538.txt -#etc/snort/docs/100000539.txt -#etc/snort/docs/100000540.txt -#etc/snort/docs/100000541.txt -#etc/snort/docs/100000542.txt -#etc/snort/docs/100000543.txt -#etc/snort/docs/100000544.txt -#etc/snort/docs/100000545.txt -#etc/snort/docs/100000546.txt -#etc/snort/docs/100000547.txt -#etc/snort/docs/100000548.txt -#etc/snort/docs/100000549.txt -#etc/snort/docs/100000550.txt -#etc/snort/docs/100000551.txt -#etc/snort/docs/100000552.txt -#etc/snort/docs/100000553.txt -#etc/snort/docs/100000554.txt -#etc/snort/docs/100000555.txt -#etc/snort/docs/100000556.txt -#etc/snort/docs/100000557.txt -#etc/snort/docs/100000558.txt -#etc/snort/docs/100000559.txt -#etc/snort/docs/100000560.txt -#etc/snort/docs/100000561.txt -#etc/snort/docs/100000562.txt -#etc/snort/docs/100000563.txt -#etc/snort/docs/100000564.txt -#etc/snort/docs/100000565.txt -#etc/snort/docs/100000566.txt -#etc/snort/docs/100000567.txt -#etc/snort/docs/100000568.txt -#etc/snort/docs/100000569.txt -#etc/snort/docs/100000570.txt -#etc/snort/docs/100000571.txt -#etc/snort/docs/100000572.txt -#etc/snort/docs/100000573.txt -#etc/snort/docs/100000574.txt -#etc/snort/docs/100000575.txt -#etc/snort/docs/100000576.txt -#etc/snort/docs/100000577.txt -#etc/snort/docs/100000578.txt -#etc/snort/docs/100000579.txt -#etc/snort/docs/100000580.txt -#etc/snort/docs/100000581.txt -#etc/snort/docs/100000582.txt -#etc/snort/docs/100000583.txt -#etc/snort/docs/100000584.txt -#etc/snort/docs/100000585.txt -#etc/snort/docs/100000586.txt -#etc/snort/docs/100000587.txt -#etc/snort/docs/100000588.txt -#etc/snort/docs/100000589.txt -#etc/snort/docs/100000590.txt -#etc/snort/docs/100000591.txt -#etc/snort/docs/100000592.txt -#etc/snort/docs/100000593.txt -#etc/snort/docs/100000594.txt -#etc/snort/docs/100000595.txt -#etc/snort/docs/100000596.txt -#etc/snort/docs/100000597.txt -#etc/snort/docs/100000598.txt -#etc/snort/docs/100000599.txt -#etc/snort/docs/100000600.txt -#etc/snort/docs/100000601.txt -#etc/snort/docs/100000602.txt -#etc/snort/docs/100000603.txt -#etc/snort/docs/100000604.txt -#etc/snort/docs/100000605.txt -#etc/snort/docs/100000606.txt -#etc/snort/docs/100000607.txt -#etc/snort/docs/100000608.txt -#etc/snort/docs/100000609.txt -#etc/snort/docs/100000610.txt -#etc/snort/docs/100000611.txt -#etc/snort/docs/100000612.txt -#etc/snort/docs/100000613.txt -#etc/snort/docs/100000614.txt -#etc/snort/docs/100000615.txt -#etc/snort/docs/100000616.txt -#etc/snort/docs/100000617.txt -#etc/snort/docs/100000618.txt -#etc/snort/docs/100000619.txt -#etc/snort/docs/100000620.txt -#etc/snort/docs/100000621.txt -#etc/snort/docs/100000622.txt -#etc/snort/docs/100000623.txt -#etc/snort/docs/100000624.txt -#etc/snort/docs/100000625.txt -#etc/snort/docs/100000626.txt -#etc/snort/docs/100000627.txt -#etc/snort/docs/100000628.txt -#etc/snort/docs/100000629.txt -#etc/snort/docs/100000630.txt -#etc/snort/docs/100000631.txt -#etc/snort/docs/100000632.txt -#etc/snort/docs/100000633.txt -#etc/snort/docs/100000634.txt -#etc/snort/docs/100000635.txt -#etc/snort/docs/100000636.txt -#etc/snort/docs/100000637.txt -#etc/snort/docs/100000638.txt -#etc/snort/docs/100000639.txt -#etc/snort/docs/100000640.txt -#etc/snort/docs/100000641.txt -#etc/snort/docs/100000642.txt -#etc/snort/docs/100000643.txt -#etc/snort/docs/100000644.txt -#etc/snort/docs/100000645.txt -#etc/snort/docs/100000646.txt -#etc/snort/docs/100000647.txt -#etc/snort/docs/100000648.txt -#etc/snort/docs/100000649.txt -#etc/snort/docs/100000650.txt -#etc/snort/docs/100000651.txt -#etc/snort/docs/100000652.txt -#etc/snort/docs/100000653.txt -#etc/snort/docs/100000654.txt -#etc/snort/docs/100000655.txt -#etc/snort/docs/100000656.txt -#etc/snort/docs/100000657.txt -#etc/snort/docs/100000658.txt -#etc/snort/docs/100000659.txt -#etc/snort/docs/100000660.txt -#etc/snort/docs/100000661.txt -#etc/snort/docs/100000662.txt -#etc/snort/docs/100000663.txt -#etc/snort/docs/100000664.txt -#etc/snort/docs/100000665.txt -#etc/snort/docs/100000666.txt -#etc/snort/docs/100000667.txt -#etc/snort/docs/100000668.txt -#etc/snort/docs/100000669.txt -#etc/snort/docs/100000670.txt -#etc/snort/docs/100000671.txt -#etc/snort/docs/100000672.txt -#etc/snort/docs/100000673.txt -#etc/snort/docs/100000674.txt -#etc/snort/docs/100000675.txt -#etc/snort/docs/100000676.txt -#etc/snort/docs/100000677.txt -#etc/snort/docs/100000678.txt -#etc/snort/docs/100000679.txt -#etc/snort/docs/100000680.txt -#etc/snort/docs/100000681.txt -#etc/snort/docs/100000682.txt -#etc/snort/docs/100000683.txt -#etc/snort/docs/100000686.txt -#etc/snort/docs/100000687.txt -#etc/snort/docs/100000690.txt -#etc/snort/docs/100000691.txt -#etc/snort/docs/100000694.txt -#etc/snort/docs/100000695.txt -#etc/snort/docs/100000696.txt -#etc/snort/docs/100000697.txt -#etc/snort/docs/100000698.txt -#etc/snort/docs/100000699.txt -#etc/snort/docs/100000700.txt -#etc/snort/docs/100000701.txt -#etc/snort/docs/100000702.txt -#etc/snort/docs/100000704.txt -#etc/snort/docs/100000705.txt -#etc/snort/docs/100000706.txt -#etc/snort/docs/100000707.txt -#etc/snort/docs/100000708.txt -#etc/snort/docs/100000709.txt -#etc/snort/docs/100000710.txt -#etc/snort/docs/100000711.txt -#etc/snort/docs/100000712.txt -#etc/snort/docs/100000713.txt -#etc/snort/docs/100000714.txt -#etc/snort/docs/100000715.txt -#etc/snort/docs/100000716.txt -#etc/snort/docs/100000717.txt -#etc/snort/docs/100000718.txt -#etc/snort/docs/100000719.txt -#etc/snort/docs/100000720.txt -#etc/snort/docs/100000721.txt -#etc/snort/docs/100000722.txt -#etc/snort/docs/100000723.txt -#etc/snort/docs/100000724.txt -#etc/snort/docs/100000725.txt -#etc/snort/docs/100000726.txt -#etc/snort/docs/100000727.txt -#etc/snort/docs/100000728.txt -#etc/snort/docs/100000729.txt -#etc/snort/docs/100000730.txt -#etc/snort/docs/100000731.txt -#etc/snort/docs/100000732.txt -#etc/snort/docs/100000733.txt -#etc/snort/docs/100000734.txt -#etc/snort/docs/100000735.txt -#etc/snort/docs/100000736.txt -#etc/snort/docs/100000737.txt -#etc/snort/docs/100000738.txt -#etc/snort/docs/100000739.txt -#etc/snort/docs/100000740.txt -#etc/snort/docs/100000741.txt -#etc/snort/docs/100000742.txt -#etc/snort/docs/100000743.txt -#etc/snort/docs/100000744.txt -#etc/snort/docs/100000745.txt -#etc/snort/docs/100000746.txt -#etc/snort/docs/100000747.txt -#etc/snort/docs/100000748.txt -#etc/snort/docs/100000749.txt -#etc/snort/docs/100000750.txt -#etc/snort/docs/100000751.txt -#etc/snort/docs/100000752.txt -#etc/snort/docs/100000753.txt -#etc/snort/docs/100000754.txt -#etc/snort/docs/100000755.txt -#etc/snort/docs/100000756.txt -#etc/snort/docs/100000757.txt -#etc/snort/docs/100000758.txt -#etc/snort/docs/100000759.txt -#etc/snort/docs/100000760.txt -#etc/snort/docs/100000761.txt -#etc/snort/docs/100000762.txt -#etc/snort/docs/100000763.txt -#etc/snort/docs/100000764.txt -#etc/snort/docs/100000765.txt -#etc/snort/docs/100000766.txt -#etc/snort/docs/100000767.txt -#etc/snort/docs/100000768.txt -#etc/snort/docs/100000769.txt -#etc/snort/docs/100000770.txt -#etc/snort/docs/100000771.txt -#etc/snort/docs/100000772.txt -#etc/snort/docs/100000773.txt -#etc/snort/docs/100000774.txt -#etc/snort/docs/100000775.txt -#etc/snort/docs/100000776.txt -#etc/snort/docs/100000777.txt -#etc/snort/docs/100000778.txt -#etc/snort/docs/100000779.txt -#etc/snort/docs/100000780.txt -#etc/snort/docs/100000781.txt -#etc/snort/docs/100000782.txt -#etc/snort/docs/100000783.txt -#etc/snort/docs/100000784.txt -#etc/snort/docs/100000785.txt -#etc/snort/docs/100000786.txt -#etc/snort/docs/100000787.txt -#etc/snort/docs/100000788.txt -#etc/snort/docs/100000789.txt -#etc/snort/docs/100000790.txt -#etc/snort/docs/100000791.txt -#etc/snort/docs/100000792.txt -#etc/snort/docs/100000793.txt -#etc/snort/docs/100000794.txt -#etc/snort/docs/100000795.txt -#etc/snort/docs/100000796.txt -#etc/snort/docs/100000797.txt -#etc/snort/docs/100000798.txt -#etc/snort/docs/100000799.txt -#etc/snort/docs/100000800.txt -#etc/snort/docs/100000801.txt -#etc/snort/docs/100000802.txt -#etc/snort/docs/100000803.txt -#etc/snort/docs/100000804.txt -#etc/snort/docs/100000805.txt -#etc/snort/docs/100000806.txt -#etc/snort/docs/100000807.txt -#etc/snort/docs/100000808.txt -#etc/snort/docs/100000809.txt -#etc/snort/docs/100000810.txt -#etc/snort/docs/100000811.txt -#etc/snort/docs/100000812.txt -#etc/snort/docs/100000813.txt -#etc/snort/docs/100000814.txt -#etc/snort/docs/100000815.txt -#etc/snort/docs/100000816.txt -#etc/snort/docs/100000817.txt -#etc/snort/docs/100000818.txt -#etc/snort/docs/100000820.txt -#etc/snort/docs/100000821.txt -#etc/snort/docs/100000822.txt -#etc/snort/docs/100000823.txt -#etc/snort/docs/100000824.txt -#etc/snort/docs/100000825.txt -#etc/snort/docs/100000826.txt -#etc/snort/docs/100000827.txt -#etc/snort/docs/100000828.txt -#etc/snort/docs/100000829.txt -#etc/snort/docs/100000830.txt -#etc/snort/docs/100000831.txt -#etc/snort/docs/100000832.txt -#etc/snort/docs/100000833.txt -#etc/snort/docs/100000834.txt -#etc/snort/docs/100000835.txt -#etc/snort/docs/100000836.txt -#etc/snort/docs/100000837.txt -#etc/snort/docs/100000838.txt -#etc/snort/docs/100000839.txt -#etc/snort/docs/100000840.txt -#etc/snort/docs/100000841.txt -#etc/snort/docs/100000842.txt -#etc/snort/docs/100000843.txt -#etc/snort/docs/100000844.txt -#etc/snort/docs/100000845.txt -#etc/snort/docs/100000846.txt -#etc/snort/docs/100000847.txt -#etc/snort/docs/100000848.txt -#etc/snort/docs/100000849.txt -#etc/snort/docs/100000850.txt -#etc/snort/docs/100000851.txt -#etc/snort/docs/100000852.txt -#etc/snort/docs/100000853.txt -#etc/snort/docs/100000854.txt -#etc/snort/docs/100000855.txt -#etc/snort/docs/100000856.txt -#etc/snort/docs/100000857.txt -#etc/snort/docs/100000858.txt -#etc/snort/docs/100000859.txt -#etc/snort/docs/100000860.txt -#etc/snort/docs/100000861.txt -#etc/snort/docs/100000862.txt -#etc/snort/docs/100000863.txt -#etc/snort/docs/100000923.txt -#etc/snort/docs/100000927.txt etc/snort/rules -#etc/snort/rules/LICENSE #etc/snort/rules/classification.config -#etc/snort/rules/community-bot.rules -#etc/snort/rules/community-deleted.rules -#etc/snort/rules/community-dos.rules -#etc/snort/rules/community-exploit.rules -#etc/snort/rules/community-ftp.rules -#etc/snort/rules/community-game.rules -#etc/snort/rules/community-icmp.rules -#etc/snort/rules/community-imap.rules -#etc/snort/rules/community-inappropriate.rules -#etc/snort/rules/community-mail-client.rules -#etc/snort/rules/community-misc.rules -#etc/snort/rules/community-nntp.rules -#etc/snort/rules/community-oracle.rules -#etc/snort/rules/community-policy.rules -#etc/snort/rules/community-sid-msg.map -#etc/snort/rules/community-sip.rules -#etc/snort/rules/community-smtp.rules -#etc/snort/rules/community-sql-injection.rules -#etc/snort/rules/community-virus.rules -#etc/snort/rules/community-web-attacks.rules -#etc/snort/rules/community-web-cgi.rules -#etc/snort/rules/community-web-client.rules -#etc/snort/rules/community-web-dos.rules -#etc/snort/rules/community-web-iis.rules -#etc/snort/rules/community-web-misc.rules -#etc/snort/rules/community-web-php.rules #etc/snort/rules/reference.config etc/snort/snort.conf etc/snort/unicode.map +usr/lib/pkgconfig/snort.pc usr/lib/snort_dynamicengine #usr/lib/snort_dynamicengine/libsf_engine.a #usr/lib/snort_dynamicengine/libsf_engine.la @@ -650,11 +12,11 @@ usr/lib/snort_dynamicengine #usr/lib/snort_dynamicengine/libsf_engine.so.0 #usr/lib/snort_dynamicengine/libsf_engine.so.0.0.0 usr/lib/snort_dynamicpreprocessor -#usr/lib/snort_dynamicpreprocessor/lib_sfdynamic_preprocessor_example.a -#usr/lib/snort_dynamicpreprocessor/lib_sfdynamic_preprocessor_example.la -#usr/lib/snort_dynamicpreprocessor/lib_sfdynamic_preprocessor_example.so -#usr/lib/snort_dynamicpreprocessor/lib_sfdynamic_preprocessor_example.so.0 -#usr/lib/snort_dynamicpreprocessor/lib_sfdynamic_preprocessor_example.so.0.0.0 +#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.a +#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.la +#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.so +#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.so.0 +#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.so.0.0.0 #usr/lib/snort_dynamicpreprocessor/libsf_dcerpc_preproc.a #usr/lib/snort_dynamicpreprocessor/libsf_dcerpc_preproc.la #usr/lib/snort_dynamicpreprocessor/libsf_dcerpc_preproc.so @@ -670,6 +32,11 @@ usr/lib/snort_dynamicpreprocessor #usr/lib/snort_dynamicpreprocessor/libsf_ftptelnet_preproc.so #usr/lib/snort_dynamicpreprocessor/libsf_ftptelnet_preproc.so.0 #usr/lib/snort_dynamicpreprocessor/libsf_ftptelnet_preproc.so.0.0.0 +#usr/lib/snort_dynamicpreprocessor/libsf_sdf_preproc.a +#usr/lib/snort_dynamicpreprocessor/libsf_sdf_preproc.la +#usr/lib/snort_dynamicpreprocessor/libsf_sdf_preproc.so +#usr/lib/snort_dynamicpreprocessor/libsf_sdf_preproc.so.0 +#usr/lib/snort_dynamicpreprocessor/libsf_sdf_preproc.so.0.0.0 #usr/lib/snort_dynamicpreprocessor/libsf_smtp_preproc.a #usr/lib/snort_dynamicpreprocessor/libsf_smtp_preproc.la #usr/lib/snort_dynamicpreprocessor/libsf_smtp_preproc.so @@ -685,17 +52,7 @@ usr/lib/snort_dynamicpreprocessor #usr/lib/snort_dynamicpreprocessor/libsf_ssl_preproc.so #usr/lib/snort_dynamicpreprocessor/libsf_ssl_preproc.so.0 #usr/lib/snort_dynamicpreprocessor/libsf_ssl_preproc.so.0.0.0 -usr/lib/snort_dynamicrules -#usr/lib/snort_dynamicrules/lib_sfdynamic_example_rule.a -#usr/lib/snort_dynamicrules/lib_sfdynamic_example_rule.la -#usr/lib/snort_dynamicrules/lib_sfdynamic_example_rule.so -#usr/lib/snort_dynamicrules/lib_sfdynamic_example_rule.so.0 -#usr/lib/snort_dynamicrules/lib_sfdynamic_example_rule.so.0.0.0 -#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.a -#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.la -#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.so -#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.so.0 -#usr/lib/snort_dynamicpreprocessor/libsf_dce2_preproc.so.0.0.0 +#usr/man/man8/snort.8 usr/sbin/snort #usr/share/doc/snort #usr/share/doc/snort/AUTHORS @@ -724,8 +81,7 @@ usr/sbin/snort #usr/share/doc/snort/README.decoder_preproc_rules #usr/share/doc/snort/README.dns #usr/share/doc/snort/README.event_queue -#usr/share/doc/snort/README.flow -#usr/share/doc/snort/README.flow-portscan +#usr/share/doc/snort/README.filters #usr/share/doc/snort/README.flowbits #usr/share/doc/snort/README.frag3 #usr/share/doc/snort/README.ftptelnet @@ -733,12 +89,14 @@ usr/sbin/snort #usr/share/doc/snort/README.http_inspect #usr/share/doc/snort/README.ipip #usr/share/doc/snort/README.ipv6 +#usr/share/doc/snort/README.multipleconfigs #usr/share/doc/snort/README.pcap_readmode #usr/share/doc/snort/README.ppm +#usr/share/doc/snort/README.reload +#usr/share/doc/snort/README.sensitive_data #usr/share/doc/snort/README.sfportscan #usr/share/doc/snort/README.ssh #usr/share/doc/snort/README.ssl -#usr/share/doc/snort/README.stream4 #usr/share/doc/snort/README.stream5 #usr/share/doc/snort/README.tag #usr/share/doc/snort/README.thresholding @@ -748,5 +106,4 @@ usr/sbin/snort #usr/share/doc/snort/USAGE #usr/share/doc/snort/WISHLIST #usr/share/doc/snort/generators -#usr/share/man/man8/snort.8 var/log/snort diff --git a/config/rootfiles/common/squidguard b/config/rootfiles/common/squidguard index 8e8509c..a6bab0c 100644 --- a/config/rootfiles/common/squidguard +++ b/config/rootfiles/common/squidguard @@ -1,6 +1,5 @@ #etc/squidGuard etc/squidGuard/squidGuard.conf -srv/web/ipfire/html/repository usr/bin/squidGuard usr/sbin/redirect_wrapper #usr/squidGuard @@ -80,3 +79,5 @@ var/ipfire/urlfilter/version var/lib/squidguard #var/log/squidGuard var/log/squidGuard/squidGuard.log +var/urlrepo + diff --git a/config/rootfiles/common/stage2 b/config/rootfiles/common/stage2 index 6a7a099..a7655e6 100644 --- a/config/rootfiles/common/stage2 +++ b/config/rootfiles/common/stage2 @@ -8,18 +8,22 @@ dev/null dev/console etc/bashrc etc/certparams +etc/e2fsck.conf etc/fstab etc/group etc/hddtemp.db etc/host.conf etc/inittab etc/inputrc +#etc/ipsec.user.conf +#etc/ipsec.user.secrets etc/issue etc/ld.so.conf etc/logrotate.conf etc/mime.types etc/modprobe.d etc/modprobe.d/cfg80211 +etc/modprobe.d/pcspeaker etc/modules.conf etc/mtab etc/nsswitch.conf diff --git a/config/rootfiles/common/strongswan b/config/rootfiles/common/strongswan index 1130cc5..bd0f1de 100644 --- a/config/rootfiles/common/strongswan +++ b/config/rootfiles/common/strongswan @@ -1,4 +1,5 @@ etc/ipsec.conf +etc/ipsec.user.conf #etc/ipsec.d etc/ipsec.d/aacerts etc/ipsec.d/acerts @@ -9,7 +10,18 @@ etc/ipsec.d/ocspcerts etc/ipsec.d/private etc/ipsec.d/reqs etc/ipsec.secrets +etc/ipsec.user.secrets etc/strongswan.conf +#usr/lib/libcharon.a +#usr/lib/libcharon.la +usr/lib/libcharon.so +usr/lib/libcharon.so.0 +usr/lib/libcharon.so.0.0.0 +#usr/lib/libhydra.a +#usr/lib/libhydra.la +usr/lib/libhydra.so +usr/lib/libhydra.so.0 +usr/lib/libhydra.so.0.0.0 #usr/lib/libstrongswan.a #usr/lib/libstrongswan.la usr/lib/libstrongswan.so @@ -75,6 +87,9 @@ usr/libexec/ipsec/plugins/libstrongswan-sha1.so #usr/libexec/ipsec/plugins/libstrongswan-sha2.a #usr/libexec/ipsec/plugins/libstrongswan-sha2.la usr/libexec/ipsec/plugins/libstrongswan-sha2.so +#usr/libexec/ipsec/plugins/libstrongswan-socket-raw.a +#usr/libexec/ipsec/plugins/libstrongswan-socket-raw.la +usr/libexec/ipsec/plugins/libstrongswan-socket-raw.so #usr/libexec/ipsec/plugins/libstrongswan-stroke.a #usr/libexec/ipsec/plugins/libstrongswan-stroke.la usr/libexec/ipsec/plugins/libstrongswan-stroke.so diff --git a/config/rootfiles/common/uClibc b/config/rootfiles/common/uClibc index cdce6ae..009775a 100644 --- a/config/rootfiles/common/uClibc +++ b/config/rootfiles/common/uClibc @@ -57,6 +57,10 @@ #opt/i586-uClibc/include/asm/irq.h #opt/i586-uClibc/include/asm/kdebug.h #opt/i586-uClibc/include/asm/kprobes.h +#opt/i586-uClibc/include/asm/kvm.h +#opt/i586-uClibc/include/asm/kvm_emulate.h +#opt/i586-uClibc/include/asm/kvm_host.h +#opt/i586-uClibc/include/asm/kvm_para.h #opt/i586-uClibc/include/asm/ldt.h #opt/i586-uClibc/include/asm/linkage.h #opt/i586-uClibc/include/asm/mach-bigsmp @@ -170,6 +174,7 @@ #opt/i586-uClibc/include/asm/srat.h #opt/i586-uClibc/include/asm/stat.h #opt/i586-uClibc/include/asm/suspend.h +#opt/i586-uClibc/include/asm/svm.h #opt/i586-uClibc/include/asm/system.h #opt/i586-uClibc/include/asm/termbits.h #opt/i586-uClibc/include/asm/termios.h @@ -183,7 +188,9 @@ #opt/i586-uClibc/include/asm/user.h #opt/i586-uClibc/include/asm/vga.h #opt/i586-uClibc/include/asm/vic.h +#opt/i586-uClibc/include/asm/virtext.h #opt/i586-uClibc/include/asm/vm86.h +#opt/i586-uClibc/include/asm/vmx.h #opt/i586-uClibc/include/asm/voyager.h #opt/i586-uClibc/include/assert.h #opt/i586-uClibc/include/atomic.h @@ -594,6 +601,10 @@ #opt/i586-uClibc/include/linux/kmalloc_sizes.h #opt/i586-uClibc/include/linux/kmod.h #opt/i586-uClibc/include/linux/kprobes.h +#opt/i586-uClibc/include/linux/kvm.h +#opt/i586-uClibc/include/linux/kvm_host.h +#opt/i586-uClibc/include/linux/kvm_para.h +#opt/i586-uClibc/include/linux/kvm_types.h #opt/i586-uClibc/include/linux/lapb.h #opt/i586-uClibc/include/linux/lcd.h #opt/i586-uClibc/include/linux/libata.h diff --git a/config/rootfiles/common/usb_modeswitch b/config/rootfiles/common/usb_modeswitch index bfef2c1..3a837b7 100644 --- a/config/rootfiles/common/usb_modeswitch +++ b/config/rootfiles/common/usb_modeswitch @@ -1,2 +1,5 @@ -etc/usb_modeswitch.conf.example +#lib/udev/usb_modeswitch +#etc/usb_modeswitch.conf +etc/usb_modeswitch.setup.example +#usr/share/man/man1/usb_modeswitch.1 usr/sbin/usb_modeswitch diff --git a/config/rootfiles/common/zlib b/config/rootfiles/common/zlib index 6148ef5..b275de5 100644 --- a/config/rootfiles/common/zlib +++ b/config/rootfiles/common/zlib @@ -3,5 +3,5 @@ lib/libz.so.1.2.3 #usr/include/zconf.h #usr/include/zlib.h #usr/lib/libz.a -#usr/lib/libz.so +usr/lib/libz.so #usr/share/man/man3/zlib.3 diff --git a/config/rootfiles/core/38/exclude b/config/rootfiles/core/38/exclude new file mode 100644 index 0000000..e69de29 diff --git a/config/rootfiles/core/38/filelists/Net_SSLeay b/config/rootfiles/core/38/filelists/Net_SSLeay new file mode 120000 index 0000000..13fe056 --- /dev/null +++ b/config/rootfiles/core/38/filelists/Net_SSLeay @@ -0,0 +1 @@ +../../../common/Net_SSLeay \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/collectd b/config/rootfiles/core/38/filelists/collectd new file mode 120000 index 0000000..871b32f --- /dev/null +++ b/config/rootfiles/core/38/filelists/collectd @@ -0,0 +1 @@ +../../../common/collectd \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/compat-wireless b/config/rootfiles/core/38/filelists/compat-wireless new file mode 120000 index 0000000..5b5ac9e --- /dev/null +++ b/config/rootfiles/core/38/filelists/compat-wireless @@ -0,0 +1 @@ +../../../common/compat-wireless \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/dosfstools b/config/rootfiles/core/38/filelists/dosfstools new file mode 120000 index 0000000..087ccb0 --- /dev/null +++ b/config/rootfiles/core/38/filelists/dosfstools @@ -0,0 +1 @@ +../../../common/dosfstools \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/e2fsprogs b/config/rootfiles/core/38/filelists/e2fsprogs new file mode 120000 index 0000000..37b55de --- /dev/null +++ b/config/rootfiles/core/38/filelists/e2fsprogs @@ -0,0 +1 @@ +../../../common/e2fsprogs \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/files b/config/rootfiles/core/38/filelists/files new file mode 100644 index 0000000..c6e13b7 --- /dev/null +++ b/config/rootfiles/core/38/filelists/files @@ -0,0 +1,169 @@ +etc/system-release +etc/issue +etc/e2fsck.conf +etc/httpd/conf/vhosts.d/ipfire-interface.conf +etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf +etc/rc.d/init.d/leds +etc/rc.d/init.d/rc +etc/rc.d/init.d/snort +etc/rc.d/init.d/networking/red.up/50-ovpn +etc/rc.d/init.d/networking/dhcpcd.exe +etc/rc.d/rc0.d/K78snort +etc/rc.d/rc0.d/K79leds +etc/rc.d/rc3.d/S21leds +etc/rc.d/rc6.d/K78snort +etc/rc.d/rc6.d/K79leds +etc/udev/rules.d/52-nut-usbups.rules +etc/udev/rules.d/xpp.rules +var/ipfire/backup/bin/backup.pl +var/ipfire/header.pl +var/ipfire/menu.d/50-firewall.menu +var/ipfire/outgoing/bin/outgoingfw.pl +var/ipfire/graphs.pl +var/ipfire/general-functions.pl +etc/modprobe.d/cfg80211 +etc/modprobe.d/pcspeaker +var/ipfire/qos/bin/makeqosscripts.pl +srv/web/ipfire/cgi-bin/connections.cgi +srv/web/ipfire/cgi-bin/extrahd.cgi +srv/web/ipfire/cgi-bin/ids.cgi +srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/iptables.cgi +srv/web/ipfire/cgi-bin/logs.cgi/config.dat +srv/web/ipfire/cgi-bin/netother.cgi +srv/web/ipfire/cgi-bin/outgoingfw.cgi +srv/web/ipfire/cgi-bin/outgoinggrp.cgi +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/services.cgi +srv/web/ipfire/cgi-bin/time.cgi +srv/web/ipfire/cgi-bin/updatexlrator.cgi +srv/web/ipfire/cgi-bin/urlfilter.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi +srv/web/ipfire/cgi-bin/wireless.cgi +srv/web/ipfire/html/themes/ipfire/include/functions.pl +srv/web/ipfire/html/themes/maniac/include/functions.pl +var/ipfire/langs/de.pl +var/ipfire/langs/en.pl +var/ipfire/langs/es.pl +var/ipfire/langs/fr.pl +var/ipfire/langs/list +var/ipfire/main/disable_nf_sip +var/ipfire/outgoing/groups +etc/rc.d/init.d/firewall +etc/rc.d/init.d/ipsec +etc/rc.d/init.d/network +etc/rc.d/init.d/ntp +etc/rc.d/init.d/modules +usr/local/bin/ipsecctrl +usr/local/bin/rebuildhosts +usr/local/bin/syslogdctrl +usr/local/bin/wirelessctrl +usr/local/sbin/setup +usr/sbin/openvpn +opt/pakfire/lib/functions.sh +usr/local/share/GeoIP/GeoIP.dat +usr/share/hwdata/pci.ids +usr/share/hwdata/usb.ids +usr/bin/squidGuard +usr/sbin/redirect_wrapper +var/lib/squidguard +var/urlrepo +usr/sbin/klogd +usr/sbin/syslogd +etc/squid/cachemgr.conf +etc/squid/errors +etc/squid/mime.conf +etc/squid/msntauth.conf +etc/squid/squid.conf +srv/web/ipfire/cgi-bin/cachemgr.cgi +usr/bin/squidclient +usr/lib/squid/auth +usr/lib/squid/diskd-daemon +usr/lib/squid/errors.ipfire/English/ERR_ACCESS_DENIED +usr/lib/squid/errors.ipfire/English/ERR_CACHE_ACCESS_DENIED +usr/lib/squid/errors.ipfire/English/ERR_CACHE_MGR_ACCESS_DENIED +usr/lib/squid/errors.ipfire/English/ERR_CANNOT_FORWARD +usr/lib/squid/errors.ipfire/English/ERR_CONNECT_FAIL +usr/lib/squid/errors.ipfire/English/ERR_DNS_FAIL +usr/lib/squid/errors.ipfire/English/ERR_FORWARDING_DENIED +usr/lib/squid/errors.ipfire/English/ERR_FTP_DISABLED +usr/lib/squid/errors.ipfire/English/ERR_FTP_FAILURE +usr/lib/squid/errors.ipfire/English/ERR_FTP_FORBIDDEN +usr/lib/squid/errors.ipfire/English/ERR_FTP_NOT_FOUND +usr/lib/squid/errors.ipfire/English/ERR_FTP_PUT_CREATED +usr/lib/squid/errors.ipfire/English/ERR_FTP_PUT_ERROR +usr/lib/squid/errors.ipfire/English/ERR_FTP_PUT_MODIFIED +usr/lib/squid/errors.ipfire/English/ERR_FTP_UNAVAILABLE +usr/lib/squid/errors.ipfire/English/ERR_INVALID_REQ +usr/lib/squid/errors.ipfire/English/ERR_INVALID_RESP +usr/lib/squid/errors.ipfire/English/ERR_INVALID_URL +usr/lib/squid/errors.ipfire/English/ERR_LIFETIME_EXP +usr/lib/squid/errors.ipfire/English/ERR_NO_RELAY +usr/lib/squid/errors.ipfire/English/ERR_ONLY_IF_CACHED_MISS +usr/lib/squid/errors.ipfire/English/ERR_READ_ERROR +usr/lib/squid/errors.ipfire/English/ERR_READ_TIMEOUT +usr/lib/squid/errors.ipfire/English/ERR_SHUTTING_DOWN +usr/lib/squid/errors.ipfire/English/ERR_SOCKET_FAILURE +usr/lib/squid/errors.ipfire/English/ERR_TOO_BIG +usr/lib/squid/errors.ipfire/English/ERR_UNSUP_REQ +usr/lib/squid/errors.ipfire/English/ERR_URN_RESOLVE +usr/lib/squid/errors.ipfire/English/ERR_WRITE_ERROR +usr/lib/squid/errors.ipfire/English/ERR_ZERO_SIZE_OBJECT +usr/lib/squid/errors.ipfire/German/ERR_ACCESS_DENIED +usr/lib/squid/errors.ipfire/German/ERR_CACHE_ACCESS_DENIED +usr/lib/squid/errors.ipfire/German/ERR_CACHE_MGR_ACCESS_DENIED +usr/lib/squid/errors.ipfire/German/ERR_CANNOT_FORWARD +usr/lib/squid/errors.ipfire/German/ERR_CONNECT_FAIL +usr/lib/squid/errors.ipfire/German/ERR_DNS_FAIL +usr/lib/squid/errors.ipfire/German/ERR_FORWARDING_DENIED +usr/lib/squid/errors.ipfire/German/ERR_FTP_DISABLED +usr/lib/squid/errors.ipfire/German/ERR_FTP_FAILURE +usr/lib/squid/errors.ipfire/German/ERR_FTP_FORBIDDEN +usr/lib/squid/errors.ipfire/German/ERR_FTP_NOT_FOUND +usr/lib/squid/errors.ipfire/German/ERR_FTP_PUT_CREATED +usr/lib/squid/errors.ipfire/German/ERR_FTP_PUT_ERROR +usr/lib/squid/errors.ipfire/German/ERR_FTP_PUT_MODIFIED +usr/lib/squid/errors.ipfire/German/ERR_FTP_UNAVAILABLE +usr/lib/squid/errors.ipfire/German/ERR_INVALID_REQ +usr/lib/squid/errors.ipfire/German/ERR_INVALID_RESP +usr/lib/squid/errors.ipfire/German/ERR_INVALID_URL +usr/lib/squid/errors.ipfire/German/ERR_LIFETIME_EXP +usr/lib/squid/errors.ipfire/German/ERR_NO_RELAY +usr/lib/squid/errors.ipfire/German/ERR_ONLY_IF_CACHED_MISS +usr/lib/squid/errors.ipfire/German/ERR_READ_ERROR +usr/lib/squid/errors.ipfire/German/ERR_READ_TIMEOUT +usr/lib/squid/errors.ipfire/German/ERR_SHUTTING_DOWN +usr/lib/squid/errors.ipfire/German/ERR_SOCKET_FAILURE +usr/lib/squid/errors.ipfire/German/ERR_TOO_BIG +usr/lib/squid/errors.ipfire/German/ERR_UNSUP_REQ +usr/lib/squid/errors.ipfire/German/ERR_URN_RESOLVE +usr/lib/squid/errors.ipfire/German/ERR_WRITE_ERROR +usr/lib/squid/errors.ipfire/German/ERR_ZERO_SIZE_OBJECT +usr/lib/squid/errors/English +usr/lib/squid/errors/German +usr/lib/squid/icons +usr/lib/squid/logfile-daemon +usr/lib/squid/mib.txt +usr/lib/squid/msnt_auth +usr/lib/squid/ncsa_auth +usr/lib/squid/ntlm_auth +usr/lib/squid/smb_auth +usr/lib/squid/smb_auth.pl +usr/lib/squid/smb_auth.sh +usr/lib/squid/squid_ldap_auth +usr/lib/squid/unlinkd +usr/sbin/squid +usr/sbin/updxlrator +var/ipfire/updatexlrator/autocheck/cron.daily +var/ipfire/updatexlrator/autocheck/cron.monthly +var/ipfire/updatexlrator/autocheck/cron.weekly +var/ipfire/updatexlrator/bin/checkdeaddl +var/ipfire/updatexlrator/bin/checkup +var/ipfire/updatexlrator/bin/convert +var/ipfire/updatexlrator/bin/download +var/ipfire/updatexlrator/bin/lscache +var/ipfire/updatexlrator/updxlrator-lib.pl +var/log/cache +var/log/updatexlrator +usr/local/bin/vpn-watch +srv/web/ipfire/html/images/go-down.png diff --git a/config/rootfiles/core/38/filelists/fuse b/config/rootfiles/core/38/filelists/fuse new file mode 120000 index 0000000..570edaa --- /dev/null +++ b/config/rootfiles/core/38/filelists/fuse @@ -0,0 +1 @@ +../../../common/fuse \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/grub b/config/rootfiles/core/38/filelists/grub new file mode 120000 index 0000000..050745c --- /dev/null +++ b/config/rootfiles/core/38/filelists/grub @@ -0,0 +1 @@ +../../../common/grub \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/iptables b/config/rootfiles/core/38/filelists/iptables new file mode 120000 index 0000000..8caf12b --- /dev/null +++ b/config/rootfiles/core/38/filelists/iptables @@ -0,0 +1 @@ +../../../common/iptables \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/liboping b/config/rootfiles/core/38/filelists/liboping new file mode 120000 index 0000000..3ae1904 --- /dev/null +++ b/config/rootfiles/core/38/filelists/liboping @@ -0,0 +1 @@ +../../../common/liboping \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/linux b/config/rootfiles/core/38/filelists/linux new file mode 120000 index 0000000..c469fe1 --- /dev/null +++ b/config/rootfiles/core/38/filelists/linux @@ -0,0 +1 @@ +../../../common/linux \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/linux-firmware b/config/rootfiles/core/38/filelists/linux-firmware new file mode 120000 index 0000000..4bf91bc --- /dev/null +++ b/config/rootfiles/core/38/filelists/linux-firmware @@ -0,0 +1 @@ +../../../common/linux-firmware \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/mISDN b/config/rootfiles/core/38/filelists/mISDN new file mode 120000 index 0000000..5707154 --- /dev/null +++ b/config/rootfiles/core/38/filelists/mISDN @@ -0,0 +1 @@ +../../../common/mISDN \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/mISDNuser b/config/rootfiles/core/38/filelists/mISDNuser new file mode 120000 index 0000000..78537d4 --- /dev/null +++ b/config/rootfiles/core/38/filelists/mISDNuser @@ -0,0 +1 @@ +../../../common/mISDNuser \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/menu b/config/rootfiles/core/38/filelists/menu new file mode 100644 index 0000000..0c629b0 --- /dev/null +++ b/config/rootfiles/core/38/filelists/menu @@ -0,0 +1,8 @@ +var/ipfire/menu.d/00-menu.main +var/ipfire/menu.d/10-system.menu +var/ipfire/menu.d/20-status.menu +var/ipfire/menu.d/30-network.menu +var/ipfire/menu.d/40-services.menu +var/ipfire/menu.d/50-firewall.menu +var/ipfire/menu.d/60-ipfire.menu +var/ipfire/menu.d/70-log.menu diff --git a/config/rootfiles/core/38/filelists/mkinitcpio b/config/rootfiles/core/38/filelists/mkinitcpio new file mode 120000 index 0000000..f9b3fde --- /dev/null +++ b/config/rootfiles/core/38/filelists/mkinitcpio @@ -0,0 +1 @@ +../../../common/mkinitcpio \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/openssh b/config/rootfiles/core/38/filelists/openssh new file mode 120000 index 0000000..d8c77fd --- /dev/null +++ b/config/rootfiles/core/38/filelists/openssh @@ -0,0 +1 @@ +../../../common/openssh \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/openssl b/config/rootfiles/core/38/filelists/openssl new file mode 120000 index 0000000..e011a92 --- /dev/null +++ b/config/rootfiles/core/38/filelists/openssl @@ -0,0 +1 @@ +../../../common/openssl \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/pcre b/config/rootfiles/core/38/filelists/pcre new file mode 120000 index 0000000..b390d9a --- /dev/null +++ b/config/rootfiles/core/38/filelists/pcre @@ -0,0 +1 @@ +../../../common/pcre \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/reiser4progs b/config/rootfiles/core/38/filelists/reiser4progs new file mode 120000 index 0000000..f5ea556 --- /dev/null +++ b/config/rootfiles/core/38/filelists/reiser4progs @@ -0,0 +1 @@ +../../../common/reiser4progs \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/reiserfsprogs b/config/rootfiles/core/38/filelists/reiserfsprogs new file mode 120000 index 0000000..008c3e8 --- /dev/null +++ b/config/rootfiles/core/38/filelists/reiserfsprogs @@ -0,0 +1 @@ +../../../common/reiserfsprogs \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/rrdtool b/config/rootfiles/core/38/filelists/rrdtool new file mode 120000 index 0000000..7a82e41 --- /dev/null +++ b/config/rootfiles/core/38/filelists/rrdtool @@ -0,0 +1 @@ +../../../common/rrdtool \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/smartmontools b/config/rootfiles/core/38/filelists/smartmontools new file mode 120000 index 0000000..fb66daf --- /dev/null +++ b/config/rootfiles/core/38/filelists/smartmontools @@ -0,0 +1 @@ +../../../common/smartmontools \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/snort b/config/rootfiles/core/38/filelists/snort new file mode 120000 index 0000000..9406ce0 --- /dev/null +++ b/config/rootfiles/core/38/filelists/snort @@ -0,0 +1 @@ +../../../common/snort \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/strongswan b/config/rootfiles/core/38/filelists/strongswan new file mode 120000 index 0000000..90c727e --- /dev/null +++ b/config/rootfiles/core/38/filelists/strongswan @@ -0,0 +1 @@ +../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/usb_modeswitch b/config/rootfiles/core/38/filelists/usb_modeswitch new file mode 120000 index 0000000..acbab6f --- /dev/null +++ b/config/rootfiles/core/38/filelists/usb_modeswitch @@ -0,0 +1 @@ +../../../common/usb_modeswitch \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/xz b/config/rootfiles/core/38/filelists/xz new file mode 120000 index 0000000..734e926 --- /dev/null +++ b/config/rootfiles/core/38/filelists/xz @@ -0,0 +1 @@ +../../../common/xz \ No newline at end of file diff --git a/config/rootfiles/core/38/filelists/zlib b/config/rootfiles/core/38/filelists/zlib new file mode 120000 index 0000000..e345663 --- /dev/null +++ b/config/rootfiles/core/38/filelists/zlib @@ -0,0 +1 @@ +../../../common/zlib \ No newline at end of file diff --git a/config/rootfiles/core/38/meta b/config/rootfiles/core/38/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/core/38/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/core/38/update.sh b/config/rootfiles/core/38/update.sh new file mode 100644 index 0000000..dc643fe --- /dev/null +++ b/config/rootfiles/core/38/update.sh @@ -0,0 +1,277 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2010 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 +# +OLDVERSION=`grep "version = " /opt/pakfire/etc/pakfire.conf | cut -d'"' -f2` +# +# Test if we running on xen +# +uname -r | grep "ipfire-xen"; +if [ ${?} = 0 ]; then + #Xen Kernel is active + NEWVERSION="2.7-xen" +else + #Normal Kernel + NEWVERSION="2.7" +fi +# +KVER="2.6.32.15" +ROOT=`grep "root=" /boot/grub/grub.conf | cut -d"=" -f2 | cut -d" " -f1 | tail -n 1` +MOUNT=`grep "kernel" /boot/grub/grub.conf | tail -n 1` +# Nur den letzten Parameter verwenden +echo $MOUNT > /dev/null +MOUNT=$_ +if [ ! $MOUNT == "rw" ]; then + MOUNT="ro" +fi +# +# check if we the backup file already exist +if [ -e /var/ipfire/backup/core-upgrade_$KVER.tar.bz2 ]; then + echo Moving backup to backup-old ... + mv -f /var/ipfire/backup/core-upgrade_$KVER.tar.bz2 \ + /var/ipfire/backup/core-upgrade_$KVER-old.tar.bz2 +fi +echo First we made a backup of all files that was inside of the +echo update archive. This may take a while ... +# Add some files that are not in the package to backup +echo lib/modules >> /opt/pakfire/tmp/ROOTFILES +echo boot >> /opt/pakfire/tmp/ROOTFILES +echo etc/sysconfig/lm_sensors >> /opt/pakfire/tmp/ROOTFILES +echo usr/lib/ipsec >> /opt/pakfire/tmp/ROOTFILES +echo usr/libexec/ipsec >> /opt/pakfire/tmp/ROOTFILES +# exclude squid cache from backup +sed -i -e "s|^var/log/cache|#var/log/cache|g" /opt/pakfire/tmp/ROOTFILES +# Backup the files +tar cjvf /var/ipfire/backup/core-upgrade_$KVER.tar.bz2 \ + -C / -T /opt/pakfire/tmp/ROOTFILES --exclude='#*' > /dev/null 2>&1 + +# +# Stop Sevices +# +/etc/init.d/collectd stop +/etc/init.d/squid stop +/etc/init.d/ipsec stop +/etc/init.d/snort stop + +echo +echo Update Kernel to $KVER ... +# Remove old kernel, configs, initrd, modules ... +# +rm -rf /boot/System.map-* +rm -rf /boot/config-* +rm -rf /boot/ipfirerd-* +rm -rf /boot/vmlinuz-* +rm -rf /lib/modules/*-ipfire +# Don't remove all old xen modules. Kernel may stored outside. +# only from 2.6.27.25 and 31 +rm -rf /lib/modules/2.6.27.25-ipfire-xen +rm -rf /lib/modules/2.6.27.31-ipfire-xen +# +# remove openswan libs ... +# +rm -rf /usr/lib/ipsec +rm -rf /usr/libexec/ipsec +# +# old snort libs and rules ... +# +rm -rf /usr/lib/snort_* +rm -rf /etc/snort +# +# mISDN Files that was moved to sbin +# +rm -rf /usr/bin/misdn_rename +rm -rf /usr/bin/misdn_cleanl2 +# +# Backup grub.conf +# +cp -vf /boot/grub/grub.conf /boot/grub/grub.conf.org +# +# Stop sysklogd +/etc/init.d/sysklogd stop +# +# Unpack the updated files +# +echo +echo Unpack the updated files ... +# +tar xvf /opt/pakfire/tmp/files --preserve --numeric-owner -C / \ + --no-overwrite-dir +# +# Start sysklogd +/etc/init.d/sysklogd start +# +# Modify grub.conf +# +echo +echo Update grub configuration ... +sed -i "s|ROOT|$ROOT|g" /boot/grub/grub.conf +sed -i "s|KVER|$KVER|g" /boot/grub/grub.conf +sed -i "s|MOUNT|$MOUNT|g" /boot/grub/grub.conf + +if [ "$(grep "^serial" /boot/grub/grub.conf.org)" == "" ]; then + echo "grub use default console ..." +else + echo "grub use serial console ..." + sed -i -e "s|splashimage|#splashimage|g" /boot/grub/grub.conf + sed -i -e "s|#serial|serial|g" /boot/grub/grub.conf + sed -i -e "s|#terminal|terminal|g" /boot/grub/grub.conf + sed -i -e "s| panic=10 | console=ttyS0,38400n8 panic=10 |g" /boot/grub/grub.conf +fi +# +# Made emergency - initramdisk +# +echo +echo Create new Initramdisks ... +cp -f /etc/mkinitcpio.conf /etc/mkinitcpio.conf.org +sed -i "s| autodetect | |g" /etc/mkinitcpio.conf +mkinitcpio -k $KVER-ipfire -g /boot/ipfirerd-$KVER-emergency.img +cp -f /etc/mkinitcpio.conf.org /etc/mkinitcpio.conf +# +# Made initramdisk +# +if [ "${ROOT:0:7}" == "/dev/sd" ]; then + # Remove ide hook if root is on sda + sed -i "s| ide | |g" /etc/mkinitcpio.conf +else +if [ "${ROOT:0:7}" == "/dev/hd" ]; then + # Remove pata & sata hook if root is on hda + sed -i "s| pata | |g" /etc/mkinitcpio.conf + sed -i "s| sata | |g" /etc/mkinitcpio.conf +fi +fi +mkinitcpio -k $KVER-ipfire -g /boot/ipfirerd-$KVER.img +# +# ReInstall grub +# +grub-install --no-floppy ${ROOT::`expr length $ROOT`-1} --recheck +# +# Rebuild Language +# +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" +# +# Cleanup Collectd statistics... +# +PRECLEAN=`du -sh /var/log/rrd/collectd` +# +rm -rf /var/log/rrd*/collectd/localhost/processes-*/ps_count* +rm -rf /var/log/rrd*/collectd/localhost/processes-*/ps_pagefaults* +rm -rf /var/log/rrd*/collectd/localhost/processes-*/ps_stacksize* +rm -rf /var/log/rrd*/collectd/localhost/processes-*/ps_state* +rm -rf /var/log/rrd*/collectd/localhost/processes-*/ps_vm* +# +rm -rf /var/log/rrd*/collectd/localhost/interface/if_errors* +rm -rf /var/log/rrd*/collectd/localhost/interface/if_packets* +# +rm -rf /var/log/rrd*/collectd/localhost/disk-*/disk_merged* +rm -rf /var/log/rrd*/collectd/localhost/disk-*/disk_ops* +rm -rf /var/log/rrd*/collectd/localhost/disk-*/disk_time* +# +rm -rf /var/log/rrd*/collectd/localhost/iptables-filter-INPUT/*-DROP_Wirelessinput* +rm -rf /var/log/rrd*/collectd/localhost/iptables-filter-FORWARD/*-DROP_Wirelessforward* +rm -rf /var/log/rrd*/collectd/localhost/iptables-filter-OUTGOINGFW +POSTCLEAN=`du -sh /var/log/rrd/collectd` +# +echo Cleaned up collectd directory from $PRECLEAN to $POSTCLEAN size. +# +# Start collectd +/etc/init.d/collectd start +# +# Delete old lm-sensor modullist to force search at next boot +# +rm -rf /etc/sysconfig/lm_sensors +# +# USB Modeswitch conf now called setup, rename ... +# +if [ -e /etc/usb_modeswitch.conf ]; then +mv -f /etc/usb_modeswitch.conf /etc/usb_modeswitch.setup +fi +# +# rebuild qosscript if enabled... +if [ -e /var/ipfire/qos/enable ]; then + /usr/local/bin/qosctrl stop + /usr/local/bin/qosctrl generate + /usr/local/bin/qosctrl start +fi +# +# +# convert ipsec.conf from openswan to strongswan... +mv /var/ipfire/vpn/ipsec.conf /var/ipfire/vpn/ipsec.conf.org +cat /var/ipfire/vpn/ipsec.conf.org | \ +grep -v "disablearrivalcheck=" | \ +grep -v "klipsdebug=" | \ +grep -v "leftfirewall=" | \ +grep -v "lefthostaccess=" | \ +grep -v "charonstart=" | \ +grep -v "aggrmode=" > /var/ipfire/vpn/ipsec.conf +sed -i "s|ipsec[0-9]=||g" /var/ipfire/vpn/ipsec.conf +sed -i "s|nat_t ||g" /var/ipfire/vpn/ipsec.conf +sed -i "s|klips ||g" /var/ipfire/vpn/ipsec.conf +sed -i "s|^conn [A-Za-z].*$|&\n\tleftfirewall=yes\n\tlefthostaccess=yes|g" /var/ipfire/vpn/ipsec.conf +sed -i "s|^config setup$|&\n\tcharonstart=no|g" /var/ipfire/vpn/ipsec.conf +chown nobody:nobody /var/ipfire/vpn/ipsec.conf +chmod 644 /var/ipfire/vpn/ipsec.conf +# +# Add cryptodev to /etc/sysconfig/modules +mv /etc/sysconfig/modules /etc/sysconfig/modules.org +cat /etc/sysconfig/modules.org | \ +grep -v "cryptodev" | \ +grep -v "# End /etc/sysconfig/modules" > /etc/sysconfig/modules +echo "" >> /etc/sysconfig/modules +echo "### cryptodev" >> /etc/sysconfig/modules +echo "#" >> /etc/sysconfig/modules +echo "cryptodev" >> /etc/sysconfig/modules +echo "" >> /etc/sysconfig/modules +echo "# End /etc/sysconfig/modules" >> /etc/sysconfig/modules +chmod 644 /etc/sysconfig/modules +# Change version of Pakfire.conf +# +sed -i "s|$OLDVERSION|$NEWVERSION|g" /opt/pakfire/etc/pakfire.conf +# +# After pakfire has ended run it again and update the lists and do upgrade +# +echo '#!/bin/bash' > /tmp/pak_update +echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo '/opt/pakfire/pakfire update -y --force' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t core-upgrade-38 "Upgrade finished. If you use a customized grub.cfg"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t core-upgrade-38 "Check it before reboot !!!"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t core-upgrade-38 " *** Please reboot... *** "' >> /tmp/pak_update +# +chmod +x /tmp/pak_update +/tmp/pak_update & +# +# Start squid +/etc/init.d/squid start +# +echo +echo Please wait until pakfire has ended... +echo diff --git a/config/rootfiles/core/39/exclude b/config/rootfiles/core/39/exclude new file mode 100644 index 0000000..778cdf7 --- /dev/null +++ b/config/rootfiles/core/39/exclude @@ -0,0 +1,2 @@ +etc/ppp/chap-secrets +etc/ppp/pap-secrets diff --git a/config/rootfiles/core/39/filelists/files b/config/rootfiles/core/39/filelists/files new file mode 100644 index 0000000..b83814e --- /dev/null +++ b/config/rootfiles/core/39/filelists/files @@ -0,0 +1,17 @@ +etc/system-release +etc/rc.d/init.d/dnsmasq +etc/rc.d/init.d/networking/red +etc/rc.d/helper/getdnsfromdhcpc.pl +srv/web/ipfire/cgi-bin/pppsetup.cgi +usr/local/bin/backupiso +usr/local/bin/updxlratorctrl +usr/local/bin/urlfilterctrl +srv/web/ipfire/cgi-bin/updatexlrator.cgi +srv/web/ipfire/cgi-bin/urlfilter.cgi +srv/web/ipfire/cgi-bin/ids.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi +/opt/pakfire/lib/functions.pl +var/ipfire/langs/de.pl +var/ipfire/langs/en.pl +var/ipfire/langs/es.pl +var/ipfire/langs/fr.pl diff --git a/config/rootfiles/core/39/filelists/libevent b/config/rootfiles/core/39/filelists/libevent new file mode 120000 index 0000000..3bbbc1a --- /dev/null +++ b/config/rootfiles/core/39/filelists/libevent @@ -0,0 +1 @@ +../../../common/libevent \ No newline at end of file diff --git a/config/rootfiles/core/39/filelists/libpng b/config/rootfiles/core/39/filelists/libpng new file mode 120000 index 0000000..8ef96e2 --- /dev/null +++ b/config/rootfiles/core/39/filelists/libpng @@ -0,0 +1 @@ +../../../common/libpng \ No newline at end of file diff --git a/config/rootfiles/core/39/filelists/ppp b/config/rootfiles/core/39/filelists/ppp new file mode 120000 index 0000000..4844a9b --- /dev/null +++ b/config/rootfiles/core/39/filelists/ppp @@ -0,0 +1 @@ +../../../common/ppp \ No newline at end of file diff --git a/config/rootfiles/core/39/filelists/strongswan b/config/rootfiles/core/39/filelists/strongswan new file mode 120000 index 0000000..90c727e --- /dev/null +++ b/config/rootfiles/core/39/filelists/strongswan @@ -0,0 +1 @@ +../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/core/39/filelists/terminfo-screen b/config/rootfiles/core/39/filelists/terminfo-screen new file mode 100644 index 0000000..98962f5 --- /dev/null +++ b/config/rootfiles/core/39/filelists/terminfo-screen @@ -0,0 +1,11 @@ +usr/share/terminfo/s/screen +usr/share/terminfo/s/screen-bce +usr/share/terminfo/s/screen-s +usr/share/terminfo/s/screen-w +usr/share/terminfo/s/screen.linux +usr/share/terminfo/s/screen.teraterm +usr/share/terminfo/s/screen.xterm-new +usr/share/terminfo/s/screen.xterm-r6 +usr/share/terminfo/s/screen.xterm-xfree86 +usr/share/terminfo/s/screen2 +usr/share/terminfo/s/screen3 diff --git a/config/rootfiles/core/39/meta b/config/rootfiles/core/39/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/core/39/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/core/39/update.sh b/config/rootfiles/core/39/update.sh new file mode 100644 index 0000000..a54f5b8 --- /dev/null +++ b/config/rootfiles/core/39/update.sh @@ -0,0 +1,48 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2010 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +# Cleanup crontab +cat /var/spool/cron/root.orig | grep -v updatexlrator | grep -v urlfilter > /var/spool/cron/root.orig.temp +mv -f /var/spool/cron/root.orig.temp /var/spool/cron/root.orig +fcrontab -z + +# +#Stop services + +# +#Extract files +extract_files +# +#Start services + +# +#Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +# +#Finish +#Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/core/40/exclude b/config/rootfiles/core/40/exclude new file mode 100644 index 0000000..e69de29 diff --git a/config/rootfiles/core/40/filelists/compat-wireless b/config/rootfiles/core/40/filelists/compat-wireless new file mode 100644 index 0000000..ab7affd --- /dev/null +++ b/config/rootfiles/core/40/filelists/compat-wireless @@ -0,0 +1,206 @@ +lib/modules/2.6.32.15-ipfire/kernel/compat/compat.ko +lib/modules/2.6.32.15-ipfire/kernel/compat/compat_firmware_class.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/ath3k.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/bcm203x.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/bfusb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/bluecard_cs.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/bpa10x.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/bt3c_cs.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/btmrvl.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/btmrvl_sdio.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/btsdio.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/btuart_cs.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/btusb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/dtl1_cs.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/hci_uart.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/bluetooth/hci_vhci.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/atl1c/atl1c.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/atl1e/atl1e.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/atlx/atl1.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/atlx/atl2.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/b44.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/asix.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/catc.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/cdc-phonet.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/cdc_eem.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/cdc_ether.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/cdc_subset.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/dm9601.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/gl620a.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/hso.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/int51x1.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/kaweth.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/mcs7830.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/net1080.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/pegasus.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/plusb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/rndis_host.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/rtl8150.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/smsc95xx.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/usbnet.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/usb/zaurus.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/adm8211.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/at76c50x-usb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/ath/ath.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/b43/b43.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/ipw2x00/libipw.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/libertas/libertas.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/libertas/libertas_cs.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/libertas/usb8xxx.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/mac80211_hwsim.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/mwl8k.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/p54/p54common.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/p54/p54pci.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/p54/p54usb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rndis_wlan.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8180.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8187.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/wl12xx/wl1251.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/wl12xx/wl1271.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko +lib/modules/2.6.32.15-ipfire/kernel/drivers/ssb/ssb.ko +lib/modules/2.6.32.15-ipfire/kernel/net/bluetooth/bluetooth.ko +lib/modules/2.6.32.15-ipfire/kernel/net/bluetooth/bnep/bnep.ko +lib/modules/2.6.32.15-ipfire/kernel/net/bluetooth/cmtp/cmtp.ko +lib/modules/2.6.32.15-ipfire/kernel/net/bluetooth/hidp/hidp.ko +lib/modules/2.6.32.15-ipfire/kernel/net/bluetooth/l2cap.ko +lib/modules/2.6.32.15-ipfire/kernel/net/bluetooth/rfcomm/rfcomm.ko +lib/modules/2.6.32.15-ipfire/kernel/net/bluetooth/sco.ko +lib/modules/2.6.32.15-ipfire/kernel/net/mac80211/mac80211.ko +lib/modules/2.6.32.15-ipfire/kernel/net/wireless/cfg80211.ko +lib/modules/2.6.32.15-ipfire/kernel/net/wireless/lib80211.ko +lib/modules/2.6.32.15-ipfire/kernel/net/wireless/lib80211_crypt_ccmp.ko +lib/modules/2.6.32.15-ipfire/kernel/net/wireless/lib80211_crypt_tkip.ko +lib/modules/2.6.32.15-ipfire/kernel/net/wireless/lib80211_crypt_wep.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/compat/compat.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/compat/compat_firmware_class.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/ath3k.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/btusb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/atlx/atl1.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/atlx/atl2.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/b44.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/asix.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/catc.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/dm9601.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/gl620a.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/hso.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/int51x1.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/kaweth.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/net1080.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/pegasus.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/plusb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/usbnet.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/usb/zaurus.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/mac80211_hwsim.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1271.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/drivers/ssb/ssb.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/bluetooth/bluetooth.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/bluetooth/l2cap.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/bluetooth/sco.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/mac80211/mac80211.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/wireless/cfg80211.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/wireless/lib80211.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko +lib/modules/2.6.32.15-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko +etc/udev/rules.d/50-compat_firmware.rules +lib/udev/compat_firmware.sh diff --git a/config/rootfiles/core/40/filelists/files b/config/rootfiles/core/40/filelists/files new file mode 100644 index 0000000..3819798 --- /dev/null +++ b/config/rootfiles/core/40/filelists/files @@ -0,0 +1,14 @@ +etc/system-release +var/ipfire/langs/en.pl +var/ipfire/langs/de.pl +var/ipfire/langs/es.pl +var/ipfire/langs/fr.pl +var/ipfire/dhcp/dhcpd.conf.local +etc/rc.d/init.d/functions +srv/web/ipfire/cgi-bin/time.cgi +usr/lib/python2.7/ipaddr.pyc +usr/lib/python2.7/site-packages/drv_libxml2.py +usr/lib/python2.7/site-packages/libxml2.py +usr/lib/python2.7/site-packages/libxml2mod.so +usr/lib/python2.7/site-packages/libxml2.pyc +usr/lib/python2.7/site-packages/libxsltmod.so diff --git a/config/rootfiles/core/40/filelists/mkinitcpio b/config/rootfiles/core/40/filelists/mkinitcpio new file mode 120000 index 0000000..f9b3fde --- /dev/null +++ b/config/rootfiles/core/40/filelists/mkinitcpio @@ -0,0 +1 @@ +../../../common/mkinitcpio \ No newline at end of file diff --git a/config/rootfiles/core/40/filelists/python b/config/rootfiles/core/40/filelists/python new file mode 120000 index 0000000..ffe6e2c --- /dev/null +++ b/config/rootfiles/core/40/filelists/python @@ -0,0 +1 @@ +../../../common/python \ No newline at end of file diff --git a/config/rootfiles/core/40/meta b/config/rootfiles/core/40/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/core/40/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/core/40/update.sh b/config/rootfiles/core/40/update.sh new file mode 100644 index 0000000..11e0395 --- /dev/null +++ b/config/rootfiles/core/40/update.sh @@ -0,0 +1,51 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2010 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +# +#Stop services + +# +#Extract files +extract_files +# +#Remove old python files... +rm -rf /usr/lib/python2.4 + +# +#Start services + +# +#Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +# +#Rebuild module dep's +depmod 2.6.32.15-ipfire +depmod 2.6.32.15-ipfire-xen +# +#Finish +#Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/oldcore/37/update.sh b/config/rootfiles/oldcore/37/update.sh index e78621e..67cd0c0 100644 --- a/config/rootfiles/oldcore/37/update.sh +++ b/config/rootfiles/oldcore/37/update.sh @@ -25,22 +25,33 @@ /usr/local/bin/backupctrl exclude >/dev/null 2>&1 # #Stop services - +/etc/init.d/squid stop # #Extract files extract_files # #Start services - +/etc/init.d/squid start +/etc/init.d/apache restart +# # #Delete sensors config to force new scan rm -f /etc/sysconfig/lm_sensors
+#Create cyrus-sasl autostart links +ln -sf ../init.d/cyrus-sasl /etc/rc.d/rc0.d/K49cyrus-sasl +ln -sf ../init.d/cyrus-sasl /etc/rc.d/rc3.d/S24cyrus-sasl +ln -sf ../init.d/cyrus-sasl /etc/rc.d/rc6.d/K49cyrus-sasl + # #Update Language cache perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
# +#Fix permissions of update booster +chown -R nobody:nobody /var/ipfire/updatexlrator + +# #Run depmod to rebuld module informations depmod 2.6.27.42-ipfire depmod 2.6.27.42-ipfire-xen diff --git a/config/rootfiles/packages/alsa b/config/rootfiles/packages/alsa index 4ab1be9..d87664d 100644 --- a/config/rootfiles/packages/alsa +++ b/config/rootfiles/packages/alsa @@ -1,7 +1,6 @@ lib/firmware/aica_firmware.bin #lib/firmware/asihpi lib/firmware/asihpi/dsp2400.bin -lib/firmware/asihpi/dsp4300.bin lib/firmware/asihpi/dsp5000.bin lib/firmware/asihpi/dsp6200.bin lib/firmware/asihpi/dsp6205.bin @@ -165,6 +164,9 @@ usr/lib/alsa-lib/smixer/smixer-ac97.so #usr/lib/alsa-lib/smixer/smixer-hda.a #usr/lib/alsa-lib/smixer/smixer-hda.la usr/lib/alsa-lib/smixer/smixer-hda.so +#usr/lib/alsa-lib/smixer/smixer-python.a +#usr/lib/alsa-lib/smixer/smixer-python.la +usr/lib/alsa-lib/smixer/smixer-python.so #usr/lib/alsa-lib/smixer/smixer-sbase.a #usr/lib/alsa-lib/smixer/smixer-sbase.la usr/lib/alsa-lib/smixer/smixer-sbase.so diff --git a/config/rootfiles/packages/amavisd b/config/rootfiles/packages/amavisd index 3bed831..f2e1c3f 100644 --- a/config/rootfiles/packages/amavisd +++ b/config/rootfiles/packages/amavisd @@ -1,5 +1,5 @@ etc/amavisd.conf -etc/init.d/amavisd +etc/rc.d/init.d/amavisd usr/bin/amavisd var/amavis var/amavis/db diff --git a/config/rootfiles/packages/asterisk b/config/rootfiles/packages/asterisk index b1200d3..789ec1b 100644 --- a/config/rootfiles/packages/asterisk +++ b/config/rootfiles/packages/asterisk @@ -2517,6 +2517,6 @@ var/spool/asterisk/tmp var/spool/asterisk/voicemail/default/1234/INBOX var/spool/asterisk/voicemail/default/1234/busy.gsm var/spool/asterisk/voicemail/default/1234/unavail.gsm -etc/init.d/asterisk +etc/rc.d/init.d/asterisk srv/web/ipfire/cgi-bin/asterisk var/ipfire/menu.d/EX-asterisk.menu diff --git a/config/rootfiles/packages/clamav b/config/rootfiles/packages/clamav index 666af2a..4e05795 100644 --- a/config/rootfiles/packages/clamav +++ b/config/rootfiles/packages/clamav @@ -1,26 +1,24 @@ -#usr/bin/clamav-config -#usr/bin/clamconf +usr/bin/clamav-config +usr/bin/clambc +usr/bin/clamconf usr/bin/clamdscan usr/bin/clamdtop usr/bin/clamscan usr/bin/freshclam usr/bin/sigtool #usr/include/clamav.h -#usr/lib/libclamav.a #usr/lib/libclamav.la usr/lib/libclamav.so usr/lib/libclamav.so.6 -usr/lib/libclamav.so.6.0.5 -#usr/lib/libclamunrar.a +usr/lib/libclamav.so.6.1.3 #usr/lib/libclamunrar.la usr/lib/libclamunrar.so usr/lib/libclamunrar.so.6 -usr/lib/libclamunrar.so.6.0.5 -#usr/lib/libclamunrar_iface.a +usr/lib/libclamunrar.so.6.1.3 #usr/lib/libclamunrar_iface.la usr/lib/libclamunrar_iface.so usr/lib/libclamunrar_iface.so.6 -usr/lib/libclamunrar_iface.so.6.0.5 +usr/lib/libclamunrar_iface.so.6.1.3 #usr/lib/pkgconfig/libclamav.pc usr/sbin/clamd usr/share/clamav @@ -30,6 +28,7 @@ usr/share/clamav #usr/share/man/man1/clamscan.1 #usr/share/man/man1/freshclam.1 #usr/share/man/man1/sigtool.1 +#usr/share/man/man5/clamav-milter.conf.5 #usr/share/man/man5/clamd.conf.5 #usr/share/man/man5/freshclam.conf.5 #usr/share/man/man8/clamav-milter.8 diff --git a/config/rootfiles/packages/cryptsetup-disabled b/config/rootfiles/packages/cryptsetup-disabled deleted file mode 100644 index 65d1ed1..0000000 --- a/config/rootfiles/packages/cryptsetup-disabled +++ /dev/null @@ -1,10 +0,0 @@ -usr/include/libcryptsetup.h -usr/lib/cryptsetup -usr/lib/libcryptsetup.la -usr/lib/libcryptsetup.so -usr/lib/libcryptsetup.so.0 -usr/lib/libcryptsetup.so.0.0.0 -usr/sbin/cryptsetup -usr/share/locale/de/LC_MESSAGES/cryptsetup.mo -#usr/share/man/man8/cryptsetup.8 -#usr/share/locale/sv/LC_MESSAGES/cryptsetup.mo diff --git a/config/rootfiles/packages/ddrescue b/config/rootfiles/packages/ddrescue new file mode 100644 index 0000000..3d0a0b9 --- /dev/null +++ b/config/rootfiles/packages/ddrescue @@ -0,0 +1,3 @@ +usr/bin/ddrescue +#usr/share/info/ddrescue.info +#usr/share/man/man1/ddrescue.1 diff --git a/config/rootfiles/packages/esniper b/config/rootfiles/packages/esniper deleted file mode 100644 index 301c6d5..0000000 --- a/config/rootfiles/packages/esniper +++ /dev/null @@ -1,1078 +0,0 @@ -var/ipfire/backup/addons/includes/esniper -etc/httpd/conf/vhosts.d/esniper.conf -var/ipfire/backup/addons/includes/esniper -#srv/web/esniper -#srv/web/esniper/CHANGELOG -#srv/web/esniper/INSTALL -#srv/web/esniper/UPGRADE -srv/web/esniper/button -srv/web/esniper/button/button-fonts.php -srv/web/esniper/button/button-gray.gif -srv/web/esniper/button/button-yellow-large.gif -srv/web/esniper/button/button-yellow.gif -srv/web/esniper/button/button.dist.ini -srv/web/esniper/button/button.gif -srv/web/esniper/button/button.ini -srv/web/esniper/button/button.php -srv/web/esniper/button/fonts -srv/web/esniper/button/fonts/.ttf-fonts for button.php -srv/web/esniper/button/fonts/COPYRIGHT.TXT -srv/web/esniper/button/fonts/README.TXT -srv/web/esniper/button/fonts/RELEASENOTES.TXT -srv/web/esniper/button/fonts/Vera.ttf -srv/web/esniper/button/fonts/VeraBI.ttf -srv/web/esniper/button/fonts/VeraBd.ttf -srv/web/esniper/button/fonts/VeraIt.ttf -srv/web/esniper/button/fonts/VeraMoBI.ttf -srv/web/esniper/button/fonts/VeraMoBd.ttf -srv/web/esniper/button/fonts/VeraMoIt.ttf -srv/web/esniper/button/fonts/VeraMono.ttf -srv/web/esniper/button/fonts/VeraSe.ttf -srv/web/esniper/button/fonts/VeraSeBd.ttf -srv/web/esniper/button/fonts/local.conf -srv/web/esniper/config -srv/web/esniper/config/.htaccess -srv/web/esniper/config/config.user.dist.php -srv/web/esniper/config/ebay.parser.php -srv/web/esniper/config/ebay.php -#srv/web/esniper/doc -#srv/web/esniper/doc/.htaccess -#srv/web/esniper/doc/BUGS -#srv/web/esniper/doc/EXTENSIONPOINTS -#srv/web/esniper/doc/EXTENSIONS -#srv/web/esniper/doc/FEATURES -#srv/web/esniper/doc/LICENCE -#srv/web/esniper/doc/NEWS -#srv/web/esniper/doc/SECURITY -#srv/web/esniper/doc/TEMPLATES -#srv/web/esniper/doc/TODO -#srv/web/esniper/doc/TRANSLATIONS -srv/web/esniper/include -srv/web/esniper/include/.htaccess -srv/web/esniper/include/classes -srv/web/esniper/include/classes/esf_extension.class.php -srv/web/esniper/include/classes/esf_module.class.php -srv/web/esniper/include/classes/esf_plugin.class.php -srv/web/esniper/include/define.php -srv/web/esniper/include/dirify.php -srv/web/esniper/include/err_handler.php -srv/web/esniper/include/functions.auction.php -srv/web/esniper/include/functions.core.php -srv/web/esniper/include/functions.esf.php -srv/web/esniper/include/functions.menu.php -srv/web/esniper/include/functions.msg.php -srv/web/esniper/include/functions.tpl.php -srv/web/esniper/include/functions.translation.php -srv/web/esniper/include/functions.user.php -srv/web/esniper/include/include.php -srv/web/esniper/include/init.php -srv/web/esniper/include/kkSmartTemplate -srv/web/esniper/include/kkSmartTemplate/extensions -srv/web/esniper/include/kkSmartTemplate/extensions/_form.php -srv/web/esniper/include/kkSmartTemplate/extensions/a.php -srv/web/esniper/include/kkSmartTemplate/extensions/aimg.php -srv/web/esniper/include/kkSmartTemplate/extensions/anno.php -srv/web/esniper/include/kkSmartTemplate/extensions/calc.php -srv/web/esniper/include/kkSmartTemplate/extensions/concat.php -srv/web/esniper/include/kkSmartTemplate/extensions/config.php -srv/web/esniper/include/kkSmartTemplate/extensions/cookie.php -srv/web/esniper/include/kkSmartTemplate/extensions/count.php -srv/web/esniper/include/kkSmartTemplate/extensions/currency.php -srv/web/esniper/include/kkSmartTemplate/extensions/current_date.php -srv/web/esniper/include/kkSmartTemplate/extensions/current_datetime.php -srv/web/esniper/include/kkSmartTemplate/extensions/current_time.php -srv/web/esniper/include/kkSmartTemplate/extensions/cycle.php -srv/web/esniper/include/kkSmartTemplate/extensions/dateformat.php -srv/web/esniper/include/kkSmartTemplate/extensions/dateformatgrid.php -srv/web/esniper/include/kkSmartTemplate/extensions/db_date.php -srv/web/esniper/include/kkSmartTemplate/extensions/db_datetime.php -srv/web/esniper/include/kkSmartTemplate/extensions/db_time.php -srv/web/esniper/include/kkSmartTemplate/extensions/dump.php -srv/web/esniper/include/kkSmartTemplate/extensions/entity_decode.php -srv/web/esniper/include/kkSmartTemplate/extensions/eval.php -srv/web/esniper/include/kkSmartTemplate/extensions/fcb.php -srv/web/esniper/include/kkSmartTemplate/extensions/fdd.php -srv/web/esniper/include/kkSmartTemplate/extensions/ff.php -srv/web/esniper/include/kkSmartTemplate/extensions/fh.php -srv/web/esniper/include/kkSmartTemplate/extensions/form.php -srv/web/esniper/include/kkSmartTemplate/extensions/format.php -srv/web/esniper/include/kkSmartTemplate/extensions/fp.php -srv/web/esniper/include/kkSmartTemplate/extensions/frb.php -srv/web/esniper/include/kkSmartTemplate/extensions/frf.php -srv/web/esniper/include/kkSmartTemplate/extensions/fs.php -srv/web/esniper/include/kkSmartTemplate/extensions/ft.php -srv/web/esniper/include/kkSmartTemplate/extensions/fta.php -srv/web/esniper/include/kkSmartTemplate/extensions/gettext.php -srv/web/esniper/include/kkSmartTemplate/extensions/header.php -srv/web/esniper/include/kkSmartTemplate/extensions/help.php -srv/web/esniper/include/kkSmartTemplate/extensions/hidemail.php -srv/web/esniper/include/kkSmartTemplate/extensions/html.php -srv/web/esniper/include/kkSmartTemplate/extensions/htmlentities.php -srv/web/esniper/include/kkSmartTemplate/extensions/if.php -srv/web/esniper/include/kkSmartTemplate/extensions/img.php -srv/web/esniper/include/kkSmartTemplate/extensions/inc -srv/web/esniper/include/kkSmartTemplate/extensions/inc/datetime.php -srv/web/esniper/include/kkSmartTemplate/extensions/inc/input.php -srv/web/esniper/include/kkSmartTemplate/extensions/js.php -srv/web/esniper/include/kkSmartTemplate/extensions/load_config.php -srv/web/esniper/include/kkSmartTemplate/extensions/load_file.php -srv/web/esniper/include/kkSmartTemplate/extensions/lowercase.php -srv/web/esniper/include/kkSmartTemplate/extensions/mailto.php -srv/web/esniper/include/kkSmartTemplate/extensions/nl2br.php -srv/web/esniper/include/kkSmartTemplate/extensions/number.php -srv/web/esniper/include/kkSmartTemplate/extensions/nvl.php -srv/web/esniper/include/kkSmartTemplate/extensions/options.php -srv/web/esniper/include/kkSmartTemplate/extensions/regex.php -srv/web/esniper/include/kkSmartTemplate/extensions/replace.php -srv/web/esniper/include/kkSmartTemplate/extensions/request.php -srv/web/esniper/include/kkSmartTemplate/extensions/sequence.php -srv/web/esniper/include/kkSmartTemplate/extensions/server.php -srv/web/esniper/include/kkSmartTemplate/extensions/session.php -srv/web/esniper/include/kkSmartTemplate/extensions/striptags.php -srv/web/esniper/include/kkSmartTemplate/extensions/substr.php -srv/web/esniper/include/kkSmartTemplate/extensions/textbutton.php -srv/web/esniper/include/kkSmartTemplate/extensions/translate.php -srv/web/esniper/include/kkSmartTemplate/extensions/trim.php -srv/web/esniper/include/kkSmartTemplate/extensions/truncate.php -srv/web/esniper/include/kkSmartTemplate/extensions/uppercase.php -srv/web/esniper/include/kkSmartTemplate/extensions/url.php -srv/web/esniper/include/kkSmartTemplate/extensions/urlencode.php -srv/web/esniper/include/kkSmartTemplate/kkSmartTemplate.Debugger.class.php -srv/web/esniper/include/kkSmartTemplate/kkSmartTemplate.cache.class.php -srv/web/esniper/include/kkSmartTemplate/kkSmartTemplate.class.php -srv/web/esniper/include/kkSmartTemplate/org.zip -srv/web/esniper/include/md5crypt.php -srv/web/esniper/include/parseinifile.php -srv/web/esniper/include/tz.ini -srv/web/esniper/index.php -srv/web/esniper/js -srv/web/esniper/js/_load.js -srv/web/esniper/js/dialog -srv/web/esniper/js/dialog/ball.gif -srv/web/esniper/js/dialog/dialog.js -srv/web/esniper/js/dialog/dialog.save.js -srv/web/esniper/js/dump -srv/web/esniper/js/dump/dump.js -srv/web/esniper/js/efa -srv/web/esniper/js/efa/cookies.full.js -srv/web/esniper/js/efa/cookies.js -srv/web/esniper/js/efa/efa_fontsize.full.js -srv/web/esniper/js/efa/efa_fontsize.js -srv/web/esniper/js/efa/styleswitcher.js -srv/web/esniper/js/esf_cookies -srv/web/esniper/js/esf_cookies/esf_cookies.full.js -srv/web/esniper/js/esf_cookies/esf_cookies.js -srv/web/esniper/js/jsDebugger -srv/web/esniper/js/jsDebugger/jsc -srv/web/esniper/js/jsDebugger/jsc/book-close.gif -srv/web/esniper/js/jsDebugger/jsc/book-open.gif -srv/web/esniper/js/jsDebugger/jsc/book.gif -srv/web/esniper/js/jsDebugger/jsc/chmfile.gif -srv/web/esniper/js/jsDebugger/jsc/down.gif -srv/web/esniper/js/jsDebugger/jsc/extra -srv/web/esniper/js/jsDebugger/jsc/extra/jsDebugger-blocks.css -srv/web/esniper/js/jsDebugger/jsc/extra/jsDebugger.css -srv/web/esniper/js/jsDebugger/jsc/extra/jsDebugger.js -srv/web/esniper/js/jsDebugger/jsc/extra/jsDebuggerTools.js -srv/web/esniper/js/jsDebugger/jsc/extra/test-loadScript.js -srv/web/esniper/js/jsDebugger/jsc/extra/test-loadStyle.css -srv/web/esniper/js/jsDebugger/jsc/field.gif -srv/web/esniper/js/jsDebugger/jsc/file-delete.gif -srv/web/esniper/js/jsDebugger/jsc/file-new.gif -srv/web/esniper/js/jsDebugger/jsc/file-open.gif -srv/web/esniper/js/jsDebugger/jsc/file-save.gif -srv/web/esniper/js/jsDebugger/jsc/file-xml.gif -srv/web/esniper/js/jsDebugger/jsc/file-xml2.gif -srv/web/esniper/js/jsDebugger/jsc/file.gif -srv/web/esniper/js/jsDebugger/jsc/file2.gif -srv/web/esniper/js/jsDebugger/jsc/folder.gif -srv/web/esniper/js/jsDebugger/jsc/jsComponents.css -srv/web/esniper/js/jsDebugger/jsc/jsComponents.js -srv/web/esniper/js/jsDebugger/jsc/left.gif -srv/web/esniper/js/jsDebugger/jsc/minus.gif -srv/web/esniper/js/jsDebugger/jsc/onepix.gif -srv/web/esniper/js/jsDebugger/jsc/plus.gif -srv/web/esniper/js/jsDebugger/jsc/right.gif -srv/web/esniper/js/jsDebugger/jsc/up.gif -srv/web/esniper/js/jsDebugger/jscomponents-demo.html -srv/web/esniper/js/jsDebugger/jsdebugger-demo.html -srv/web/esniper/js/jsDebugger/jsdebugger.zip -srv/web/esniper/js/jsDebugger/release.zip -srv/web/esniper/js/jsDebugger/tips.xhtml -srv/web/esniper/js/prototype -srv/web/esniper/js/prototype/1.6.0.2 -srv/web/esniper/js/prototype/1.6.0.2/prototype.js -srv/web/esniper/js/prototypePlus -srv/web/esniper/js/prototypePlus/1.6.0.2 -srv/web/esniper/js/prototypePlus/1.6.0.2/prototypePlus.js -srv/web/esniper/js/scriptaculous -srv/web/esniper/js/scriptaculous/1.8.0 -srv/web/esniper/js/scriptaculous/1.8.0/builder.js -srv/web/esniper/js/scriptaculous/1.8.0/controls.js -srv/web/esniper/js/scriptaculous/1.8.0/dragdrop.js -srv/web/esniper/js/scriptaculous/1.8.0/effects.js -srv/web/esniper/js/scriptaculous/1.8.0/scriptaculous.js -srv/web/esniper/js/scriptaculous/1.8.0/slider.js -srv/web/esniper/js/scriptaculous/1.8.0/sound.js -srv/web/esniper/js/scriptaculous/1.8.0/unittest.js -srv/web/esniper/js/sprintf -srv/web/esniper/js/sprintf/sprintf.js -srv/web/esniper/js/tabber -srv/web/esniper/js/tabber/tabber.css -srv/web/esniper/js/tabber/tabber.full.js -srv/web/esniper/js/tabber/tabber.js -srv/web/esniper/js/tooltip.full.js -srv/web/esniper/js/tooltip.js -srv/web/esniper/js/wz -srv/web/esniper/js/wz/tip_balloon -srv/web/esniper/js/wz/tip_balloon.js -srv/web/esniper/js/wz/tip_balloon/b.gif -srv/web/esniper/js/wz/tip_balloon/background.gif -srv/web/esniper/js/wz/tip_balloon/l.gif -srv/web/esniper/js/wz/tip_balloon/lb.gif -srv/web/esniper/js/wz/tip_balloon/lt.gif -srv/web/esniper/js/wz/tip_balloon/r.gif -srv/web/esniper/js/wz/tip_balloon/rb.gif -srv/web/esniper/js/wz/tip_balloon/rt.gif -srv/web/esniper/js/wz/tip_balloon/stemb.gif -srv/web/esniper/js/wz/tip_balloon/stemt.gif -srv/web/esniper/js/wz/tip_balloon/t.gif -srv/web/esniper/js/wz/tip_centerwindow.js -srv/web/esniper/js/wz/tip_followscroll.js -srv/web/esniper/js/wz/tip_tagtotipex.js -srv/web/esniper/js/wz/tip_titlepadding.js -srv/web/esniper/js/wz/tip_titletocontent.js -srv/web/esniper/js/wz/wz_tooltip.full.js -srv/web/esniper/js/wz/wz_tooltip.js -srv/web/esniper/language -srv/web/esniper/language/.htaccess -srv/web/esniper/language/README -srv/web/esniper/language/de.php -srv/web/esniper/language/en.php -srv/web/esniper/language/images -srv/web/esniper/language/images/de.gif -srv/web/esniper/language/images/de2.gif -srv/web/esniper/language/images/en.gif -srv/web/esniper/language/images/en2.gif -srv/web/esniper/language/languages.ini -srv/web/esniper/layout -srv/web/esniper/layout/default -srv/web/esniper/layout/default/doc -srv/web/esniper/layout/default/doc/content.txt -srv/web/esniper/layout/default/doc/footer.txt -srv/web/esniper/layout/default/doc/form.ebaysearch.txt -srv/web/esniper/layout/default/doc/header.txt -srv/web/esniper/layout/default/doc/menu.full.txt -srv/web/esniper/layout/default/doc/menu.image.txt -srv/web/esniper/layout/default/doc/menu.text.txt -srv/web/esniper/layout/default/doctype.tpl -srv/web/esniper/layout/default/doctype.xml.tpl -srv/web/esniper/layout/default/html.content.tpl -srv/web/esniper/layout/default/html.end.tpl -srv/web/esniper/layout/default/html.footer.tpl -srv/web/esniper/layout/default/html.head.tpl -srv/web/esniper/layout/default/html.header.tpl -srv/web/esniper/layout/default/html.start.tpl -srv/web/esniper/layout/default/images -srv/web/esniper/layout/default/images/arrow-up.gif -srv/web/esniper/layout/default/images/clock.gif -srv/web/esniper/layout/default/images/close.jpg -srv/web/esniper/layout/default/images/delete.gif -srv/web/esniper/layout/default/images/ebay-back.gif -srv/web/esniper/layout/default/images/ebay.gif -srv/web/esniper/layout/default/images/edit-d.gif -srv/web/esniper/layout/default/images/edit.gif -srv/web/esniper/layout/default/images/extern.gif -srv/web/esniper/layout/default/images/extern.org.gif -srv/web/esniper/layout/default/images/externEbay.gif -srv/web/esniper/layout/default/images/externSF.gif -srv/web/esniper/layout/default/images/li.gif -srv/web/esniper/layout/default/images/logo.gif -srv/web/esniper/layout/default/images/logoEbay.gif -srv/web/esniper/layout/default/images/mark.gif -srv/web/esniper/layout/default/images/mark1.gif -srv/web/esniper/layout/default/images/marker.gif -srv/web/esniper/layout/default/images/menuback.png -srv/web/esniper/layout/default/images/money.gif -srv/web/esniper/layout/default/images/ok.gif -srv/web/esniper/layout/default/images/popupheader.png -srv/web/esniper/layout/default/images/refresh.gif -srv/web/esniper/layout/default/images/save.gif -srv/web/esniper/layout/default/images/start-d.gif -srv/web/esniper/layout/default/images/start.gif -srv/web/esniper/layout/default/images/stop.gif -srv/web/esniper/layout/default/images/th.png -srv/web/esniper/layout/default/images/tool.gif -srv/web/esniper/layout/default/images/x.gif -srv/web/esniper/layout/default/images/zoomIn.gif -srv/web/esniper/layout/default/images/zoomOut.gif -srv/web/esniper/layout/default/images/zoomReset.gif -srv/web/esniper/layout/default/menu.full.tpl -srv/web/esniper/layout/default/menu.image.tpl -srv/web/esniper/layout/default/menu.text.tpl -srv/web/esniper/layout/default/menu.tpl -srv/web/esniper/layout/default/popup.title.tpl -srv/web/esniper/layout/default/print.css -srv/web/esniper/layout/default/print.full.css -srv/web/esniper/layout/default/style.css -srv/web/esniper/layout/default/style.full.css -srv/web/esniper/layout/default/tooltip.tpl -srv/web/esniper/layout/favicon.ico -srv/web/esniper/layout/gauge.php -srv/web/esniper/layout/image.php -srv/web/esniper/layout/images -srv/web/esniper/layout/images/help.gif -srv/web/esniper/layout/images/powered -srv/web/esniper/layout/images/powered/apache.gif -srv/web/esniper/layout/images/powered/css.gif -srv/web/esniper/layout/images/powered/esf-gray.gif -srv/web/esniper/layout/images/powered/esf.gif -srv/web/esniper/layout/images/powered/esniper.gif -srv/web/esniper/layout/images/powered/iis.gif -srv/web/esniper/layout/images/powered/lighttpd.gif -srv/web/esniper/layout/images/powered/php.gif -srv/web/esniper/layout/images/powered/powered.gif -srv/web/esniper/layout/images/powered/sf.net.gif -srv/web/esniper/layout/images/powered/wz_dragdrop.gif -srv/web/esniper/layout/images/powered/wz_tooltip.gif -srv/web/esniper/layout/images/powered/xhtml-1.0.gif -srv/web/esniper/layout/p.gif -srv/web/esniper/layout/script.full.js -srv/web/esniper/layout/script.js -srv/web/esniper/layout/text.css -srv/web/esniper/module -srv/web/esniper/module/.htaccess -srv/web/esniper/module/README -srv/web/esniper/module/analyse -srv/web/esniper/module/analyse/.htaccess -srv/web/esniper/module/analyse/analyse.php -srv/web/esniper/module/analyse/common.php -srv/web/esniper/module/analyse/config.php -srv/web/esniper/module/analyse/configuration.php -srv/web/esniper/module/analyse/functions.php -srv/web/esniper/module/analyse/help -srv/web/esniper/module/analyse/help/de.htm -srv/web/esniper/module/analyse/install -srv/web/esniper/module/analyse/install.php -srv/web/esniper/module/analyse/install/jpgraph1.zip -srv/web/esniper/module/analyse/install/jpgraph2.zip -srv/web/esniper/module/analyse/language -srv/web/esniper/module/analyse/language/de.configuration.php -srv/web/esniper/module/analyse/language/de.php -srv/web/esniper/module/analyse/language/en.configuration.php -srv/web/esniper/module/analyse/language/en.php -srv/web/esniper/module/analyse/layout -srv/web/esniper/module/analyse/layout/default -srv/web/esniper/module/analyse/layout/default/content.index.tpl -srv/web/esniper/module/analyse/layout/default/content.show.tpl -srv/web/esniper/module/analyse/layout/default/content.showmulti.tpl -srv/web/esniper/module/analyse/layout/default/images -srv/web/esniper/module/analyse/layout/default/images/analyse.gif -srv/web/esniper/module/analyse/layout/default/images/hide.gif -srv/web/esniper/module/analyse/layout/default/images/show.gif -srv/web/esniper/module/analyse/layout/default/script.js -srv/web/esniper/module/analyse/layout/default/style.css -srv/web/esniper/module/analyse/prepare.php -srv/web/esniper/module/analyse/process.php -srv/web/esniper/module/auction -srv/web/esniper/module/auction/CHANGELOG -srv/web/esniper/module/auction/common.php -srv/web/esniper/module/auction/config.php -srv/web/esniper/module/auction/configuration.php -srv/web/esniper/module/auction/define.php -srv/web/esniper/module/auction/functions.php -srv/web/esniper/module/auction/help -srv/web/esniper/module/auction/help/en.htm -srv/web/esniper/module/auction/language -srv/web/esniper/module/auction/language/de.configuration.php -srv/web/esniper/module/auction/language/de.php -srv/web/esniper/module/auction/language/en.configuration.php -srv/web/esniper/module/auction/language/en.php -srv/web/esniper/module/auction/layout -srv/web/esniper/module/auction/layout/default -srv/web/esniper/module/auction/layout/default/auction.show.ended.tpl -srv/web/esniper/module/auction/layout/default/auction.show.tpl -srv/web/esniper/module/auction/layout/default/content.cleanup.tpl -srv/web/esniper/module/auction/layout/default/content.delete.tpl -srv/web/esniper/module/auction/layout/default/content.editauction.tpl -srv/web/esniper/module/auction/layout/default/content.editgroup.tpl -srv/web/esniper/module/auction/layout/default/content.index.tpl -srv/web/esniper/module/auction/layout/default/form.cleanup.tpl -srv/web/esniper/module/auction/layout/default/form.delete.tpl -srv/web/esniper/module/auction/layout/default/form.editauction.tpl -srv/web/esniper/module/auction/layout/default/form.editgroup.tpl -srv/web/esniper/module/auction/layout/default/group.show.ended.tpl -srv/web/esniper/module/auction/layout/default/group.show.tpl -srv/web/esniper/module/auction/layout/default/images -srv/web/esniper/module/auction/layout/default/images/UePlus.gif -srv/web/esniper/module/auction/layout/default/images/amazon.gif -srv/web/esniper/module/auction/layout/default/images/arrow-left.gif -srv/web/esniper/module/auction/layout/default/images/arrow-right.gif -srv/web/esniper/module/auction/layout/default/images/arrow.gif -srv/web/esniper/module/auction/layout/default/images/auction.gif -srv/web/esniper/module/auction/layout/default/images/auction1.gif -srv/web/esniper/module/auction/layout/default/images/de -srv/web/esniper/module/auction/layout/default/images/de/bin.gif -srv/web/esniper/module/auction/layout/default/images/en -srv/web/esniper/module/auction/layout/default/images/en/bin.gif -srv/web/esniper/module/auction/layout/default/images/go.gif -srv/web/esniper/module/auction/layout/default/images/greenback.png -srv/web/esniper/module/auction/layout/default/images/greenback1.png -srv/web/esniper/module/auction/layout/default/images/mybid.gif -srv/web/esniper/module/auction/layout/default/images/mybid2.gif -srv/web/esniper/module/auction/layout/default/images/paypal.gif -srv/web/esniper/module/auction/layout/default/images/rotate-left.gif -srv/web/esniper/module/auction/layout/default/images/rotate-right.gif -srv/web/esniper/module/auction/layout/default/images/total.gif -srv/web/esniper/module/auction/layout/default/images/wait.gif -srv/web/esniper/module/auction/layout/default/inc.amazon.tpl -srv/web/esniper/module/auction/layout/default/inc.auction.delete.tpl -srv/web/esniper/module/auction/layout/default/inc.auction.edit.tpl -srv/web/esniper/module/auction/layout/default/inc.cookies.tpl -srv/web/esniper/module/auction/layout/default/inc.group.edit.tpl -srv/web/esniper/module/auction/layout/default/inc.group.startstop.tpl -srv/web/esniper/module/auction/layout/default/inc.image.tpl -srv/web/esniper/module/auction/layout/default/inc.multiswitch.tpl -srv/web/esniper/module/auction/layout/default/inc.payment.tpl -srv/web/esniper/module/auction/layout/default/inc.popups.tpl -srv/web/esniper/module/auction/layout/default/inc.remain.tpl -srv/web/esniper/module/auction/layout/default/inc.seller.tpl -srv/web/esniper/module/auction/layout/default/row.add.tpl -srv/web/esniper/module/auction/layout/default/row.category.tpl -srv/web/esniper/module/auction/layout/default/row.multi.tpl -srv/web/esniper/module/auction/layout/default/row.th.1.tpl -srv/web/esniper/module/auction/layout/default/row.th.2.tpl -srv/web/esniper/module/auction/layout/default/row.th.tpl -srv/web/esniper/module/auction/layout/default/style.css -srv/web/esniper/module/auction/layout/default/style.full.css -srv/web/esniper/module/auction/layout/dragdrop -srv/web/esniper/module/auction/layout/dragdrop/auction.show.tpl -srv/web/esniper/module/auction/layout/dragdrop/content.index.tpl -srv/web/esniper/module/auction/layout/dragdrop/group.show.tpl -srv/web/esniper/module/auction/layout/dragdrop/images -srv/web/esniper/module/auction/layout/dragdrop/images/dragger.gif -srv/web/esniper/module/auction/layout/dragdrop/images/target-d.gif -srv/web/esniper/module/auction/layout/dragdrop/images/target-hover.gif -srv/web/esniper/module/auction/layout/dragdrop/images/target.gif -srv/web/esniper/module/auction/layout/dragdrop/row.category.tpl -srv/web/esniper/module/auction/layout/dragdrop/row.th.1.tpl -srv/web/esniper/module/auction/layout/dragdrop/script.js -srv/web/esniper/module/auction/layout/dragdrop/style.css -srv/web/esniper/module/auction/layout/large -srv/web/esniper/module/auction/layout/large.php -srv/web/esniper/module/auction/layout/large/auction.show.tpl -srv/web/esniper/module/auction/layout/large/row.th.tpl -srv/web/esniper/module/auction/layout/missing.png -srv/web/esniper/module/auction/layout/noimage.gif -srv/web/esniper/module/auction/layout/script.js -srv/web/esniper/module/auction/layout/small -srv/web/esniper/module/auction/layout/small.php -srv/web/esniper/module/auction/layout/small/auction.show.ended.tpl -srv/web/esniper/module/auction/layout/small/auction.show.tpl -srv/web/esniper/module/auction/layout/small/group.show.tpl -srv/web/esniper/module/auction/layout/style.css -srv/web/esniper/module/auction/plugin.php -srv/web/esniper/module/auction/prepare.php -srv/web/esniper/module/auction/process.php -srv/web/esniper/module/auction_0.6.1.zip -srv/web/esniper/module/backend -srv/web/esniper/module/backend/common.php -srv/web/esniper/module/backend/config.php -srv/web/esniper/module/backend/configuration.php -srv/web/esniper/module/backend/dZip -srv/web/esniper/module/backend/dZip/dUnzip2.gif -srv/web/esniper/module/backend/dZip/dUnzip2.inc.php -srv/web/esniper/module/backend/dZip/dZip.inc.php -srv/web/esniper/module/backend/dZip/documentation.txt -srv/web/esniper/module/backend/dZip/sample.php -srv/web/esniper/module/backend/functions.php -srv/web/esniper/module/backend/help -srv/web/esniper/module/backend/language -srv/web/esniper/module/backend/language/de.php -srv/web/esniper/module/backend/language/en.php -srv/web/esniper/module/backend/layout -srv/web/esniper/module/backend/layout/default -srv/web/esniper/module/backend/layout/default/content.index.tpl -srv/web/esniper/module/backend/layout/default/content.info.tpl -srv/web/esniper/module/backend/layout/default/images -srv/web/esniper/module/backend/layout/default/images/.images -srv/web/esniper/module/backend/layout/default/images/.images/failed.gif -srv/web/esniper/module/backend/layout/default/images/.images/failed1.gif -srv/web/esniper/module/backend/layout/default/images/.images/failed2.gif -srv/web/esniper/module/backend/layout/default/images/.images/notok1.gif -srv/web/esniper/module/backend/layout/default/images/.images/notok2.gif -srv/web/esniper/module/backend/layout/default/images/.images/ok1.gif -srv/web/esniper/module/backend/layout/default/images/.images/ok2.gif -srv/web/esniper/module/backend/layout/default/images/.images/passed.gif -srv/web/esniper/module/backend/layout/default/images/.images/passed1.gif -srv/web/esniper/module/backend/layout/default/images/.images/passed2.gif -srv/web/esniper/module/backend/layout/default/images/active.gif -srv/web/esniper/module/backend/layout/default/images/backend.gif -srv/web/esniper/module/backend/layout/default/images/delete.gif -srv/web/esniper/module/backend/layout/default/images/inactive.gif -srv/web/esniper/module/backend/layout/default/images/info.gif -srv/web/esniper/module/backend/layout/default/images/ok.gif -srv/web/esniper/module/backend/layout/default/style.css -srv/web/esniper/module/backend/plugin.php -srv/web/esniper/module/backend/prepare.php -srv/web/esniper/module/backend/process.php -srv/web/esniper/module/backup -srv/web/esniper/module/backup/common.php -srv/web/esniper/module/backup/config.php -srv/web/esniper/module/backup/configuration.php -srv/web/esniper/module/backup/functions.php -srv/web/esniper/module/backup/install.php -srv/web/esniper/module/backup/language -srv/web/esniper/module/backup/language/de.configuration.php -srv/web/esniper/module/backup/language/de.php -srv/web/esniper/module/backup/language/en.configuration.php -srv/web/esniper/module/backup/language/en.php -srv/web/esniper/module/backup/layout -srv/web/esniper/module/backup/layout/default -srv/web/esniper/module/backup/layout/default/content.empty.tpl -srv/web/esniper/module/backup/layout/default/content.index.tpl -srv/web/esniper/module/backup/layout/default/content.show.tpl -srv/web/esniper/module/backup/layout/default/content.tpl -srv/web/esniper/module/backup/layout/default/images -srv/web/esniper/module/backup/layout/default/images/backup.gif -srv/web/esniper/module/backup/layout/default/images/detail.gif -srv/web/esniper/module/backup/layout/default/images/locked.gif -srv/web/esniper/module/backup/layout/default/images/unlocked.gif -srv/web/esniper/module/backup/layout/default/script.js -srv/web/esniper/module/backup/layout/default/style.css -srv/web/esniper/module/backup/plugin.php -srv/web/esniper/module/backup/prepare.php -srv/web/esniper/module/backup/process.php -srv/web/esniper/module/configuration -srv/web/esniper/module/configuration/common.php -srv/web/esniper/module/configuration/config.php -srv/web/esniper/module/configuration/configuration.php -srv/web/esniper/module/configuration/define.php -srv/web/esniper/module/configuration/functions.php -srv/web/esniper/module/configuration/help -srv/web/esniper/module/configuration/install.php -srv/web/esniper/module/configuration/language -srv/web/esniper/module/configuration/language/de.configuration.php -srv/web/esniper/module/configuration/language/de.php -srv/web/esniper/module/configuration/language/en.configuration.php -srv/web/esniper/module/configuration/language/en.php -srv/web/esniper/module/configuration/layout -srv/web/esniper/module/configuration/layout/default -srv/web/esniper/module/configuration/layout/default/content.edit.tpl -srv/web/esniper/module/configuration/layout/default/content.index.tpl -srv/web/esniper/module/configuration/layout/default/images -srv/web/esniper/module/configuration/layout/default/images/configuration.gif -srv/web/esniper/module/configuration/layout/default/style.css -srv/web/esniper/module/configuration/plugin.php -srv/web/esniper/module/configuration/prepare.php -srv/web/esniper/module/configuration/process.php -srv/web/esniper/module/googlegadgets -srv/web/esniper/module/googlegadgets/common.php -srv/web/esniper/module/googlegadgets/config.php -srv/web/esniper/module/googlegadgets/configuration.php -srv/web/esniper/module/googlegadgets/help -srv/web/esniper/module/googlegadgets/language -srv/web/esniper/module/googlegadgets/language/de.configuration.php -srv/web/esniper/module/googlegadgets/language/de.php -srv/web/esniper/module/googlegadgets/language/en.configuration.php -srv/web/esniper/module/googlegadgets/language/en.php -srv/web/esniper/module/googlegadgets/layout -srv/web/esniper/module/googlegadgets/layout/default -srv/web/esniper/module/googlegadgets/layout/default/content.index.tpl -srv/web/esniper/module/googlegadgets/layout/default/images -srv/web/esniper/module/googlegadgets/layout/default/images/gadgets.gif -srv/web/esniper/module/googlegadgets/layout/default/style.css -srv/web/esniper/module/googlegadgets/process.php -srv/web/esniper/module/help -srv/web/esniper/module/help/common.php -srv/web/esniper/module/help/config.php -srv/web/esniper/module/help/language -srv/web/esniper/module/help/language/de.php -srv/web/esniper/module/help/language/en.php -srv/web/esniper/module/help/layout -srv/web/esniper/module/help/layout/default -srv/web/esniper/module/help/layout/default/content.edit.tpl -srv/web/esniper/module/help/layout/default/content.index.tpl -srv/web/esniper/module/help/layout/default/content.show.tpl -srv/web/esniper/module/help/layout/default/images -srv/web/esniper/module/help/layout/default/images/help.gif -srv/web/esniper/module/help/layout/default/style.css -srv/web/esniper/module/help/prepare.php -srv/web/esniper/module/help/process.php -srv/web/esniper/module/help/template.htm -srv/web/esniper/module/index -srv/web/esniper/module/index/common.php -srv/web/esniper/module/index/config.php -srv/web/esniper/module/index/language -srv/web/esniper/module/index/language/de.htm -srv/web/esniper/module/index/language/de.php -srv/web/esniper/module/index/language/en.htm -srv/web/esniper/module/index/language/en.php -srv/web/esniper/module/index/layout -srv/web/esniper/module/index/layout/default -srv/web/esniper/module/index/layout/default/content.index.tpl -srv/web/esniper/module/index/layout/default/images -srv/web/esniper/module/index/layout/default/images/index.gif -srv/web/esniper/module/index/layout/default/images/index1.gif -srv/web/esniper/module/index/process.php -srv/web/esniper/module/logfiles -srv/web/esniper/module/logfiles/common.php -srv/web/esniper/module/logfiles/config.php -srv/web/esniper/module/logfiles/configuration.php -srv/web/esniper/module/logfiles/language -srv/web/esniper/module/logfiles/language/de.configuration.php -srv/web/esniper/module/logfiles/language/de.php -srv/web/esniper/module/logfiles/language/en.configuration.php -srv/web/esniper/module/logfiles/language/en.php -srv/web/esniper/module/logfiles/layout -srv/web/esniper/module/logfiles/layout/default -srv/web/esniper/module/logfiles/layout/default/content.bug.tpl -srv/web/esniper/module/logfiles/layout/default/content.index.tpl -srv/web/esniper/module/logfiles/layout/default/content.show.tpl -srv/web/esniper/module/logfiles/layout/default/images -srv/web/esniper/module/logfiles/layout/default/images/logfiles.gif -srv/web/esniper/module/logfiles/layout/default/images/logfiles1.gif -srv/web/esniper/module/logfiles/layout/default/images/show.gif -srv/web/esniper/module/logfiles/layout/default/style.css -srv/web/esniper/module/logfiles/prepare.php -srv/web/esniper/module/logfiles/process.php -srv/web/esniper/module/login -srv/web/esniper/module/login/CHANGELOG -srv/web/esniper/module/login/HowToAutomaticLogin.txt -srv/web/esniper/module/login/common.php -srv/web/esniper/module/login/config.php -srv/web/esniper/module/login/configuration.php -srv/web/esniper/module/login/help -srv/web/esniper/module/login/help/en.htm -srv/web/esniper/module/login/language -srv/web/esniper/module/login/language/de.php -srv/web/esniper/module/login/language/en.php -srv/web/esniper/module/login/layout -srv/web/esniper/module/login/layout/default -srv/web/esniper/module/login/layout/default/content.index.tpl -srv/web/esniper/module/login/layout/default/images -srv/web/esniper/module/login/layout/default/images/background.gif -srv/web/esniper/module/login/layout/default/images/background.jpg -srv/web/esniper/module/login/layout/default/images/background1.jpg -srv/web/esniper/module/login/layout/default/images/bild.jpg -srv/web/esniper/module/login/layout/default/images/login.gif -srv/web/esniper/module/login/layout/default/images/login1.gif -srv/web/esniper/module/login/layout/default/images/table_background_account.gif -srv/web/esniper/module/login/layout/default/images/table_background_login.gif -srv/web/esniper/module/login/layout/default/images/table_background_login.jpg -srv/web/esniper/module/login/layout/default/images/table_background_login1.gif -srv/web/esniper/module/login/layout/default/images/table_background_login1.jpg -srv/web/esniper/module/login/layout/default/images/table_background_login4.gif -srv/web/esniper/module/login/layout/default/images/table_background_login4.jpg -srv/web/esniper/module/login/layout/default/style.css -srv/web/esniper/module/login/prepare.php -srv/web/esniper/module/login/process.php -srv/web/esniper/module/logout -srv/web/esniper/module/logout/common.php -srv/web/esniper/module/logout/config.php -srv/web/esniper/module/logout/language -srv/web/esniper/module/logout/language/de.php -srv/web/esniper/module/logout/language/en.php -srv/web/esniper/module/logout/layout -srv/web/esniper/module/logout/layout/default -srv/web/esniper/module/logout/layout/default/images -srv/web/esniper/module/logout/layout/default/images/logout.gif -srv/web/esniper/module/logout/layout/default/images/logout1.gif -srv/web/esniper/module/logout/prepare.php -srv/web/esniper/module/modules.php -srv/web/esniper/module/process -srv/web/esniper/module/process/common.php -srv/web/esniper/module/process/config.php -srv/web/esniper/module/process/configuration.php -srv/web/esniper/module/process/help -srv/web/esniper/module/process/help/de.htm -srv/web/esniper/module/process/language -srv/web/esniper/module/process/language/de.configuration.php -srv/web/esniper/module/process/language/de.php -srv/web/esniper/module/process/language/en.configuration.php -srv/web/esniper/module/process/language/en.php -srv/web/esniper/module/process/layout -srv/web/esniper/module/process/layout/default -srv/web/esniper/module/process/layout/default/content.index.tpl -srv/web/esniper/module/process/layout/default/images -srv/web/esniper/module/process/layout/default/images/process.gif -srv/web/esniper/module/process/layout/default/images/process1.gif -srv/web/esniper/module/process/layout/default/style.css -srv/web/esniper/module/process/prepare.php -srv/web/esniper/module/process/process.php -srv/web/esniper/module/protocol -srv/web/esniper/module/protocol/common.php -srv/web/esniper/module/protocol/config.php -srv/web/esniper/module/protocol/configuration.php -srv/web/esniper/module/protocol/help -srv/web/esniper/module/protocol/help/de.htm -srv/web/esniper/module/protocol/language -srv/web/esniper/module/protocol/language/de.configuration.php -srv/web/esniper/module/protocol/language/de.php -srv/web/esniper/module/protocol/language/en.configuration.php -srv/web/esniper/module/protocol/language/en.php -srv/web/esniper/module/protocol/layout -srv/web/esniper/module/protocol/layout/default -srv/web/esniper/module/protocol/layout/default/content.empty.tpl -srv/web/esniper/module/protocol/layout/default/content.index.tpl -srv/web/esniper/module/protocol/layout/default/content.show.tpl -srv/web/esniper/module/protocol/layout/default/images -srv/web/esniper/module/protocol/layout/default/images/protocol.gif -srv/web/esniper/module/protocol/layout/default/images/protocol1.gif -srv/web/esniper/module/protocol/layout/default/images/show.gif -srv/web/esniper/module/protocol/layout/default/style.css -srv/web/esniper/module/protocol/layout/table -srv/web/esniper/module/protocol/layout/table/content.index.tpl -srv/web/esniper/module/protocol/prepare.php -srv/web/esniper/module/protocol/process.php -srv/web/esniper/module/refresh -srv/web/esniper/module/refresh/common.php -srv/web/esniper/module/refresh/config.php -srv/web/esniper/module/refresh/configuration.php -srv/web/esniper/module/refresh/install.php -srv/web/esniper/module/refresh/language -srv/web/esniper/module/refresh/language/de.configuration.php -srv/web/esniper/module/refresh/language/de.php -srv/web/esniper/module/refresh/language/en.configuration.php -srv/web/esniper/module/refresh/language/en.php -srv/web/esniper/module/refresh/layout -srv/web/esniper/module/refresh/layout/default -srv/web/esniper/module/refresh/layout/default/images -srv/web/esniper/module/refresh/layout/default/images/refresh.gif -srv/web/esniper/module/refresh/layout/default/images/refresh1.gif -srv/web/esniper/module/refresh/layout/default/images/wait.gif -srv/web/esniper/module/refresh/layout/default/style.css -srv/web/esniper/module/refresh/plugin.php -srv/web/esniper/module/refresh/prepare.php -srv/web/esniper/module/rss -srv/web/esniper/module/rss/CHANGELOG -srv/web/esniper/module/rss/_htaccess -srv/web/esniper/module/rss/config.php -srv/web/esniper/module/rss/feed -srv/web/esniper/module/rss/feed/dboxticker -srv/web/esniper/module/rss/feed/dboxticker.php -srv/web/esniper/module/rss/feed/dboxticker/inc.auction.tpl -srv/web/esniper/module/rss/feed/dboxticker/inc.channel.tpl -srv/web/esniper/module/rss/feed/dboxticker_short -srv/web/esniper/module/rss/feed/dboxticker_short.php -srv/web/esniper/module/rss/feed/dboxticker_short/inc.auction.tpl -srv/web/esniper/module/rss/feed/dboxticker_short/inc.channel.tpl -srv/web/esniper/module/rss/feed/default -srv/web/esniper/module/rss/feed/default/inc.auction.tpl -srv/web/esniper/module/rss/feed/default/inc.channel.tpl -srv/web/esniper/module/rss/feed/default/rss.xml -srv/web/esniper/module/rss/feed/error.xml -srv/web/esniper/module/rss/feed/short -srv/web/esniper/module/rss/feed/short/rss.xml -srv/web/esniper/module/rss/functions.php -srv/web/esniper/module/rss/help -srv/web/esniper/module/rss/help/en.htm -srv/web/esniper/module/rss/install.php -srv/web/esniper/module/rss/language -srv/web/esniper/module/rss/language/de.php -srv/web/esniper/module/rss/language/en.php -srv/web/esniper/module/rss/layout -srv/web/esniper/module/rss/layout/default -srv/web/esniper/module/rss/layout/default/content.tpl -srv/web/esniper/module/rss/layout/default/images -srv/web/esniper/module/rss/layout/default/images/rss.png -srv/web/esniper/module/rss/layout/default/images/rssentries.png -srv/web/esniper/module/rss/plugin.php -srv/web/esniper/module/rss/prepare.php -srv/web/esniper/module/rss_0.2.1.zip -srv/web/esniper/module/snipe -srv/web/esniper/module/snipe/config.php -srv/web/esniper/module/snipe/language -srv/web/esniper/module/snipe/language/de.configuration.php -srv/web/esniper/module/snipe/language/de.php -srv/web/esniper/module/snipe/language/en.configuration.php -srv/web/esniper/module/snipe/language/en.php -srv/web/esniper/module/snipe/layout -srv/web/esniper/module/snipe/layout/default -srv/web/esniper/module/snipe/layout/default/ajax.js -srv/web/esniper/module/snipe/layout/default/content.error.tpl -srv/web/esniper/module/snipe/layout/default/content.index.tpl -srv/web/esniper/module/snipe/layout/default/content.save.tpl -srv/web/esniper/module/snipe/layout/default/content.tpl -srv/web/esniper/module/snipe/layout/default/html.footer.tpl -srv/web/esniper/module/snipe/layout/default/html.header.tpl -srv/web/esniper/module/snipe/layout/default/html.start.tpl -srv/web/esniper/module/snipe/layout/default/script.js -srv/web/esniper/module/snipe/layout/default/style.css -srv/web/esniper/module/snipe/layout/layout.php -srv/web/esniper/module/snipe/prepare.php -srv/web/esniper/module/snipe/process.php -srv/web/esniper/module/support -srv/web/esniper/module/support/CHANGELOG -srv/web/esniper/module/support/common.php -srv/web/esniper/module/support/config.php -srv/web/esniper/module/support/configuration.php -srv/web/esniper/module/support/functions.php -srv/web/esniper/module/support/language -srv/web/esniper/module/support/language/de.php -srv/web/esniper/module/support/language/en.configuration.php -srv/web/esniper/module/support/language/en.php -srv/web/esniper/module/support/language/support.de.htm -srv/web/esniper/module/support/language/support.en.htm -srv/web/esniper/module/support/layout -srv/web/esniper/module/support/layout/default -srv/web/esniper/module/support/layout/default/content.index.tpl -srv/web/esniper/module/support/layout/default/images -srv/web/esniper/module/support/layout/default/images/support.gif -srv/web/esniper/module/support/layout/default/style.css -srv/web/esniper/module/support/prepare.php -srv/web/esniper/module/support/process.php -srv/web/esniper/module/watching -srv/web/esniper/module/watching/_esniper-m -srv/web/esniper/module/watching/common.php -srv/web/esniper/module/watching/config.php -srv/web/esniper/module/watching/configuration.php -srv/web/esniper/module/watching/help -srv/web/esniper/module/watching/help/de.htm -srv/web/esniper/module/watching/language -srv/web/esniper/module/watching/language/de.configuration.php -srv/web/esniper/module/watching/language/de.php -srv/web/esniper/module/watching/language/en.configuration.php -srv/web/esniper/module/watching/language/en.php -srv/web/esniper/module/watching/layout -srv/web/esniper/module/watching/layout/default -srv/web/esniper/module/watching/layout/default/content.empty.tpl -srv/web/esniper/module/watching/layout/default/content.index.tpl -srv/web/esniper/module/watching/layout/default/images -srv/web/esniper/module/watching/layout/default/images/go.gif -srv/web/esniper/module/watching/layout/default/images/watching.gif -srv/web/esniper/module/watching/layout/default/images/watching1.gif -srv/web/esniper/module/watching/layout/default/script.js -srv/web/esniper/module/watching/layout/default/style.css -srv/web/esniper/module/watching/process.php -srv/web/esniper/plugin -srv/web/esniper/plugin/.htaccess -srv/web/esniper/plugin/README -srv/web/esniper/plugin/api -srv/web/esniper/plugin/api/api -srv/web/esniper/plugin/api/api/delete.php -srv/web/esniper/plugin/api/api/snipe.php -srv/web/esniper/plugin/api/api/start.php -srv/web/esniper/plugin/api/api/startstop.php -srv/web/esniper/plugin/api/api/stop.php -srv/web/esniper/plugin/api/config.php -srv/web/esniper/plugin/api/install.php -srv/web/esniper/plugin/api/plugin.php -srv/web/esniper/plugin/auctionstats -srv/web/esniper/plugin/auctionstats/auctionstats.class.php -srv/web/esniper/plugin/auctionstats/config.php -srv/web/esniper/plugin/auctionstats/language -srv/web/esniper/plugin/auctionstats/language/de.php -srv/web/esniper/plugin/auctionstats/language/en.php -srv/web/esniper/plugin/auctionstats/layout -srv/web/esniper/plugin/auctionstats/layout/default -srv/web/esniper/plugin/auctionstats/layout/default/content.tpl -srv/web/esniper/plugin/auctionstats/plugin.php -srv/web/esniper/plugin/autodelete -srv/web/esniper/plugin/autodelete/config.php -srv/web/esniper/plugin/autodelete/language -srv/web/esniper/plugin/autodelete/language/de.php -srv/web/esniper/plugin/autodelete/language/en.php -srv/web/esniper/plugin/autodelete/plugin.php -srv/web/esniper/plugin/banktransfer -srv/web/esniper/plugin/banktransfer/config.php -srv/web/esniper/plugin/banktransfer/install.php -srv/web/esniper/plugin/banktransfer/language -srv/web/esniper/plugin/banktransfer/language/de.php -srv/web/esniper/plugin/banktransfer/language/en.php -srv/web/esniper/plugin/banktransfer/plugin.php -srv/web/esniper/plugin/bidderinfo -srv/web/esniper/plugin/bidderinfo/CHANGELOG -srv/web/esniper/plugin/bidderinfo/config.php -srv/web/esniper/plugin/bidderinfo/configuration.php -srv/web/esniper/plugin/bidderinfo/language -srv/web/esniper/plugin/bidderinfo/language/de.php -srv/web/esniper/plugin/bidderinfo/language/en.php -srv/web/esniper/plugin/bidderinfo/plugin.php -srv/web/esniper/plugin/categoryjump -srv/web/esniper/plugin/categoryjump/config.php -srv/web/esniper/plugin/categoryjump/layout -srv/web/esniper/plugin/categoryjump/layout/default -srv/web/esniper/plugin/categoryjump/layout/default/content.tpl -srv/web/esniper/plugin/categoryjump/layout/default/images -srv/web/esniper/plugin/categoryjump/layout/default/images/hide.gif -srv/web/esniper/plugin/categoryjump/layout/default/style.css -srv/web/esniper/plugin/categoryjump/plugin.php -srv/web/esniper/plugin/cleartitle -srv/web/esniper/plugin/cleartitle/config.php -srv/web/esniper/plugin/cleartitle/plugin.php -srv/web/esniper/plugin/compress -srv/web/esniper/plugin/compress/config.php -srv/web/esniper/plugin/compress/configuration.php -srv/web/esniper/plugin/compress/language -srv/web/esniper/plugin/compress/language/en.php -srv/web/esniper/plugin/compress/layout -srv/web/esniper/plugin/compress/layout/default -srv/web/esniper/plugin/compress/layout/default/content.tpl -srv/web/esniper/plugin/compress/layout/default/style.css -srv/web/esniper/plugin/compress/plugin.php -srv/web/esniper/plugin/config.template.php -srv/web/esniper/plugin/esfversion -srv/web/esniper/plugin/esfversion/config.php -srv/web/esniper/plugin/esfversion/install.php -srv/web/esniper/plugin/esfversion/language -srv/web/esniper/plugin/esfversion/language/de.php -srv/web/esniper/plugin/esfversion/language/en.php -srv/web/esniper/plugin/esfversion/plugin.php -srv/web/esniper/plugin/esniperversion -srv/web/esniper/plugin/esniperversion/config.php -srv/web/esniper/plugin/esniperversion/plugin.php -srv/web/esniper/plugin/filesystem -srv/web/esniper/plugin/filesystem/config.php -srv/web/esniper/plugin/filesystem/configuration.php -srv/web/esniper/plugin/filesystem/define.php -srv/web/esniper/plugin/filesystem/install.php -srv/web/esniper/plugin/filesystem/language -srv/web/esniper/plugin/filesystem/language/de.configuration.php -srv/web/esniper/plugin/filesystem/language/en.configuration.php -srv/web/esniper/plugin/filesystem/plugin.php -srv/web/esniper/plugin/imagesize -srv/web/esniper/plugin/imagesize/config.php -srv/web/esniper/plugin/imagesize/install.php -srv/web/esniper/plugin/imagesize/plugin.php -srv/web/esniper/plugin/linktarget -srv/web/esniper/plugin/linktarget/config.php -srv/web/esniper/plugin/linktarget/configuration.php -srv/web/esniper/plugin/linktarget/plugin.php -srv/web/esniper/plugin/nextauction -srv/web/esniper/plugin/nextauction/config.php -srv/web/esniper/plugin/nextauction/configuration.php -srv/web/esniper/plugin/nextauction/language -srv/web/esniper/plugin/nextauction/language/de.configuration.php -srv/web/esniper/plugin/nextauction/language/de.php -srv/web/esniper/plugin/nextauction/language/en.configuration.php -srv/web/esniper/plugin/nextauction/language/en.php -srv/web/esniper/plugin/nextauction/layout -srv/web/esniper/plugin/nextauction/layout/default -srv/web/esniper/plugin/nextauction/layout/default/content.tpl -srv/web/esniper/plugin/nextauction/layout/default/style.css -srv/web/esniper/plugin/nextauction/plugin.php -srv/web/esniper/plugin/pagetime -srv/web/esniper/plugin/pagetime/config.php -srv/web/esniper/plugin/pagetime/language -srv/web/esniper/plugin/pagetime/language/de.php -srv/web/esniper/plugin/pagetime/language/en.php -srv/web/esniper/plugin/pagetime/layout -srv/web/esniper/plugin/pagetime/layout/default -srv/web/esniper/plugin/pagetime/layout/default/end.de.tpl -srv/web/esniper/plugin/pagetime/layout/default/end.tpl -srv/web/esniper/plugin/pagetime/layout/default/footer.tpl -srv/web/esniper/plugin/pagetime/layout/default/head.tpl -srv/web/esniper/plugin/pagetime/layout/default/style.css -srv/web/esniper/plugin/pagetime/plugin.php -srv/web/esniper/plugin/paypal -srv/web/esniper/plugin/paypal/config.php -srv/web/esniper/plugin/paypal/language -srv/web/esniper/plugin/paypal/language/de.php -srv/web/esniper/plugin/paypal/language/en.php -srv/web/esniper/plugin/paypal/plugin.php -srv/web/esniper/plugin/plugin.template.php -srv/web/esniper/plugin/plugins.php -srv/web/esniper/plugin/refreshbackground -srv/web/esniper/plugin/refreshbackground/CHANGELOG -srv/web/esniper/plugin/refreshbackground/config.php -srv/web/esniper/plugin/refreshbackground/configuration.php -srv/web/esniper/plugin/refreshbackground/cron.txt -srv/web/esniper/plugin/refreshbackground/install.php -srv/web/esniper/plugin/refreshbackground/language -srv/web/esniper/plugin/refreshbackground/language/de.configuration.php -srv/web/esniper/plugin/refreshbackground/language/de.php -srv/web/esniper/plugin/refreshbackground/language/en.configuration.php -srv/web/esniper/plugin/refreshbackground/language/en.php -srv/web/esniper/plugin/refreshbackground/plugin.php -srv/web/esniper/plugin/refreshbackground/refresh.php -srv/web/esniper/plugin/sellerinfo -srv/web/esniper/plugin/sellerinfo/CHANGELOG -srv/web/esniper/plugin/sellerinfo/config.php -srv/web/esniper/plugin/sellerinfo/configuration.php -srv/web/esniper/plugin/sellerinfo/define.php -srv/web/esniper/plugin/sellerinfo/layout -srv/web/esniper/plugin/sellerinfo/layout/default -srv/web/esniper/plugin/sellerinfo/layout/default/content.tpl -srv/web/esniper/plugin/sellerinfo/layout/default/images -srv/web/esniper/plugin/sellerinfo/layout/default/images/myworld.gif -srv/web/esniper/plugin/sellerinfo/layout/default/style.css -srv/web/esniper/plugin/sellerinfo/plugin.php -srv/web/esniper/plugin/selleritems -srv/web/esniper/plugin/selleritems/config.php -srv/web/esniper/plugin/selleritems/configuration.php -srv/web/esniper/plugin/selleritems/language -srv/web/esniper/plugin/selleritems/language/de.php -srv/web/esniper/plugin/selleritems/language/en.php -srv/web/esniper/plugin/selleritems/layout -srv/web/esniper/plugin/selleritems/layout/default -srv/web/esniper/plugin/selleritems/layout/default/content.tpl -srv/web/esniper/plugin/selleritems/layout/default/images -srv/web/esniper/plugin/selleritems/layout/default/images/more-items-gray.gif -srv/web/esniper/plugin/selleritems/layout/default/images/more-items.gif -srv/web/esniper/plugin/selleritems/layout/default/style.css -srv/web/esniper/plugin/selleritems/plugin.php -srv/web/esniper/plugin/session -srv/web/esniper/plugin/session/config.php -srv/web/esniper/plugin/session/configuration.php -srv/web/esniper/plugin/session/define.php -srv/web/esniper/plugin/session/functions.php -srv/web/esniper/plugin/session/install.php -srv/web/esniper/plugin/session/language -srv/web/esniper/plugin/session/language/de.configuration.php -srv/web/esniper/plugin/session/language/en.configuration.php -srv/web/esniper/plugin/session/plugin.php -srv/web/esniper/plugin/urlrewrite -srv/web/esniper/plugin/urlrewrite/_htaccess -srv/web/esniper/plugin/urlrewrite/config.php -srv/web/esniper/plugin/urlrewrite/install.php -srv/web/esniper/plugin/urlrewrite/plugin.php -srv/web/esniper/plugin/urlrewritehash -srv/web/esniper/plugin/urlrewritehash/.disabled -srv/web/esniper/plugin/urlrewritehash/config.php -srv/web/esniper/plugin/urlrewritehash/install.php -srv/web/esniper/plugin/urlrewritehash/plugin.php -srv/web/esniper/plugin/xeconverter -srv/web/esniper/plugin/xeconverter/config.php -srv/web/esniper/plugin/xeconverter/plugin.php -srv/web/esniper/plugin/xeconverter/xe.gif -srv/web/esniper/plugin/xeconverter/xe1.gif -srv/web/esniper/plugin/xeconverter/xe2.gif -srv/web/esniper/setup -srv/web/esniper/setup/.htaccess -srv/web/esniper/setup/button -srv/web/esniper/setup/button/button-gray-l.gif -srv/web/esniper/setup/button/button-gray-r.gif -srv/web/esniper/setup/button/button.gif -srv/web/esniper/setup/button/button.ini -srv/web/esniper/setup/button/button.php -srv/web/esniper/setup/config.dist.php -srv/web/esniper/setup/config.state.dist.php -srv/web/esniper/setup/functions.php -srv/web/esniper/setup/index.php -srv/web/esniper/setup/install -srv/web/esniper/setup/step.save.php -srv/web/esniper/setup/step.test.php -srv/web/esniper/setup/tpl -srv/web/esniper/setup/tpl/images -srv/web/esniper/setup/tpl/images/button-gray-l.gif -srv/web/esniper/setup/tpl/images/button-gray-r.gif -srv/web/esniper/setup/tpl/images/button.gif -srv/web/esniper/setup/tpl/images/button.ini -srv/web/esniper/setup/tpl/images/pix.gif -srv/web/esniper/setup/tpl/index.tpl -srv/web/esniper/setup/tpl/p.gif -srv/web/esniper/setup/tpl/step.cfg.tpl -srv/web/esniper/setup/tpl/step.intro.tpl -srv/web/esniper/setup/tpl/step.save.tpl -srv/web/esniper/setup/tpl/step.test.tpl -srv/web/esniper/setup/tpl/step.user.tpl -srv/web/esniper/setup/tpl/style.css -srv/web/esniper/utilities -srv/web/esniper/utilities/chklng.php -srv/web/esniper/utilities/htaccess.php -srv/web/esniper/utilities/index.php -srv/web/esniper/utilities/info.php -srv/web/esniper/utilities/utilities.cfg -usr/bin/esniper -#usr/man/man1/esniper.1 diff --git a/config/rootfiles/packages/fetchmail b/config/rootfiles/packages/fetchmail index f78418a..0114138 100644 --- a/config/rootfiles/packages/fetchmail +++ b/config/rootfiles/packages/fetchmail @@ -1,10 +1,10 @@ -etc/init.d/fetchmail +etc/rc.d/init.d/fetchmail root/.fetchmailrc usr/bin/fetchmail #usr/bin/fetchmailconf -#usr/lib/python2.4/site-packages/fetchmailconf.py -#usr/lib/python2.4/site-packages/fetchmailconf.pyc -#usr/lib/python2.4/site-packages/fetchmailconf.pyo +#usr/lib/python2.7/site-packages/fetchmailconf.py +#usr/lib/python2.7/site-packages/fetchmailconf.pyc +#usr/lib/python2.7/site-packages/fetchmailconf.pyo #usr/share/man/man1/fetchmail.1 #usr/share/man/man1/fetchmailconf.1 var/ipfire/backup/addons/includes/fetchmail diff --git a/config/rootfiles/packages/gnump3d b/config/rootfiles/packages/gnump3d index 9352cf6..1f0a31e 100644 --- a/config/rootfiles/packages/gnump3d +++ b/config/rootfiles/packages/gnump3d @@ -2,7 +2,7 @@ etc/gnump3d/file.types etc/gnump3d/gnump3d.conf etc/gnump3d/mime.types -etc/init.d/gnump3d +etc/rc.d/init.d/gnump3d etc/fcron.daily/gnump3d-index usr/bin/gnump3d usr/bin/gnump3d-index diff --git a/config/rootfiles/packages/gutenprint b/config/rootfiles/packages/gutenprint index e134882..a65efb4 100644 --- a/config/rootfiles/packages/gutenprint +++ b/config/rootfiles/packages/gutenprint @@ -544,4 +544,4 @@ usr/share/locale/de/gutenprint_de.po #usr/share/man/man8/cups-calibrate.8 #usr/share/man/man8/cups-genppd.8 #usr/share/man/man8/cups-genppdupdate.8 -var/ipfire/cups/command.types +var/ipfire/cups/command.types \ No newline at end of file diff --git a/config/rootfiles/packages/hostapd b/config/rootfiles/packages/hostapd index 5d09127..78c9c82 100644 --- a/config/rootfiles/packages/hostapd +++ b/config/rootfiles/packages/hostapd @@ -14,5 +14,5 @@ var/ipfire/wlanap/hostapd.deny var/ipfire/wlanap/settings srv/web/ipfire/cgi-bin/wlanap.cgi var/ipfire/menu.d/EX-wlanap.menu -etc/init.d/hostapd +etc/rc.d/init.d/hostapd usr/local/bin/wlanapctrl diff --git a/config/rootfiles/packages/icecc b/config/rootfiles/packages/icecc index bc9bfca..8e41873 100644 --- a/config/rootfiles/packages/icecc +++ b/config/rootfiles/packages/icecc @@ -15,4 +15,4 @@ #opt/icecream/sbin opt/icecream/sbin/icecc-scheduler opt/icecream/sbin/iceccd -etc/init.d/icecream +etc/rc.d/init.d/icecream diff --git a/config/rootfiles/packages/ipfireseeder b/config/rootfiles/packages/ipfireseeder index dd96016..f38ed4e 100644 --- a/config/rootfiles/packages/ipfireseeder +++ b/config/rootfiles/packages/ipfireseeder @@ -1,5 +1,5 @@ etc/rc.d/init.d/ipfireseeder #var/ipfire/seeder -var/ipfire/seeder/ipfire-2.5.i586-full-core36.iso.torrent +var/ipfire/seeder/ipfire-2.7.i586-full-core38.iso.torrent #var/log/seeder var/log/seeder/info diff --git a/config/rootfiles/packages/lcr b/config/rootfiles/packages/lcr index 1b47ae7..2633518 100644 --- a/config/rootfiles/packages/lcr +++ b/config/rootfiles/packages/lcr @@ -1,4 +1,4 @@ -etc/init.d/lcr +etc/rc.d/init.d/lcr usr/bin/gentones usr/bin/genwave usr/bin/lcradmin diff --git a/config/rootfiles/packages/libtiff b/config/rootfiles/packages/libtiff index 097915d..12de791 100644 --- a/config/rootfiles/packages/libtiff +++ b/config/rootfiles/packages/libtiff @@ -14,6 +14,7 @@ usr/bin/tiff2ps usr/bin/tiff2rgba usr/bin/tiffcmp usr/bin/tiffcp +usr/bin/tiffcrop usr/bin/tiffdither usr/bin/tiffdump usr/bin/tiffinfo @@ -29,207 +30,213 @@ usr/bin/tiffsplit #usr/lib/libtiff.la usr/lib/libtiff.so usr/lib/libtiff.so.3 -usr/lib/libtiff.so.3.8.2 +usr/lib/libtiff.so.3.9.4 #usr/lib/libtiffxx.a #usr/lib/libtiffxx.la usr/lib/libtiffxx.so usr/lib/libtiffxx.so.3 -usr/lib/libtiffxx.so.3.8.2 -#usr/man/man1/bmp2tiff.1 -#usr/man/man1/fax2ps.1 -#usr/man/man1/fax2tiff.1 -#usr/man/man1/gif2tiff.1 -#usr/man/man1/pal2rgb.1 -#usr/man/man1/ppm2tiff.1 -#usr/man/man1/ras2tiff.1 -#usr/man/man1/raw2tiff.1 -#usr/man/man1/rgb2ycbcr.1 -#usr/man/man1/sgi2tiff.1 -#usr/man/man1/thumbnail.1 -#usr/man/man1/tiff2bw.1 -#usr/man/man1/tiff2pdf.1 -#usr/man/man1/tiff2ps.1 -#usr/man/man1/tiff2rgba.1 -#usr/man/man1/tiffcmp.1 -#usr/man/man1/tiffcp.1 -#usr/man/man1/tiffdither.1 -#usr/man/man1/tiffdump.1 -#usr/man/man1/tiffgt.1 -#usr/man/man1/tiffinfo.1 -#usr/man/man1/tiffmedian.1 -#usr/man/man1/tiffset.1 -#usr/man/man1/tiffsplit.1 -#usr/man/man1/tiffsv.1 -#usr/man/man3/TIFFClose.3tiff -#usr/man/man3/TIFFDataWidth.3tiff -#usr/man/man3/TIFFError.3tiff -#usr/man/man3/TIFFFlush.3tiff -#usr/man/man3/TIFFGetField.3tiff -#usr/man/man3/TIFFOpen.3tiff -#usr/man/man3/TIFFPrintDirectory.3tiff -#usr/man/man3/TIFFRGBAImage.3tiff -#usr/man/man3/TIFFReadDirectory.3tiff -#usr/man/man3/TIFFReadEncodedStrip.3tiff -#usr/man/man3/TIFFReadEncodedTile.3tiff -#usr/man/man3/TIFFReadRGBAImage.3tiff -#usr/man/man3/TIFFReadRGBAStrip.3tiff -#usr/man/man3/TIFFReadRGBATile.3tiff -#usr/man/man3/TIFFReadRawStrip.3tiff -#usr/man/man3/TIFFReadRawTile.3tiff -#usr/man/man3/TIFFReadScanline.3tiff -#usr/man/man3/TIFFReadTile.3tiff -#usr/man/man3/TIFFSetDirectory.3tiff -#usr/man/man3/TIFFSetField.3tiff -#usr/man/man3/TIFFWarning.3tiff -#usr/man/man3/TIFFWriteDirectory.3tiff -#usr/man/man3/TIFFWriteEncodedStrip.3tiff -#usr/man/man3/TIFFWriteEncodedTile.3tiff -#usr/man/man3/TIFFWriteRawStrip.3tiff -#usr/man/man3/TIFFWriteRawTile.3tiff -#usr/man/man3/TIFFWriteScanline.3tiff -#usr/man/man3/TIFFWriteTile.3tiff -#usr/man/man3/TIFFbuffer.3tiff -#usr/man/man3/TIFFcodec.3tiff -#usr/man/man3/TIFFcolor.3tiff -#usr/man/man3/TIFFmemory.3tiff -#usr/man/man3/TIFFquery.3tiff -#usr/man/man3/TIFFsize.3tiff -#usr/man/man3/TIFFstrip.3tiff -#usr/man/man3/TIFFswab.3tiff -#usr/man/man3/TIFFtile.3tiff -#usr/man/man3/libtiff.3tiff -#usr/share/doc/tiff-3.8.2 -#usr/share/doc/tiff-3.8.2/COPYRIGHT -#usr/share/doc/tiff-3.8.2/ChangeLog -#usr/share/doc/tiff-3.8.2/README -#usr/share/doc/tiff-3.8.2/RELEASE-DATE -#usr/share/doc/tiff-3.8.2/TODO -#usr/share/doc/tiff-3.8.2/VERSION -#usr/share/doc/tiff-3.8.2/html -#usr/share/doc/tiff-3.8.2/html/TIFFTechNote2.html -#usr/share/doc/tiff-3.8.2/html/addingtags.html -#usr/share/doc/tiff-3.8.2/html/bugs.html -#usr/share/doc/tiff-3.8.2/html/build.html -#usr/share/doc/tiff-3.8.2/html/contrib.html -#usr/share/doc/tiff-3.8.2/html/document.html -#usr/share/doc/tiff-3.8.2/html/images -#usr/share/doc/tiff-3.8.2/html/images.html -#usr/share/doc/tiff-3.8.2/html/images/back.gif -#usr/share/doc/tiff-3.8.2/html/images/bali.jpg -#usr/share/doc/tiff-3.8.2/html/images/cat.gif -#usr/share/doc/tiff-3.8.2/html/images/cover.jpg -#usr/share/doc/tiff-3.8.2/html/images/cramps.gif -#usr/share/doc/tiff-3.8.2/html/images/dave.gif -#usr/share/doc/tiff-3.8.2/html/images/info.gif -#usr/share/doc/tiff-3.8.2/html/images/jello.jpg -#usr/share/doc/tiff-3.8.2/html/images/jim.gif -#usr/share/doc/tiff-3.8.2/html/images/note.gif -#usr/share/doc/tiff-3.8.2/html/images/oxford.gif -#usr/share/doc/tiff-3.8.2/html/images/quad.jpg -#usr/share/doc/tiff-3.8.2/html/images/ring.gif -#usr/share/doc/tiff-3.8.2/html/images/smallliz.jpg -#usr/share/doc/tiff-3.8.2/html/images/strike.gif -#usr/share/doc/tiff-3.8.2/html/images/warning.gif -#usr/share/doc/tiff-3.8.2/html/index.html -#usr/share/doc/tiff-3.8.2/html/internals.html -#usr/share/doc/tiff-3.8.2/html/intro.html -#usr/share/doc/tiff-3.8.2/html/libtiff.html -#usr/share/doc/tiff-3.8.2/html/man -#usr/share/doc/tiff-3.8.2/html/man/TIFFClose.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFDataWidth.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFError.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFFlush.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFGetField.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFOpen.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFPrintDirectory.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFRGBAImage.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadDirectory.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadEncodedStrip.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadEncodedTile.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRGBAImage.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRGBAStrip.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRGBATile.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRawStrip.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadRawTile.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadScanline.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFReadTile.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFSetDirectory.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFSetField.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFWarning.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteDirectory.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteEncodedStrip.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteEncodedTile.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteRawStrip.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteRawTile.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteScanline.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFWriteTile.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFbuffer.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFcodec.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFcolor.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFmemory.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFquery.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFsize.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFstrip.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFswab.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/TIFFtile.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/fax2ps.1.html -#usr/share/doc/tiff-3.8.2/html/man/fax2tiff.1.html -#usr/share/doc/tiff-3.8.2/html/man/gif2tiff.1.html -#usr/share/doc/tiff-3.8.2/html/man/index.html -#usr/share/doc/tiff-3.8.2/html/man/libtiff.3tiff.html -#usr/share/doc/tiff-3.8.2/html/man/pal2rgb.1.html -#usr/share/doc/tiff-3.8.2/html/man/ppm2tiff.1.html -#usr/share/doc/tiff-3.8.2/html/man/ras2tiff.1.html -#usr/share/doc/tiff-3.8.2/html/man/raw2tiff.1.html -#usr/share/doc/tiff-3.8.2/html/man/rgb2ycbcr.1.html -#usr/share/doc/tiff-3.8.2/html/man/sgi2tiff.1.html -#usr/share/doc/tiff-3.8.2/html/man/thumbnail.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiff2bw.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiff2pdf.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiff2ps.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiff2rgba.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffcmp.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffcp.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffdither.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffdump.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffgt.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffinfo.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffmedian.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffset.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffsplit.1.html -#usr/share/doc/tiff-3.8.2/html/man/tiffsv.1.html -#usr/share/doc/tiff-3.8.2/html/misc.html -#usr/share/doc/tiff-3.8.2/html/support.html -#usr/share/doc/tiff-3.8.2/html/tools.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta007.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta016.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta018.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta024.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta028.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta029.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta031.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta032.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta033.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta034.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta035.html -#usr/share/doc/tiff-3.8.2/html/v3.4beta036.html -#usr/share/doc/tiff-3.8.2/html/v3.5.1.html -#usr/share/doc/tiff-3.8.2/html/v3.5.2.html -#usr/share/doc/tiff-3.8.2/html/v3.5.3.html -#usr/share/doc/tiff-3.8.2/html/v3.5.4.html -#usr/share/doc/tiff-3.8.2/html/v3.5.5.html -#usr/share/doc/tiff-3.8.2/html/v3.5.6-beta.html -#usr/share/doc/tiff-3.8.2/html/v3.5.7.html -#usr/share/doc/tiff-3.8.2/html/v3.6.0.html -#usr/share/doc/tiff-3.8.2/html/v3.6.1.html -#usr/share/doc/tiff-3.8.2/html/v3.7.0.html -#usr/share/doc/tiff-3.8.2/html/v3.7.0alpha.html -#usr/share/doc/tiff-3.8.2/html/v3.7.0beta.html -#usr/share/doc/tiff-3.8.2/html/v3.7.0beta2.html -#usr/share/doc/tiff-3.8.2/html/v3.7.1.html -#usr/share/doc/tiff-3.8.2/html/v3.7.2.html -#usr/share/doc/tiff-3.8.2/html/v3.7.3.html -#usr/share/doc/tiff-3.8.2/html/v3.7.4.html -#usr/share/doc/tiff-3.8.2/html/v3.8.0.html -#usr/share/doc/tiff-3.8.2/html/v3.8.1.html -#usr/share/doc/tiff-3.8.2/html/v3.8.2.html +usr/lib/libtiffxx.so.3.9.4 +#usr/share/doc/tiff-3.9.4 +#usr/share/doc/tiff-3.9.4/COPYRIGHT +#usr/share/doc/tiff-3.9.4/ChangeLog +#usr/share/doc/tiff-3.9.4/README +#usr/share/doc/tiff-3.9.4/README.vms +#usr/share/doc/tiff-3.9.4/RELEASE-DATE +#usr/share/doc/tiff-3.9.4/TODO +#usr/share/doc/tiff-3.9.4/VERSION +#usr/share/doc/tiff-3.9.4/html +#usr/share/doc/tiff-3.9.4/html/TIFFTechNote2.html +#usr/share/doc/tiff-3.9.4/html/addingtags.html +#usr/share/doc/tiff-3.9.4/html/bugs.html +#usr/share/doc/tiff-3.9.4/html/build.html +#usr/share/doc/tiff-3.9.4/html/contrib.html +#usr/share/doc/tiff-3.9.4/html/document.html +#usr/share/doc/tiff-3.9.4/html/images +#usr/share/doc/tiff-3.9.4/html/images.html +#usr/share/doc/tiff-3.9.4/html/images/back.gif +#usr/share/doc/tiff-3.9.4/html/images/bali.jpg +#usr/share/doc/tiff-3.9.4/html/images/cat.gif +#usr/share/doc/tiff-3.9.4/html/images/cover.jpg +#usr/share/doc/tiff-3.9.4/html/images/cramps.gif +#usr/share/doc/tiff-3.9.4/html/images/dave.gif +#usr/share/doc/tiff-3.9.4/html/images/info.gif +#usr/share/doc/tiff-3.9.4/html/images/jello.jpg +#usr/share/doc/tiff-3.9.4/html/images/jim.gif +#usr/share/doc/tiff-3.9.4/html/images/note.gif +#usr/share/doc/tiff-3.9.4/html/images/oxford.gif +#usr/share/doc/tiff-3.9.4/html/images/quad.jpg +#usr/share/doc/tiff-3.9.4/html/images/ring.gif +#usr/share/doc/tiff-3.9.4/html/images/smallliz.jpg +#usr/share/doc/tiff-3.9.4/html/images/strike.gif +#usr/share/doc/tiff-3.9.4/html/images/warning.gif +#usr/share/doc/tiff-3.9.4/html/index.html +#usr/share/doc/tiff-3.9.4/html/internals.html +#usr/share/doc/tiff-3.9.4/html/intro.html +#usr/share/doc/tiff-3.9.4/html/libtiff.html +#usr/share/doc/tiff-3.9.4/html/man +#usr/share/doc/tiff-3.9.4/html/man/TIFFClose.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFDataWidth.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFError.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFFlush.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFGetField.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFOpen.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFPrintDirectory.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFRGBAImage.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadDirectory.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadEncodedStrip.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadEncodedTile.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadRGBAImage.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadRGBAStrip.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadRGBATile.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadRawStrip.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadRawTile.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadScanline.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFReadTile.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFSetDirectory.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFSetField.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFWarning.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFWriteDirectory.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFWriteEncodedStrip.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFWriteEncodedTile.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFWriteRawStrip.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFWriteRawTile.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFWriteScanline.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFWriteTile.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFbuffer.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFcodec.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFcolor.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFmemory.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFquery.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFsize.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFstrip.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFswab.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/TIFFtile.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/fax2ps.1.html +#usr/share/doc/tiff-3.9.4/html/man/fax2tiff.1.html +#usr/share/doc/tiff-3.9.4/html/man/gif2tiff.1.html +#usr/share/doc/tiff-3.9.4/html/man/index.html +#usr/share/doc/tiff-3.9.4/html/man/libtiff.3tiff.html +#usr/share/doc/tiff-3.9.4/html/man/pal2rgb.1.html +#usr/share/doc/tiff-3.9.4/html/man/ppm2tiff.1.html +#usr/share/doc/tiff-3.9.4/html/man/ras2tiff.1.html +#usr/share/doc/tiff-3.9.4/html/man/raw2tiff.1.html +#usr/share/doc/tiff-3.9.4/html/man/rgb2ycbcr.1.html +#usr/share/doc/tiff-3.9.4/html/man/sgi2tiff.1.html +#usr/share/doc/tiff-3.9.4/html/man/thumbnail.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiff2bw.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiff2pdf.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiff2ps.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiff2rgba.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffcmp.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffcp.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffcrop.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffdither.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffdump.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffgt.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffinfo.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffmedian.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffset.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffsplit.1.html +#usr/share/doc/tiff-3.9.4/html/man/tiffsv.1.html +#usr/share/doc/tiff-3.9.4/html/misc.html +#usr/share/doc/tiff-3.9.4/html/support.html +#usr/share/doc/tiff-3.9.4/html/tools.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta007.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta016.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta018.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta024.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta028.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta029.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta031.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta032.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta033.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta034.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta035.html +#usr/share/doc/tiff-3.9.4/html/v3.4beta036.html +#usr/share/doc/tiff-3.9.4/html/v3.5.1.html +#usr/share/doc/tiff-3.9.4/html/v3.5.2.html +#usr/share/doc/tiff-3.9.4/html/v3.5.3.html +#usr/share/doc/tiff-3.9.4/html/v3.5.4.html +#usr/share/doc/tiff-3.9.4/html/v3.5.5.html +#usr/share/doc/tiff-3.9.4/html/v3.5.6-beta.html +#usr/share/doc/tiff-3.9.4/html/v3.5.7.html +#usr/share/doc/tiff-3.9.4/html/v3.6.0.html +#usr/share/doc/tiff-3.9.4/html/v3.6.1.html +#usr/share/doc/tiff-3.9.4/html/v3.7.0.html +#usr/share/doc/tiff-3.9.4/html/v3.7.0alpha.html +#usr/share/doc/tiff-3.9.4/html/v3.7.0beta.html +#usr/share/doc/tiff-3.9.4/html/v3.7.0beta2.html +#usr/share/doc/tiff-3.9.4/html/v3.7.1.html +#usr/share/doc/tiff-3.9.4/html/v3.7.2.html +#usr/share/doc/tiff-3.9.4/html/v3.7.3.html +#usr/share/doc/tiff-3.9.4/html/v3.7.4.html +#usr/share/doc/tiff-3.9.4/html/v3.8.0.html +#usr/share/doc/tiff-3.9.4/html/v3.8.1.html +#usr/share/doc/tiff-3.9.4/html/v3.8.2.html +#usr/share/doc/tiff-3.9.4/html/v3.9.0beta.html +#usr/share/doc/tiff-3.9.4/html/v3.9.1.html +#usr/share/doc/tiff-3.9.4/html/v3.9.2.html +#usr/share/man/man1/bmp2tiff.1 +#usr/share/man/man1/fax2ps.1 +#usr/share/man/man1/fax2tiff.1 +#usr/share/man/man1/gif2tiff.1 +#usr/share/man/man1/pal2rgb.1 +#usr/share/man/man1/ppm2tiff.1 +#usr/share/man/man1/ras2tiff.1 +#usr/share/man/man1/raw2tiff.1 +#usr/share/man/man1/rgb2ycbcr.1 +#usr/share/man/man1/sgi2tiff.1 +#usr/share/man/man1/thumbnail.1 +#usr/share/man/man1/tiff2bw.1 +#usr/share/man/man1/tiff2pdf.1 +#usr/share/man/man1/tiff2ps.1 +#usr/share/man/man1/tiff2rgba.1 +#usr/share/man/man1/tiffcmp.1 +#usr/share/man/man1/tiffcp.1 +#usr/share/man/man1/tiffcrop.1 +#usr/share/man/man1/tiffdither.1 +#usr/share/man/man1/tiffdump.1 +#usr/share/man/man1/tiffgt.1 +#usr/share/man/man1/tiffinfo.1 +#usr/share/man/man1/tiffmedian.1 +#usr/share/man/man1/tiffset.1 +#usr/share/man/man1/tiffsplit.1 +#usr/share/man/man1/tiffsv.1 +#usr/share/man/man3/TIFFClose.3tiff +#usr/share/man/man3/TIFFDataWidth.3tiff +#usr/share/man/man3/TIFFError.3tiff +#usr/share/man/man3/TIFFFlush.3tiff +#usr/share/man/man3/TIFFGetField.3tiff +#usr/share/man/man3/TIFFOpen.3tiff +#usr/share/man/man3/TIFFPrintDirectory.3tiff +#usr/share/man/man3/TIFFRGBAImage.3tiff +#usr/share/man/man3/TIFFReadDirectory.3tiff +#usr/share/man/man3/TIFFReadEncodedStrip.3tiff +#usr/share/man/man3/TIFFReadEncodedTile.3tiff +#usr/share/man/man3/TIFFReadRGBAImage.3tiff +#usr/share/man/man3/TIFFReadRGBAStrip.3tiff +#usr/share/man/man3/TIFFReadRGBATile.3tiff +#usr/share/man/man3/TIFFReadRawStrip.3tiff +#usr/share/man/man3/TIFFReadRawTile.3tiff +#usr/share/man/man3/TIFFReadScanline.3tiff +#usr/share/man/man3/TIFFReadTile.3tiff +#usr/share/man/man3/TIFFSetDirectory.3tiff +#usr/share/man/man3/TIFFSetField.3tiff +#usr/share/man/man3/TIFFWarning.3tiff +#usr/share/man/man3/TIFFWriteDirectory.3tiff +#usr/share/man/man3/TIFFWriteEncodedStrip.3tiff +#usr/share/man/man3/TIFFWriteEncodedTile.3tiff +#usr/share/man/man3/TIFFWriteRawStrip.3tiff +#usr/share/man/man3/TIFFWriteRawTile.3tiff +#usr/share/man/man3/TIFFWriteScanline.3tiff +#usr/share/man/man3/TIFFWriteTile.3tiff +#usr/share/man/man3/TIFFbuffer.3tiff +#usr/share/man/man3/TIFFcodec.3tiff +#usr/share/man/man3/TIFFcolor.3tiff +#usr/share/man/man3/TIFFmemory.3tiff +#usr/share/man/man3/TIFFquery.3tiff +#usr/share/man/man3/TIFFsize.3tiff +#usr/share/man/man3/TIFFstrip.3tiff +#usr/share/man/man3/TIFFswab.3tiff +#usr/share/man/man3/TIFFtile.3tiff +#usr/share/man/man3/libtiff.3tiff diff --git a/config/rootfiles/packages/linux-xen b/config/rootfiles/packages/linux-xen index 7b15223..20a6094 100644 --- a/config/rootfiles/packages/linux-xen +++ b/config/rootfiles/packages/linux-xen @@ -3,183 +3,13 @@ boot/System.map-ipfire-xen boot/config-KVER-ipfire-xen boot/vmlinuz-KVER-ipfire-xen boot/vmlinuz-ipfire-xen -#lib/firmware/3com -#lib/firmware/3com/3C359.bin -#lib/firmware/3com/typhoon.bin -#lib/firmware/acenic -#lib/firmware/acenic/tg1.bin -#lib/firmware/acenic/tg2.bin -#lib/firmware/adaptec -#lib/firmware/adaptec/starfire_rx.bin -#lib/firmware/adaptec/starfire_tx.bin -#lib/firmware/advansys -#lib/firmware/advansys/3550.bin -#lib/firmware/advansys/38C0800.bin -#lib/firmware/advansys/38C1600.bin -#lib/firmware/advansys/mcode.bin -#lib/firmware/atmsar11.fw -#lib/firmware/av7110 -#lib/firmware/av7110/bootcode.bin -#lib/firmware/bnx2 -#lib/firmware/bnx2/bnx2-mips-06-5.0.0.j6.fw -#lib/firmware/bnx2/bnx2-mips-09-5.0.0.j9.fw -#lib/firmware/bnx2/bnx2-rv2p-06-5.0.0.j3.fw -#lib/firmware/bnx2/bnx2-rv2p-09-5.0.0.j10.fw -#lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw -#lib/firmware/bnx2x-e1-5.2.13.0.fw -#lib/firmware/bnx2x-e1h-5.2.13.0.fw -#lib/firmware/cis -#lib/firmware/cis/3CCFEM556.cis -#lib/firmware/cis/3CXEM556.cis -#lib/firmware/cis/COMpad2.cis -#lib/firmware/cis/COMpad4.cis -#lib/firmware/cis/DP83903.cis -#lib/firmware/cis/LA-PCM.cis -#lib/firmware/cis/MT5634ZLX.cis -#lib/firmware/cis/NE2K.cis -#lib/firmware/cis/PCMLM28.cis -#lib/firmware/cis/PE-200.cis -#lib/firmware/cis/RS-COM-2P.cis -#lib/firmware/cis/SW_555_SER.cis -#lib/firmware/cis/SW_7xx_SER.cis -#lib/firmware/cis/SW_8xx_SER.cis -#lib/firmware/cis/tamarack.cis -#lib/firmware/cpia2 -#lib/firmware/cpia2/stv0672_vp4.bin -#lib/firmware/cxgb3 -#lib/firmware/cxgb3/ael2005_opt_edc.bin -#lib/firmware/cxgb3/ael2005_twx_edc.bin -#lib/firmware/cxgb3/ael2020_twx_edc.bin -#lib/firmware/cxgb3/t3b_psram-1.1.0.bin -#lib/firmware/cxgb3/t3c_psram-1.1.0.bin -#lib/firmware/cxgb3/t3fw-7.4.0.bin -#lib/firmware/dabusb -#lib/firmware/dabusb/bitstream.bin -#lib/firmware/dabusb/firmware.fw -#lib/firmware/dsp56k -#lib/firmware/dsp56k/bootstrap.bin -#lib/firmware/e100 -#lib/firmware/e100/d101m_ucode.bin -#lib/firmware/e100/d101s_ucode.bin -#lib/firmware/e100/d102e_ucode.bin -#lib/firmware/edgeport -#lib/firmware/edgeport/boot.fw -#lib/firmware/edgeport/boot2.fw -#lib/firmware/edgeport/down.fw -#lib/firmware/edgeport/down2.fw -#lib/firmware/edgeport/down3.bin -#lib/firmware/emi26 -#lib/firmware/emi26/bitstream.fw -#lib/firmware/emi26/firmware.fw -#lib/firmware/emi26/loader.fw -#lib/firmware/emi62 -#lib/firmware/emi62/bitstream.fw -#lib/firmware/emi62/loader.fw -#lib/firmware/emi62/midi.fw -#lib/firmware/emi62/spdif.fw -#lib/firmware/ess -#lib/firmware/ess/maestro3_assp_kernel.fw -#lib/firmware/ess/maestro3_assp_minisrc.fw -#lib/firmware/intelliport2.bin -#lib/firmware/kaweth -#lib/firmware/kaweth/new_code.bin -#lib/firmware/kaweth/new_code_fix.bin -#lib/firmware/kaweth/trigger_code.bin -#lib/firmware/kaweth/trigger_code_fix.bin -#lib/firmware/keyspan -#lib/firmware/keyspan/mpr.fw +#lib/firmware/bnx2x-e1-5.0.21.0.fw +#lib/firmware/bnx2x-e1h-5.0.21.0.fw #lib/firmware/keyspan/usa18x.fw #lib/firmware/keyspan/usa19.fw -#lib/firmware/keyspan/usa19qi.fw -#lib/firmware/keyspan/usa19qw.fw -#lib/firmware/keyspan/usa19w.fw -#lib/firmware/keyspan/usa28.fw -#lib/firmware/keyspan/usa28x.fw -#lib/firmware/keyspan/usa28xa.fw -#lib/firmware/keyspan/usa28xb.fw -#lib/firmware/keyspan/usa49w.fw -#lib/firmware/keyspan/usa49wlc.fw -#lib/firmware/keyspan_pda -#lib/firmware/keyspan_pda/keyspan_pda.fw -#lib/firmware/keyspan_pda/xircom_pgs.fw -#lib/firmware/korg -#lib/firmware/korg/k1212.dsp -#lib/firmware/matrox -#lib/firmware/matrox/g200_warp.fw -#lib/firmware/matrox/g400_warp.fw #lib/firmware/mts_cdma.fw -#lib/firmware/mts_edge.fw -#lib/firmware/mts_gsm.fw -#lib/firmware/myricom -#lib/firmware/myricom/lanai.bin -#lib/firmware/ositech -#lib/firmware/ositech/Xilinx7OD.bin -#lib/firmware/qlogic -#lib/firmware/qlogic/1040.bin -#lib/firmware/qlogic/12160.bin -#lib/firmware/qlogic/1280.bin -#lib/firmware/qlogic/isp1000.bin -#lib/firmware/r128 -#lib/firmware/r128/r128_cce.bin -#lib/firmware/radeon -#lib/firmware/radeon/R100_cp.bin -#lib/firmware/radeon/R200_cp.bin -#lib/firmware/radeon/R300_cp.bin -#lib/firmware/radeon/R420_cp.bin -#lib/firmware/radeon/R520_cp.bin -#lib/firmware/radeon/R600_me.bin -#lib/firmware/radeon/R600_pfp.bin -#lib/firmware/radeon/RS600_cp.bin -#lib/firmware/radeon/RS690_cp.bin -#lib/firmware/radeon/RS780_me.bin -#lib/firmware/radeon/RS780_pfp.bin #lib/firmware/radeon/RV610_me.bin -#lib/firmware/radeon/RV610_pfp.bin -#lib/firmware/radeon/RV620_me.bin -#lib/firmware/radeon/RV620_pfp.bin -#lib/firmware/radeon/RV630_me.bin -#lib/firmware/radeon/RV630_pfp.bin -#lib/firmware/radeon/RV635_me.bin -#lib/firmware/radeon/RV635_pfp.bin -#lib/firmware/radeon/RV670_me.bin -#lib/firmware/radeon/RV670_pfp.bin -#lib/firmware/radeon/RV710_me.bin -#lib/firmware/radeon/RV710_pfp.bin -#lib/firmware/radeon/RV730_me.bin -#lib/firmware/radeon/RV730_pfp.bin -#lib/firmware/radeon/RV770_me.bin -#lib/firmware/radeon/RV770_pfp.bin -#lib/firmware/sb16 -#lib/firmware/sb16/alaw_main.csp -#lib/firmware/sb16/ima_adpcm_capture.csp -#lib/firmware/sb16/ima_adpcm_init.csp -#lib/firmware/sb16/ima_adpcm_playback.csp -#lib/firmware/sb16/mulaw_main.csp -#lib/firmware/sun -#lib/firmware/sun/cassini.bin -#lib/firmware/tehuti -#lib/firmware/tehuti/bdx.bin -#lib/firmware/ti_3410.fw #lib/firmware/ti_5052.fw -#lib/firmware/tigon -#lib/firmware/tigon/tg3.bin -#lib/firmware/tigon/tg3_tso.bin -#lib/firmware/tigon/tg3_tso5.bin -#lib/firmware/tr_smctr.bin -#lib/firmware/ttusb-budget -#lib/firmware/ttusb-budget/dspbootcode.bin -#lib/firmware/vicam -#lib/firmware/vicam/firmware.fw -#lib/firmware/whiteheat.fw -#lib/firmware/whiteheat_loader.fw -#lib/firmware/yam -#lib/firmware/yam/1200.bin -#lib/firmware/yam/9600.bin -#lib/firmware/yamaha -#lib/firmware/yamaha/ds1_ctrl.fw -#lib/firmware/yamaha/ds1_dsp.fw -#lib/firmware/yamaha/ds1e_ctrl.fw -#lib/firmware/yamaha/yss225_registers.bin #lib/modules lib/modules/KVER-ipfire-xen #lib/modules/KVER-ipfire-xen/build @@ -673,6 +503,7 @@ lib/modules/KVER-ipfire-xen #lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/powermate.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko @@ -751,19 +582,17 @@ lib/modules/KVER-ipfire-xen #lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-crypt.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-least-pending.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-memcache.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mirror.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-queue-length.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-raid45.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-service-time.ko @@ -1179,7 +1008,6 @@ lib/modules/KVER-ipfire-xen #lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/msi-wmi.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko @@ -1271,7 +1099,6 @@ lib/modules/KVER-ipfire-xen #lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic #lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/gdth.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/hptiop.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/imm.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/initio.ko @@ -1582,7 +1409,7 @@ lib/modules/KVER-ipfire-xen #lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/xen #lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2 -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2/blktap2.ko +#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback #lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko #lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsifront @@ -1738,7 +1565,6 @@ lib/modules/KVER-ipfire-xen #lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko #lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipv4options.ko #lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko #lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko #lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko @@ -1803,7 +1629,6 @@ lib/modules/KVER-ipfire-xen #lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko #lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko #lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_slp.ko #lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko #lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink.ko diff --git a/config/rootfiles/packages/mc b/config/rootfiles/packages/mc index eec66d3..4cb6efa 100644 --- a/config/rootfiles/packages/mc +++ b/config/rootfiles/packages/mc @@ -1,4 +1,5 @@ usr/bin/mc +usr/bin/mcdiff usr/bin/mcedit usr/bin/mcmfmt usr/bin/mcview @@ -8,9 +9,6 @@ usr/etc/mc/Syntax usr/etc/mc/cedit.menu usr/etc/mc/edit.indent.rc usr/etc/mc/edit.spell.rc -usr/etc/mc/extfs -usr/etc/mc/extfs/extfs.ini -usr/etc/mc/extfs/sfs.ini usr/etc/mc/filehighlight.ini usr/etc/mc/mc.charsets usr/etc/mc/mc.ext @@ -20,9 +18,59 @@ usr/etc/mc/mc.keymap.emacs usr/etc/mc/mc.lib usr/etc/mc/mc.menu usr/etc/mc/mc.menu.sr +usr/etc/mc/sfs.ini #usr/libexec #usr/libexec/mc usr/libexec/mc/cons.saver +#usr/libexec/mc/extfs.d +#usr/libexec/mc/extfs.d/README +#usr/libexec/mc/extfs.d/README.extfs +usr/libexec/mc/extfs.d/a+ +usr/libexec/mc/extfs.d/apt+ +usr/libexec/mc/extfs.d/audio +usr/libexec/mc/extfs.d/bpp +usr/libexec/mc/extfs.d/deb +usr/libexec/mc/extfs.d/deba +usr/libexec/mc/extfs.d/debd +usr/libexec/mc/extfs.d/dpkg+ +usr/libexec/mc/extfs.d/hp48+ +usr/libexec/mc/extfs.d/iso9660 +usr/libexec/mc/extfs.d/lslR +usr/libexec/mc/extfs.d/mailfs +usr/libexec/mc/extfs.d/patchfs +usr/libexec/mc/extfs.d/rpm +usr/libexec/mc/extfs.d/rpms+ +usr/libexec/mc/extfs.d/s3+ +usr/libexec/mc/extfs.d/trpm +usr/libexec/mc/extfs.d/u7z +usr/libexec/mc/extfs.d/uace +usr/libexec/mc/extfs.d/ualz +usr/libexec/mc/extfs.d/uar +usr/libexec/mc/extfs.d/uarc +usr/libexec/mc/extfs.d/uarj +usr/libexec/mc/extfs.d/uc1541 +usr/libexec/mc/extfs.d/ucab +usr/libexec/mc/extfs.d/uha +usr/libexec/mc/extfs.d/ulha +usr/libexec/mc/extfs.d/urar +usr/libexec/mc/extfs.d/uzip +usr/libexec/mc/extfs.d/uzoo +#usr/libexec/mc/fish +#usr/libexec/mc/fish/README.fish +usr/libexec/mc/fish/append +usr/libexec/mc/fish/chmod +usr/libexec/mc/fish/chown +usr/libexec/mc/fish/fexists +usr/libexec/mc/fish/get +usr/libexec/mc/fish/hardlink +usr/libexec/mc/fish/info +usr/libexec/mc/fish/ln +usr/libexec/mc/fish/ls +usr/libexec/mc/fish/mkdir +usr/libexec/mc/fish/mv +usr/libexec/mc/fish/rmdir +usr/libexec/mc/fish/send +usr/libexec/mc/fish/unlink usr/libexec/mc/mc-wrapper.csh usr/libexec/mc/mc-wrapper.sh usr/libexec/mc/mc.csh @@ -31,38 +79,6 @@ usr/libexec/mc/mc.sh #usr/share/man/man1/mcedit.1 #usr/share/man/man1/mcview.1 #usr/share/mc -#usr/share/mc/extfs -#usr/share/mc/extfs/README -usr/share/mc/extfs/a -usr/share/mc/extfs/apt -usr/share/mc/extfs/audio -usr/share/mc/extfs/bpp -usr/share/mc/extfs/deb -usr/share/mc/extfs/deba -usr/share/mc/extfs/debd -usr/share/mc/extfs/dpkg -usr/share/mc/extfs/hp48 -usr/share/mc/extfs/iso9660 -usr/share/mc/extfs/lslR -usr/share/mc/extfs/mailfs -usr/share/mc/extfs/patchfs -usr/share/mc/extfs/rpm -usr/share/mc/extfs/rpms -usr/share/mc/extfs/s3 -usr/share/mc/extfs/trpm -usr/share/mc/extfs/u7z -usr/share/mc/extfs/uace -usr/share/mc/extfs/ualz -usr/share/mc/extfs/uar -usr/share/mc/extfs/uarc -usr/share/mc/extfs/uarj -usr/share/mc/extfs/uc1541 -usr/share/mc/extfs/ucab -usr/share/mc/extfs/uha -usr/share/mc/extfs/ulha -usr/share/mc/extfs/urar -usr/share/mc/extfs/uzip -usr/share/mc/extfs/uzoo usr/share/mc/mc.hint #usr/share/mc/mc.hint.cs #usr/share/mc/mc.hint.es @@ -81,6 +97,7 @@ usr/share/mc/skins/default.ini usr/share/mc/skins/double-lines.ini usr/share/mc/skins/featured.ini usr/share/mc/skins/gotar.ini +usr/share/mc/skins/nicedark.ini #usr/share/mc/syntax usr/share/mc/syntax/PKGBUILD.syntax usr/share/mc/syntax/ada95.syntax @@ -109,6 +126,7 @@ usr/share/mc/syntax/fortran.syntax usr/share/mc/syntax/haskell.syntax usr/share/mc/syntax/html.syntax usr/share/mc/syntax/idl.syntax +usr/share/mc/syntax/ini.syntax usr/share/mc/syntax/j.syntax usr/share/mc/syntax/java.syntax usr/share/mc/syntax/js.syntax @@ -149,4 +167,4 @@ usr/share/mc/syntax/verilog.syntax usr/share/mc/syntax/vhdl.syntax usr/share/mc/syntax/xml.syntax usr/share/mc/syntax/yum-repo.syntax -usr/share/mc/syntax/yxx.syntax \ No newline at end of file +usr/share/mc/syntax/yxx.syntax diff --git a/config/rootfiles/packages/minicom b/config/rootfiles/packages/minicom new file mode 100644 index 0000000..53266e6 --- /dev/null +++ b/config/rootfiles/packages/minicom @@ -0,0 +1,26 @@ +usr/bin/ascii-xfr +usr/bin/minicom +usr/bin/runscript +usr/bin/xminicom +#usr/share/locale/cs/LC_MESSAGES/minicom.mo +#usr/share/locale/da/LC_MESSAGES/minicom.mo +#usr/share/locale/de/LC_MESSAGES/minicom.mo +#usr/share/locale/es/LC_MESSAGES/minicom.mo +#usr/share/locale/fi/LC_MESSAGES/minicom.mo +#usr/share/locale/fr/LC_MESSAGES/minicom.mo +#usr/share/locale/hu/LC_MESSAGES/minicom.mo +#usr/share/locale/id/LC_MESSAGES/minicom.mo +#usr/share/locale/ja/LC_MESSAGES/minicom.mo +#usr/share/locale/nb/LC_MESSAGES/minicom.mo +#usr/share/locale/pl/LC_MESSAGES/minicom.mo +#usr/share/locale/pt_BR/LC_MESSAGES/minicom.mo +#usr/share/locale/ro/LC_MESSAGES/minicom.mo +#usr/share/locale/ru/LC_MESSAGES/minicom.mo +#usr/share/locale/rw/LC_MESSAGES/minicom.mo +#usr/share/locale/sv/LC_MESSAGES/minicom.mo +#usr/share/locale/vi/LC_MESSAGES/minicom.mo +#usr/share/locale/zh_TW/LC_MESSAGES/minicom.mo +#usr/share/man/man1/ascii-xfr.1 +#usr/share/man/man1/minicom.1 +#usr/share/man/man1/runscript.1 +#usr/share/man/man1/xminicom.1 diff --git a/config/rootfiles/packages/mldonkey b/config/rootfiles/packages/mldonkey index b1fe6f7..1269488 100644 --- a/config/rootfiles/packages/mldonkey +++ b/config/rootfiles/packages/mldonkey @@ -1,5 +1,5 @@ var/ipfire/backup/addons/includes/mldonkey -etc/init.d/mldonkey +etc/rc.d/init.d/mldonkey #opt/mldonkey opt/mldonkey/.mldonkey #opt/mldonkey/.mldonkey/bittorrent.ini diff --git a/config/rootfiles/packages/netsnmpd b/config/rootfiles/packages/netsnmpd index 461c679..1d730cb 100644 --- a/config/rootfiles/packages/netsnmpd +++ b/config/rootfiles/packages/netsnmpd @@ -586,4 +586,4 @@ usr/share/snmp/snmpconf-data/snmptrapd-data/logging usr/share/snmp/snmpconf-data/snmptrapd-data/runtime usr/share/snmp/snmpconf-data/snmptrapd-data/snmpconf-config usr/share/snmp/snmpconf-data/snmptrapd-data/traphandle -etc/init.d/netsnmpd +etc/rc.d/init.d/netsnmpd diff --git a/config/rootfiles/packages/nfs b/config/rootfiles/packages/nfs index a39e1f0..7585380 100644 --- a/config/rootfiles/packages/nfs +++ b/config/rootfiles/packages/nfs @@ -1,51 +1,45 @@ -etc/init.d/nfs-server -#usr/man/man5/exports.5 -#usr/man/man7/nfsd.7 -#usr/man/man8/exportfs.8 -#usr/man/man8/lockd.8 -#usr/man/man8/mountd.8 -#usr/man/man8/nfsd.8 -#usr/man/man8/nfsstat.8 -#usr/man/man8/nhfsgraph.8 -#usr/man/man8/nhfsnums.8 -#usr/man/man8/nhfsrun.8 -#usr/man/man8/nhfsstone.8 -#usr/man/man8/rpc.lockd.8 -#usr/man/man8/rpc.mountd.8 -#usr/man/man8/rpc.nfsd.8 -#usr/man/man8/rpc.rquotad.8 -#usr/man/man8/rpc.statd.8 -#usr/man/man8/rquotad.8 -#usr/man/man8/showmount.8 -#usr/man/man8/statd.8 +sbin/mount.nfs +sbin/mount.nfs4 +sbin/umount.nfs +sbin/umount.nfs4 +#usr/include/nfsidmap.h +#usr/lib/libnfsidmap +#usr/lib/libnfsidmap.a +#usr/lib/libnfsidmap.la +usr/lib/libnfsidmap.so +usr/lib/libnfsidmap.so.0 +usr/lib/libnfsidmap.so.0.3.0 +#usr/lib/libnfsidmap/nsswitch.a +#usr/lib/libnfsidmap/nsswitch.la +usr/lib/libnfsidmap/nsswitch.so +#usr/lib/libnfsidmap/static.a +#usr/lib/libnfsidmap/static.la +usr/lib/libnfsidmap/static.so +#usr/lib/libnfsidmap/umich_ldap.a +#usr/lib/libnfsidmap/umich_ldap.la +usr/lib/libnfsidmap/umich_ldap.so +#usr/lib/pkgconfig/libnfsidmap.pc usr/sbin/exportfs usr/sbin/nfsstat +usr/sbin/rpc.idmapd usr/sbin/rpc.mountd usr/sbin/rpc.nfsd usr/sbin/rpc.statd -usr/sbin/showmount -var/ipfire/nfs/nfs-server -#var/lib/nfs -var/lib/nfs/etab -var/lib/nfs/rmtab -var/lib/nfs/sm -#var/lib/nfs/sm.bak -var/lib/nfs/state -var/lib/nfs/xtab -sbin/mount.nfs -sbin/mount.nfs4 -sbin/umount.nfs -sbin/umount.nfs4 usr/sbin/rpcdebug +usr/sbin/showmount usr/sbin/sm-notify usr/sbin/start-statd +#usr/share/man/man3/nfs4_uid_to_name.3 #usr/share/man/man5/exports.5 +#usr/share/man/man5/idmapd.conf.5 #usr/share/man/man7/nfsd.7 #usr/share/man/man8/exportfs.8 +#usr/share/man/man8/idmapd.8 #usr/share/man/man8/mount.nfs.8 #usr/share/man/man8/mountd.8 #usr/share/man/man8/nfsd.8 #usr/share/man/man8/nfsstat.8 +#usr/share/man/man8/rpc.idmapd.8 #usr/share/man/man8/rpc.mountd.8 #usr/share/man/man8/rpc.nfsd.8 #usr/share/man/man8/rpc.sm-notify.8 @@ -55,3 +49,12 @@ usr/sbin/start-statd #usr/share/man/man8/sm-notify.8 #usr/share/man/man8/statd.8 #usr/share/man/man8/umount.nfs.8 +#var/lib/nfs +var/lib/nfs/etab +var/lib/nfs/rmtab +var/lib/nfs/sm +#var/lib/nfs/sm.bak +var/lib/nfs/state +var/lib/nfs/xtab +etc/rc.d/init.d/nfs-server +var/ipfire/nfs/nfs-server diff --git a/config/rootfiles/packages/nut b/config/rootfiles/packages/nut index c4ebe19..f7d3d2b 100644 --- a/config/rootfiles/packages/nut +++ b/config/rootfiles/packages/nut @@ -1,6 +1,3 @@ -var/ipfire/backup/addons/includes/nut -var/state/ups -etc/rc.d/init.d/nut #etc/nut etc/nut/nut.conf.sample etc/nut/ups.conf.sample @@ -15,18 +12,22 @@ usr/bin/bcmxcp_usb usr/bin/belkin usr/bin/belkinunv usr/bin/bestfcom +usr/bin/bestfortress usr/bin/bestuferrups usr/bin/bestups usr/bin/blazer_ser usr/bin/blazer_usb -usr/bin/cyberpower +usr/bin/clone +usr/bin/clone-outlet usr/bin/dummy-ups usr/bin/etapro usr/bin/everups usr/bin/gamatronic usr/bin/genericups usr/bin/isbmex +usr/bin/ivtscd usr/bin/liebert +usr/bin/liebertgxt2 usr/bin/masterguard usr/bin/megatec usr/bin/megatec_usb @@ -68,6 +69,7 @@ usr/sbin/upsmon usr/sbin/upssched usr/share/cmdvartab usr/share/driver.list +#usr/share/man/man5/nut.conf.5 #usr/share/man/man5/ups.conf.5 #usr/share/man/man5/upsd.conf.5 #usr/share/man/man5/upsd.users.5 @@ -79,17 +81,20 @@ usr/share/driver.list #usr/share/man/man8/belkin.8 #usr/share/man/man8/belkinunv.8 #usr/share/man/man8/bestfcom.8 +#usr/share/man/man8/bestfortress.8 #usr/share/man/man8/bestuferrups.8 #usr/share/man/man8/bestups.8 #usr/share/man/man8/blazer.8 -#usr/share/man/man8/cyberpower.8 +#usr/share/man/man8/clone.8 #usr/share/man/man8/dummy-ups.8 #usr/share/man/man8/etapro.8 #usr/share/man/man8/everups.8 #usr/share/man/man8/gamatronic.8 #usr/share/man/man8/genericups.8 #usr/share/man/man8/isbmex.8 +#usr/share/man/man8/ivtscd.8 #usr/share/man/man8/liebert.8 +#usr/share/man/man8/liebertgxt2.8 #usr/share/man/man8/masterguard.8 #usr/share/man/man8/megatec.8 #usr/share/man/man8/megatec_usb.8 @@ -121,3 +126,6 @@ usr/share/driver.list #usr/share/man/man8/upssched.8 #usr/share/man/man8/usbhid-ups.8 #usr/share/man/man8/victronups.8 +var/ipfire/backup/addons/includes/nut +var/state/ups +etc/rc.d/init.d/nut diff --git a/config/rootfiles/packages/openvmtools b/config/rootfiles/packages/openvmtools new file mode 100644 index 0000000..29f1177 --- /dev/null +++ b/config/rootfiles/packages/openvmtools @@ -0,0 +1,39 @@ +etc/rc.d/init.d/openvmtools +etc/rc.d/rc0.d/K01openvmtools +etc/rc.d/rc3.d/S60openvmtools +etc/rc.d/rc6.d/K01openvmtools +etc/vmware-tools +etc/vmware-tools/plugins +etc/vmware-tools/poweroff-vm-default +etc/vmware-tools/poweron-vm-default +etc/vmware-tools/resume-vm-default +etc/vmware-tools/suspend-vm-default +etc/vmware-tools/vm-support +sbin/mount.vmhgfs +usr/bin/vmtoolsd +usr/bin/vmware-checkvm +usr/bin/vmware-hgfsclient +usr/bin/vmware-rpctool +usr/bin/vmware-toolbox-cmd +usr/bin/vmware-vmblock-fuse +usr/bin/vmware-xferlogs +usr/lib/libguestlib.a +usr/lib/libguestlib.la +usr/lib/libguestlib.so +usr/lib/libguestlib.so.0 +usr/lib/libguestlib.so.0.0.0 +usr/lib/libvmtools.a +usr/lib/libvmtools.la +usr/lib/libvmtools.so +usr/lib/libvmtools.so.0 +usr/lib/libvmtools.so.0.0.0 +usr/lib/open-vm-tools +usr/lib/open-vm-tools/plugins +usr/lib/open-vm-tools/plugins/vmsvc +usr/lib/open-vm-tools/plugins/vmsvc/libguestInfo.so +usr/lib/open-vm-tools/plugins/vmsvc/libhgfsServer.so +usr/lib/open-vm-tools/plugins/vmsvc/libpowerOps.so +usr/lib/open-vm-tools/plugins/vmsvc/libtimeSync.so +usr/lib/open-vm-tools/plugins/vmsvc/libvix.so +usr/lib/open-vm-tools/plugins/vmsvc/libvmbackup.so +usr/sbin/mount.vmhgfs diff --git a/config/rootfiles/packages/portmap b/config/rootfiles/packages/portmap index 43db7f4..4b60d64 100644 --- a/config/rootfiles/packages/portmap +++ b/config/rootfiles/packages/portmap @@ -1,4 +1,4 @@ -etc/init.d/portmap +etc/rc.d/init.d/portmap sbin/portmap #sbin/pmap_dump #sbin/pmap_set diff --git a/config/rootfiles/packages/pound b/config/rootfiles/packages/pound new file mode 100644 index 0000000..45e218b --- /dev/null +++ b/config/rootfiles/packages/pound @@ -0,0 +1,8 @@ +#root/.rnd +#etc/pound.cfg +usr/sbin/pound +usr/sbin/poundctl +#usr/share/man/man8/pound.8 +#usr/share/man/man8/poundctl.8 +var/ipfire/backup/addons/includes/pound +etc/rc.d/init.d/pound diff --git a/config/rootfiles/packages/python-clientform b/config/rootfiles/packages/python-clientform index 0e640a5..85a0d03 100644 --- a/config/rootfiles/packages/python-clientform +++ b/config/rootfiles/packages/python-clientform @@ -1 +1 @@ -usr/lib/python2.4/site-packages/ClientForm-0.2.9-py2.4.egg +usr/lib/python2.7/site-packages/ClientForm-0.2.9-py2.7.egg diff --git a/config/rootfiles/packages/python-feedparser b/config/rootfiles/packages/python-feedparser index bcbad2a..88dbf1f 100644 --- a/config/rootfiles/packages/python-feedparser +++ b/config/rootfiles/packages/python-feedparser @@ -1,2 +1,3 @@ -usr/lib/python2.4/site-packages/feedparser.py -usr/lib/python2.4/site-packages/feedparser.pyc +#usr/lib/python2.7/site-packages/feedparser-4.1-py2.7.egg-info +#usr/lib/python2.7/site-packages/feedparser.py +usr/lib/python2.7/site-packages/feedparser.pyc diff --git a/config/rootfiles/packages/python-mechanize b/config/rootfiles/packages/python-mechanize index 8fdb39b..5b5bf6a 100644 --- a/config/rootfiles/packages/python-mechanize +++ b/config/rootfiles/packages/python-mechanize @@ -1 +1 @@ -usr/lib/python2.4/site-packages/mechanize-0.1.8-py2.4.egg +usr/lib/python2.7/site-packages/mechanize-0.1.8-py2.7.egg diff --git a/config/rootfiles/packages/python-rssdler b/config/rootfiles/packages/python-rssdler index e593f40..0c8bf8d 100644 --- a/config/rootfiles/packages/python-rssdler +++ b/config/rootfiles/packages/python-rssdler @@ -1,3 +1,4 @@ usr/bin/rssdler -usr/lib/python2.4/site-packages/rssdler.py -usr/lib/python2.4/site-packages/rssdler.pyc +#usr/lib/python2.7/site-packages/rssdler-0.4.0-py2.7.egg-info +usr/lib/python2.7/site-packages/rssdler.py +usr/lib/python2.7/site-packages/rssdler.pyc diff --git a/config/rootfiles/packages/spamassassin b/config/rootfiles/packages/spamassassin index 20d3b7d..73b0066 100644 --- a/config/rootfiles/packages/spamassassin +++ b/config/rootfiles/packages/spamassassin @@ -1,4 +1,4 @@ -etc/init.d/spamassassin +etc/rc.d/init.d/spamassassin etc/mail #etc/mail/spamassassin #etc/mail/spamassassin/init.pre diff --git a/config/rootfiles/packages/tcptrack b/config/rootfiles/packages/tcptrack deleted file mode 100644 index 5dbd7ab..0000000 --- a/config/rootfiles/packages/tcptrack +++ /dev/null @@ -1,2 +0,0 @@ -usr/bin/tcptrack -#usr/share/man/man1/tcptrack.1 diff --git a/config/rootfiles/packages/teamspeak b/config/rootfiles/packages/teamspeak index abeaf00..b7c2358 100644 --- a/config/rootfiles/packages/teamspeak +++ b/config/rootfiles/packages/teamspeak @@ -1,3 +1,3 @@ -etc/init.d/teamspeak +etc/rc.d/init.d/teamspeak opt/teamspeak var/ipfire/backup/addons/includes/teamspeak diff --git a/config/rootfiles/packages/tftpd b/config/rootfiles/packages/tftpd index 5df1809..55d261b 100644 --- a/config/rootfiles/packages/tftpd +++ b/config/rootfiles/packages/tftpd @@ -1,4 +1,4 @@ -etc/init.d/tftpd +etc/rc.d/init.d/tftpd #usr/man/man1/tftp.1 #usr/man/man8/in.tftpd.8 #usr/man/man8/tftpd.8 diff --git a/config/rootfiles/packages/urlgrabber b/config/rootfiles/packages/urlgrabber index a94ad5f..66b9bb2 100644 --- a/config/rootfiles/packages/urlgrabber +++ b/config/rootfiles/packages/urlgrabber @@ -1,22 +1,20 @@ usr/bin/urlgrabber -usr/lib/python2.4/httplib.pyc -usr/lib/python2.4/socket.pyc -usr/lib/python2.4/encodings/idna.pyc -#usr/lib/python2.4/site-packages/urlgrabber -#usr/lib/python2.4/site-packages/urlgrabber/__init__.py -usr/lib/python2.4/site-packages/urlgrabber/__init__.pyc -#usr/lib/python2.4/site-packages/urlgrabber/byterange.py -usr/lib/python2.4/site-packages/urlgrabber/byterange.pyc -#usr/lib/python2.4/site-packages/urlgrabber/grabber.py -usr/lib/python2.4/site-packages/urlgrabber/grabber.pyc -#usr/lib/python2.4/site-packages/urlgrabber/keepalive.py -usr/lib/python2.4/site-packages/urlgrabber/keepalive.pyc -#usr/lib/python2.4/site-packages/urlgrabber/mirror.py -usr/lib/python2.4/site-packages/urlgrabber/mirror.pyc -#usr/lib/python2.4/site-packages/urlgrabber/progress.py -usr/lib/python2.4/site-packages/urlgrabber/progress.pyc -#usr/lib/python2.4/site-packages/urlgrabber/sslfactory.py -usr/lib/python2.4/site-packages/urlgrabber/sslfactory.pyc +#usr/lib/python2.7/site-packages/urlgrabber +#usr/lib/python2.7/site-packages/urlgrabber-3.1.0-py2.7.egg-info +#usr/lib/python2.7/site-packages/urlgrabber/__init__.py +usr/lib/python2.7/site-packages/urlgrabber/__init__.pyc +#usr/lib/python2.7/site-packages/urlgrabber/byterange.py +usr/lib/python2.7/site-packages/urlgrabber/byterange.pyc +#usr/lib/python2.7/site-packages/urlgrabber/grabber.py +usr/lib/python2.7/site-packages/urlgrabber/grabber.pyc +#usr/lib/python2.7/site-packages/urlgrabber/keepalive.py +usr/lib/python2.7/site-packages/urlgrabber/keepalive.pyc +#usr/lib/python2.7/site-packages/urlgrabber/mirror.py +usr/lib/python2.7/site-packages/urlgrabber/mirror.pyc +#usr/lib/python2.7/site-packages/urlgrabber/progress.py +usr/lib/python2.7/site-packages/urlgrabber/progress.pyc +#usr/lib/python2.7/site-packages/urlgrabber/sslfactory.py +usr/lib/python2.7/site-packages/urlgrabber/sslfactory.pyc #usr/share/doc/urlgrabber-3.1.0 #usr/share/doc/urlgrabber-3.1.0/ChangeLog #usr/share/doc/urlgrabber-3.1.0/LICENSE diff --git a/config/rootfiles/packages/vdradmin b/config/rootfiles/packages/vdradmin index 3857e5e..17be5a7 100644 --- a/config/rootfiles/packages/vdradmin +++ b/config/rootfiles/packages/vdradmin @@ -1,7 +1,3 @@ -etc/rc.d/init.d/vdradmin -etc/rc.d/rc0.d/K01vdradmin -etc/rc.d/rc6.d/K01vdradmin -etc/rc.d/rc3.d/S99vdradmin #etc/vdradmin etc/vdradmin/vdradmind.conf usr/bin/vdradmind @@ -24,40 +20,13 @@ usr/bin/vdradmind #usr/share/doc/vdradmin/contrib/user.css.example #usr/share/doc/vdradmin/contrib/vdradmind.bl_example #usr/share/locale/cs/LC_MESSAGES/vdradmin.mo -#usr/share/locale/cs_CZ.utf8 -#usr/share/locale/cs_CZ.utf8/LC_MESSAGES -#usr/share/locale/cs_CZ.utf8/LC_MESSAGES/vdradmin.mo usr/share/locale/de/LC_MESSAGES/vdradmin.mo -#usr/share/locale/de_DE.utf8 -#usr/share/locale/de_DE.utf8/LC_MESSAGES -usr/share/locale/de_DE.utf8/LC_MESSAGES/vdradmin.mo -#usr/share/locale/en_US.utf8 -#usr/share/locale/en_US.utf8/LC_MESSAGES -usr/share/locale/en_US.utf8/LC_MESSAGES/vdradmin.mo #usr/share/locale/es/LC_MESSAGES/vdradmin.mo -#usr/share/locale/es_ES.utf8 -#usr/share/locale/es_ES.utf8/LC_MESSAGES -#usr/share/locale/es_ES.utf8/LC_MESSAGES/vdradmin.mo #usr/share/locale/fi/LC_MESSAGES/vdradmin.mo -#usr/share/locale/fi_FI.utf8 -#usr/share/locale/fi_FI.utf8/LC_MESSAGES -#usr/share/locale/fi_FI.utf8/LC_MESSAGES/vdradmin.mo #usr/share/locale/fr/LC_MESSAGES/vdradmin.mo -#usr/share/locale/fr_FR.utf8 -#usr/share/locale/fr_FR.utf8/LC_MESSAGES -#usr/share/locale/fr_FR.utf8/LC_MESSAGES/vdradmin.mo #usr/share/locale/it/LC_MESSAGES/vdradmin.mo -#usr/share/locale/it_IT.utf8 -#usr/share/locale/it_IT.utf8/LC_MESSAGES -#usr/share/locale/it_IT.utf8/LC_MESSAGES/vdradmin.mo #usr/share/locale/nl/LC_MESSAGES/vdradmin.mo -#usr/share/locale/nl_NL.utf8 -#usr/share/locale/nl_NL.utf8/LC_MESSAGES -#usr/share/locale/nl_NL.utf8/LC_MESSAGES/vdradmin.mo #usr/share/locale/ru/LC_MESSAGES/vdradmin.mo -#usr/share/locale/ru_RU.utf8 -#usr/share/locale/ru_RU.utf8/LC_MESSAGES -#usr/share/locale/ru_RU.utf8/LC_MESSAGES/vdradmin.mo #usr/share/man/man1/vdradmind.1 usr/share/vdradmin #usr/share/vdradmin/lib @@ -205,3 +174,11 @@ usr/share/vdradmin #usr/share/vdradmin/template/default/timer_new.html #usr/share/vdradmin/template/default/tv.html #usr/share/vdradmin/template/default/vdr_cmds.html +etc/rc.d/init.d/vdradmin +etc/rc.d/rc0.d/K01vdradmin +etc/rc.d/rc6.d/K01vdradmin +etc/rc.d/rc3.d/S99vdradmin +#usr/share/locale/de_DE.utf8/LC_MESSAGES/vdradmin.mo +#usr/share/locale/en_US.utf8/LC_MESSAGES/vdradmin.mo +var/log/vdradmin +var/run/vdradmin diff --git a/config/rootfiles/packages/watchdog b/config/rootfiles/packages/watchdog index d4ee9c8..677c5dc 100644 --- a/config/rootfiles/packages/watchdog +++ b/config/rootfiles/packages/watchdog @@ -1,8 +1,10 @@ etc/watchdog.conf usr/sbin/watchdog +usr/sbin/wd_identify usr/sbin/wd_keepalive #usr/share/man/man5/watchdog.conf.5 #usr/share/man/man8/watchdog.8 +#usr/share/man/man8/wd_identify.8 #usr/share/man/man8/wd_keepalive.8 var/ipfire/backup/addons/includes/watchdog etc/rc.d/init.d/watchdog diff --git a/config/rootfiles/packages/x11libs-disabled b/config/rootfiles/packages/x11libs-disabled deleted file mode 100644 index 341f263..0000000 --- a/config/rootfiles/packages/x11libs-disabled +++ /dev/null @@ -1,2827 +0,0 @@ -#doc -#doc/libxcb-1.1 -#doc/libxcb-1.1/tutorial -#doc/libxcb-1.1/tutorial/index.html -#doc/libxcb-1.1/tutorial/xcb.css -#usr/bin/ar86 -#usr/bin/as86 -#usr/bin/bcc -#usr/bin/ccmakedep -#usr/bin/cleanlinks -#usr/bin/cxpm -#usr/bin/elksemu -#usr/bin/gccmakedep -#usr/bin/gperf -#usr/bin/imake -#usr/bin/ld86 -#usr/bin/lndir -#usr/bin/makedepend -#usr/bin/makeg -#usr/bin/makestrs -#usr/bin/mergelib -#usr/bin/mkdirhier -#usr/bin/mkhtmlindex -#usr/bin/nm86 -#usr/bin/objdump86 -#usr/bin/revpath -#usr/bin/size86 -#usr/bin/sxpm -#usr/bin/xft-config -#usr/bin/xmkmf -#usr/include/GL -#usr/include/GL/glxint.h -#usr/include/GL/glxmd.h -#usr/include/GL/glxproto.h -#usr/include/GL/glxtokens.h -#usr/include/GL/internal -#usr/include/GL/internal/glcore.h -#usr/include/X11 -#usr/include/X11/CallbackI.h -#usr/include/X11/Composite.h -#usr/include/X11/CompositeP.h -#usr/include/X11/ConstrainP.h -#usr/include/X11/Constraint.h -#usr/include/X11/ConvertI.h -#usr/include/X11/Core.h -#usr/include/X11/CoreP.h -#usr/include/X11/CreateI.h -#usr/include/X11/DECkeysym.h -#usr/include/X11/EventI.h -#usr/include/X11/HPkeysym.h -#usr/include/X11/HookObjI.h -#usr/include/X11/ICE -#usr/include/X11/ICE/ICE.h -#usr/include/X11/ICE/ICEconn.h -#usr/include/X11/ICE/ICElib.h -#usr/include/X11/ICE/ICEmsg.h -#usr/include/X11/ICE/ICEproto.h -#usr/include/X11/ICE/ICEutil.h -#usr/include/X11/ImUtil.h -#usr/include/X11/InitialI.h -#usr/include/X11/Intrinsic.h -#usr/include/X11/IntrinsicI.h -#usr/include/X11/IntrinsicP.h -#usr/include/X11/Object.h -#usr/include/X11/ObjectP.h -#usr/include/X11/PassivGraI.h -#usr/include/X11/RectObj.h -#usr/include/X11/RectObjP.h -#usr/include/X11/ResConfigP.h -#usr/include/X11/ResourceI.h -#usr/include/X11/SM -#usr/include/X11/SM/SM.h -#usr/include/X11/SM/SMlib.h -#usr/include/X11/SM/SMproto.h -#usr/include/X11/SelectionI.h -#usr/include/X11/Shell.h -#usr/include/X11/ShellI.h -#usr/include/X11/ShellP.h -#usr/include/X11/StringDefs.h -#usr/include/X11/Sunkeysym.h -#usr/include/X11/ThreadsI.h -#usr/include/X11/TranslateI.h -#usr/include/X11/VarargsI.h -#usr/include/X11/Vendor.h -#usr/include/X11/VendorP.h -#usr/include/X11/X.h -#usr/include/X11/XF86keysym.h -#usr/include/X11/XKBlib.h -#usr/include/X11/XWDFile.h -#usr/include/X11/Xalloca.h -#usr/include/X11/Xarch.h -#usr/include/X11/Xatom.h -#usr/include/X11/Xauth.h -#usr/include/X11/Xaw -#usr/include/X11/Xaw/AllWidgets.h -#usr/include/X11/Xaw/AsciiSink.h -#usr/include/X11/Xaw/AsciiSinkP.h -#usr/include/X11/Xaw/AsciiSrc.h -#usr/include/X11/Xaw/AsciiSrcP.h -#usr/include/X11/Xaw/AsciiText.h -#usr/include/X11/Xaw/AsciiTextP.h -#usr/include/X11/Xaw/Box.h -#usr/include/X11/Xaw/BoxP.h -#usr/include/X11/Xaw/Cardinals.h -#usr/include/X11/Xaw/Command.h -#usr/include/X11/Xaw/CommandP.h -#usr/include/X11/Xaw/Dialog.h -#usr/include/X11/Xaw/DialogP.h -#usr/include/X11/Xaw/Form.h -#usr/include/X11/Xaw/FormP.h -#usr/include/X11/Xaw/Grip.h -#usr/include/X11/Xaw/GripP.h -#usr/include/X11/Xaw/Label.h -#usr/include/X11/Xaw/LabelP.h -#usr/include/X11/Xaw/List.h -#usr/include/X11/Xaw/ListP.h -#usr/include/X11/Xaw/MenuButtoP.h -#usr/include/X11/Xaw/MenuButton.h -#usr/include/X11/Xaw/MultiSink.h -#usr/include/X11/Xaw/MultiSinkP.h -#usr/include/X11/Xaw/MultiSrc.h -#usr/include/X11/Xaw/MultiSrcP.h -#usr/include/X11/Xaw/Paned.h -#usr/include/X11/Xaw/PanedP.h -#usr/include/X11/Xaw/Panner.h -#usr/include/X11/Xaw/PannerP.h -#usr/include/X11/Xaw/Porthole.h -#usr/include/X11/Xaw/PortholeP.h -#usr/include/X11/Xaw/Repeater.h -#usr/include/X11/Xaw/RepeaterP.h -#usr/include/X11/Xaw/Reports.h -#usr/include/X11/Xaw/Scrollbar.h -#usr/include/X11/Xaw/ScrollbarP.h -#usr/include/X11/Xaw/Simple.h -#usr/include/X11/Xaw/SimpleMenP.h -#usr/include/X11/Xaw/SimpleMenu.h -#usr/include/X11/Xaw/SimpleP.h -#usr/include/X11/Xaw/Sme.h -#usr/include/X11/Xaw/SmeBSB.h -#usr/include/X11/Xaw/SmeBSBP.h -#usr/include/X11/Xaw/SmeLine.h -#usr/include/X11/Xaw/SmeLineP.h -#usr/include/X11/Xaw/SmeP.h -#usr/include/X11/Xaw/StripCharP.h -#usr/include/X11/Xaw/StripChart.h -#usr/include/X11/Xaw/Template.c -#usr/include/X11/Xaw/Template.h -#usr/include/X11/Xaw/TemplateP.h -#usr/include/X11/Xaw/Text.h -#usr/include/X11/Xaw/TextP.h -#usr/include/X11/Xaw/TextSink.h -#usr/include/X11/Xaw/TextSinkP.h -#usr/include/X11/Xaw/TextSrc.h -#usr/include/X11/Xaw/TextSrcP.h -#usr/include/X11/Xaw/Tip.h -#usr/include/X11/Xaw/TipP.h -#usr/include/X11/Xaw/Toggle.h -#usr/include/X11/Xaw/ToggleP.h -#usr/include/X11/Xaw/Tree.h -#usr/include/X11/Xaw/TreeP.h -#usr/include/X11/Xaw/VendorEP.h -#usr/include/X11/Xaw/Viewport.h -#usr/include/X11/Xaw/ViewportP.h -#usr/include/X11/Xaw/XawImP.h -#usr/include/X11/Xaw/XawInit.h -#usr/include/X11/Xcms.h -#usr/include/X11/Xcursor -#usr/include/X11/Xcursor/Xcursor.h -#usr/include/X11/Xdefs.h -#usr/include/X11/Xdmcp.h -#usr/include/X11/Xft -#usr/include/X11/Xft/Xft.h -#usr/include/X11/Xft/XftCompat.h -#usr/include/X11/Xfuncproto.h -#usr/include/X11/Xfuncs.h -#usr/include/X11/Xlib-xcb.h -#usr/include/X11/Xlib.h -#usr/include/X11/XlibConf.h -#usr/include/X11/Xlibint.h -#usr/include/X11/Xlocale.h -#usr/include/X11/Xmd.h -#usr/include/X11/Xmu -#usr/include/X11/Xmu/Atoms.h -#usr/include/X11/Xmu/CharSet.h -#usr/include/X11/Xmu/CloseHook.h -#usr/include/X11/Xmu/Converters.h -#usr/include/X11/Xmu/CurUtil.h -#usr/include/X11/Xmu/CvtCache.h -#usr/include/X11/Xmu/DisplayQue.h -#usr/include/X11/Xmu/Drawing.h -#usr/include/X11/Xmu/Editres.h -#usr/include/X11/Xmu/EditresP.h -#usr/include/X11/Xmu/Error.h -#usr/include/X11/Xmu/ExtAgent.h -#usr/include/X11/Xmu/Initer.h -#usr/include/X11/Xmu/Lookup.h -#usr/include/X11/Xmu/Misc.h -#usr/include/X11/Xmu/StdCmap.h -#usr/include/X11/Xmu/StdSel.h -#usr/include/X11/Xmu/SysUtil.h -#usr/include/X11/Xmu/WidgetNode.h -#usr/include/X11/Xmu/WinUtil.h -#usr/include/X11/Xmu/Xct.h -#usr/include/X11/Xmu/Xmu.h -#usr/include/X11/Xos.h -#usr/include/X11/Xos_r.h -#usr/include/X11/Xosdefs.h -#usr/include/X11/Xpoll.h -#usr/include/X11/Xproto.h -#usr/include/X11/Xprotostr.h -#usr/include/X11/Xregion.h -#usr/include/X11/Xresource.h -#usr/include/X11/Xthreads.h -#usr/include/X11/Xtos.h -#usr/include/X11/Xtrans -#usr/include/X11/Xtrans/Xtrans.c -#usr/include/X11/Xtrans/Xtrans.h -#usr/include/X11/Xtrans/Xtransdnet.c -#usr/include/X11/Xtrans/Xtransint.h -#usr/include/X11/Xtrans/Xtranslcl.c -#usr/include/X11/Xtrans/Xtransos2.c -#usr/include/X11/Xtrans/Xtranssock.c -#usr/include/X11/Xtrans/Xtranstli.c -#usr/include/X11/Xtrans/Xtransutil.c -#usr/include/X11/Xtrans/transport.c -#usr/include/X11/Xutil.h -#usr/include/X11/Xw32defs.h -#usr/include/X11/Xwindows.h -#usr/include/X11/Xwinsock.h -#usr/include/X11/ap_keysym.h -#usr/include/X11/cursorfont.h -#usr/include/X11/dri -#usr/include/X11/dri/xf86dri.h -#usr/include/X11/dri/xf86dristr.h -#usr/include/X11/extensions -#usr/include/X11/extensions/MITMisc.h -#usr/include/X11/extensions/XEVI.h -#usr/include/X11/extensions/XEVIstr.h -#usr/include/X11/extensions/XI.h -#usr/include/X11/extensions/XInput.h -#usr/include/X11/extensions/XIproto.h -#usr/include/X11/extensions/XKB.h -#usr/include/X11/extensions/XKBbells.h -#usr/include/X11/extensions/XKBconfig.h -#usr/include/X11/extensions/XKBfile.h -#usr/include/X11/extensions/XKBgeom.h -#usr/include/X11/extensions/XKBproto.h -#usr/include/X11/extensions/XKBrules.h -#usr/include/X11/extensions/XKBsrv.h -#usr/include/X11/extensions/XKBstr.h -#usr/include/X11/extensions/XKM.h -#usr/include/X11/extensions/XKMformat.h -#usr/include/X11/extensions/XLbx.h -#usr/include/X11/extensions/XRes.h -#usr/include/X11/extensions/XResproto.h -#usr/include/X11/extensions/XShm.h -#usr/include/X11/extensions/XTest.h -#usr/include/X11/extensions/Xag.h -#usr/include/X11/extensions/Xagstr.h -#usr/include/X11/extensions/Xcomposite.h -#usr/include/X11/extensions/Xcup.h -#usr/include/X11/extensions/Xcupstr.h -#usr/include/X11/extensions/Xdamage.h -#usr/include/X11/extensions/Xdbe.h -#usr/include/X11/extensions/Xdbeproto.h -#usr/include/X11/extensions/Xeviestr.h -#usr/include/X11/extensions/Xext.h -#usr/include/X11/extensions/Xfixes.h -#usr/include/X11/extensions/Xge.h -#usr/include/X11/extensions/Xinerama.h -#usr/include/X11/extensions/Xrandr.h -#usr/include/X11/extensions/Xrender.h -#usr/include/X11/extensions/Xv.h -#usr/include/X11/extensions/XvMC.h -#usr/include/X11/extensions/XvMClib.h -#usr/include/X11/extensions/XvMCproto.h -#usr/include/X11/extensions/Xvlib.h -#usr/include/X11/extensions/Xvproto.h -#usr/include/X11/extensions/applewm.h -#usr/include/X11/extensions/applewmstr.h -#usr/include/X11/extensions/bigreqstr.h -#usr/include/X11/extensions/composite.h -#usr/include/X11/extensions/compositeproto.h -#usr/include/X11/extensions/damageproto.h -#usr/include/X11/extensions/damagewire.h -#usr/include/X11/extensions/dmxext.h -#usr/include/X11/extensions/dmxproto.h -#usr/include/X11/extensions/dpms.h -#usr/include/X11/extensions/dpmsstr.h -#usr/include/X11/extensions/extutil.h -#usr/include/X11/extensions/fontcache.h -#usr/include/X11/extensions/fontcacheP.h -#usr/include/X11/extensions/fontcachstr.h -#usr/include/X11/extensions/ge.h -#usr/include/X11/extensions/geproto.h -#usr/include/X11/extensions/lbxbuf.h -#usr/include/X11/extensions/lbxbufstr.h -#usr/include/X11/extensions/lbxdeltastr.h -#usr/include/X11/extensions/lbximage.h -#usr/include/X11/extensions/lbxopts.h -#usr/include/X11/extensions/lbxstr.h -#usr/include/X11/extensions/lbxzlib.h -#usr/include/X11/extensions/mitmiscstr.h -#usr/include/X11/extensions/multibuf.h -#usr/include/X11/extensions/multibufst.h -#usr/include/X11/extensions/panoramiXext.h -#usr/include/X11/extensions/panoramiXproto.h -#usr/include/X11/extensions/randr.h -#usr/include/X11/extensions/randrproto.h -#usr/include/X11/extensions/record.h -#usr/include/X11/extensions/recordstr.h -#usr/include/X11/extensions/render.h -#usr/include/X11/extensions/renderproto.h -#usr/include/X11/extensions/saver.h -#usr/include/X11/extensions/saverproto.h -#usr/include/X11/extensions/scrnsaver.h -#usr/include/X11/extensions/security.h -#usr/include/X11/extensions/securstr.h -#usr/include/X11/extensions/shape.h -#usr/include/X11/extensions/shapestr.h -#usr/include/X11/extensions/shmstr.h -#usr/include/X11/extensions/sync.h -#usr/include/X11/extensions/syncstr.h -#usr/include/X11/extensions/vldXvMC.h -#usr/include/X11/extensions/windowswm.h -#usr/include/X11/extensions/windowswmstr.h -#usr/include/X11/extensions/xcmiscstr.h -#usr/include/X11/extensions/xf86bigfont.h -#usr/include/X11/extensions/xf86bigfstr.h -#usr/include/X11/extensions/xf86dga.h -#usr/include/X11/extensions/xf86dga1.h -#usr/include/X11/extensions/xf86dga1str.h -#usr/include/X11/extensions/xf86dgastr.h -#usr/include/X11/extensions/xf86misc.h -#usr/include/X11/extensions/xf86mscstr.h -#usr/include/X11/extensions/xf86vmode.h -#usr/include/X11/extensions/xf86vmstr.h -#usr/include/X11/extensions/xfixesproto.h -#usr/include/X11/extensions/xfixeswire.h -#usr/include/X11/extensions/xtestext1.h -#usr/include/X11/extensions/xteststr.h -#usr/include/X11/extensions/xtrapbits.h -#usr/include/X11/extensions/xtrapddmi.h -#usr/include/X11/extensions/xtrapdi.h -#usr/include/X11/extensions/xtrapemacros.h -#usr/include/X11/extensions/xtraplib.h -#usr/include/X11/extensions/xtraplibp.h -#usr/include/X11/extensions/xtrapproto.h -#usr/include/X11/fonts -#usr/include/X11/fonts/FS.h -#usr/include/X11/fonts/FSlib.h -#usr/include/X11/fonts/FSproto.h -#usr/include/X11/fonts/bdfint.h -#usr/include/X11/fonts/bitmap.h -#usr/include/X11/fonts/bufio.h -#usr/include/X11/fonts/fntfil.h -#usr/include/X11/fonts/fntfilio.h -#usr/include/X11/fonts/fntfilst.h -#usr/include/X11/fonts/font.h -#usr/include/X11/fonts/fontconf.h -#usr/include/X11/fonts/fontenc.h -#usr/include/X11/fonts/fontencc.h -#usr/include/X11/fonts/fontmisc.h -#usr/include/X11/fonts/fontmod.h -#usr/include/X11/fonts/fontproto.h -#usr/include/X11/fonts/fontshow.h -#usr/include/X11/fonts/fontstruct.h -#usr/include/X11/fonts/fontutil.h -#usr/include/X11/fonts/fontxlfd.h -#usr/include/X11/fonts/fsmasks.h -#usr/include/X11/fonts/ft.h -#usr/include/X11/fonts/ftfuncs.h -#usr/include/X11/fonts/pcf.h -#usr/include/X11/keysym.h -#usr/include/X11/keysymdef.h -#usr/include/X11/xpm.h -#usr/include/pciaccess.h -#usr/include/xcb -#usr/include/xcb/bigreq.h -#usr/include/xcb/composite.h -#usr/include/xcb/damage.h -#usr/include/xcb/dpms.h -#usr/include/xcb/glx.h -#usr/include/xcb/randr.h -#usr/include/xcb/record.h -#usr/include/xcb/render.h -#usr/include/xcb/res.h -#usr/include/xcb/screensaver.h -#usr/include/xcb/shape.h -#usr/include/xcb/shm.h -#usr/include/xcb/sync.h -#usr/include/xcb/xc_misc.h -#usr/include/xcb/xcb.h -#usr/include/xcb/xcb_atom.h -#usr/include/xcb/xcb_aux.h -#usr/include/xcb/xcb_bitops.h -#usr/include/xcb/xcb_event.h -#usr/include/xcb/xcb_icccm.h -#usr/include/xcb/xcb_image.h -#usr/include/xcb/xcb_keysyms.h -#usr/include/xcb/xcb_pixel.h -#usr/include/xcb/xcb_property.h -#usr/include/xcb/xcb_renderutil.h -#usr/include/xcb/xcb_reply.h -#usr/include/xcb/xcb_wm.h -#usr/include/xcb/xcbext.h -#usr/include/xcb/xcbxlib.h -#usr/include/xcb/xevie.h -#usr/include/xcb/xf86dri.h -#usr/include/xcb/xfixes.h -#usr/include/xcb/xinerama.h -#usr/include/xcb/xprint.h -#usr/include/xcb/xproto.h -#usr/include/xcb/xtest.h -#usr/include/xcb/xv.h -#usr/include/xcb/xvmc.h -usr/lib/X11 -usr/lib/X11/Xcms.txt -usr/lib/X11/config -usr/lib/X11/config/Amoeba.cf -usr/lib/X11/config/DGUX.cf -usr/lib/X11/config/DragonFly.cf -usr/lib/X11/config/FreeBSD.cf -usr/lib/X11/config/Imake.cf -usr/lib/X11/config/Imake.rules -usr/lib/X11/config/Imake.tmpl -usr/lib/X11/config/Library.tmpl -usr/lib/X11/config/Mips.cf -usr/lib/X11/config/Motif.rules -usr/lib/X11/config/Motif.tmpl -usr/lib/X11/config/NetBSD.cf -usr/lib/X11/config/Oki.cf -usr/lib/X11/config/OpenBSD.cf -usr/lib/X11/config/OpenBSDLib.rules -usr/lib/X11/config/OpenBSDLib.tmpl -usr/lib/X11/config/QNX4.cf -usr/lib/X11/config/QNX4.rules -usr/lib/X11/config/Server.tmpl -usr/lib/X11/config/ServerLib.tmpl -usr/lib/X11/config/Threads.tmpl -usr/lib/X11/config/Win32.cf -usr/lib/X11/config/Win32.rules -usr/lib/X11/config/WinLib.tmpl -usr/lib/X11/config/X11.rules -usr/lib/X11/config/X11.tmpl -usr/lib/X11/config/apollo.cf -usr/lib/X11/config/bsd.cf -usr/lib/X11/config/bsdLib.rules -usr/lib/X11/config/bsdLib.tmpl -usr/lib/X11/config/bsdi.cf -usr/lib/X11/config/bsdiLib.rules -usr/lib/X11/config/bsdiLib.tmpl -usr/lib/X11/config/cde.rules -usr/lib/X11/config/cde.tmpl -usr/lib/X11/config/convex.cf -usr/lib/X11/config/cray.cf -usr/lib/X11/config/cross.def -usr/lib/X11/config/cross.rules -usr/lib/X11/config/cygwin.cf -usr/lib/X11/config/cygwin.rules -usr/lib/X11/config/cygwin.tmpl -usr/lib/X11/config/darwin.cf -usr/lib/X11/config/darwinLib.rules -usr/lib/X11/config/darwinLib.tmpl -usr/lib/X11/config/date.def -usr/lib/X11/config/dmx.cf -usr/lib/X11/config/fujitsu.cf -usr/lib/X11/config/generic.cf -usr/lib/X11/config/gnu.cf -usr/lib/X11/config/gnuLib.rules -usr/lib/X11/config/gnuLib.tmpl -usr/lib/X11/config/host.def -usr/lib/X11/config/hp.cf -usr/lib/X11/config/hpLib.rules -usr/lib/X11/config/hpLib.tmpl -usr/lib/X11/config/ibm.cf -usr/lib/X11/config/ibmLib.rules -usr/lib/X11/config/ibmLib.tmpl -usr/lib/X11/config/isc.cf -usr/lib/X11/config/linux.cf -usr/lib/X11/config/lnxLib.rules -usr/lib/X11/config/lnxLib.tmpl -usr/lib/X11/config/lnxdoc.rules -usr/lib/X11/config/lnxdoc.tmpl -usr/lib/X11/config/luna.cf -usr/lib/X11/config/lynx.cf -usr/lib/X11/config/macII.cf -usr/lib/X11/config/mach.cf -usr/lib/X11/config/mingw.cf -usr/lib/X11/config/mingw.rules -usr/lib/X11/config/mingw.tmpl -usr/lib/X11/config/minix.cf -usr/lib/X11/config/moto.cf -usr/lib/X11/config/ncr.cf -usr/lib/X11/config/nec.cf -usr/lib/X11/config/necLib.rules -usr/lib/X11/config/necLib.tmpl -usr/lib/X11/config/noop.rules -usr/lib/X11/config/nto.cf -usr/lib/X11/config/nto.rules -usr/lib/X11/config/oldlib.rules -usr/lib/X11/config/os2.cf -usr/lib/X11/config/os2.rules -usr/lib/X11/config/os2Lib.rules -usr/lib/X11/config/os2Lib.tmpl -usr/lib/X11/config/osf1.cf -usr/lib/X11/config/osfLib.rules -usr/lib/X11/config/osfLib.tmpl -usr/lib/X11/config/pegasus.cf -usr/lib/X11/config/sco.cf -usr/lib/X11/config/sco5.cf -usr/lib/X11/config/scoLib.rules -usr/lib/X11/config/sequent.cf -usr/lib/X11/config/sequentLib.rules -usr/lib/X11/config/sgi.cf -usr/lib/X11/config/sgiLib.rules -usr/lib/X11/config/sgiLib.tmpl -usr/lib/X11/config/site.def -usr/lib/X11/config/sony.cf -usr/lib/X11/config/sun.cf -usr/lib/X11/config/sunLib.rules -usr/lib/X11/config/sunLib.tmpl -usr/lib/X11/config/sv3Lib.rules -usr/lib/X11/config/sv3Lib.tmpl -usr/lib/X11/config/sv4Lib.rules -usr/lib/X11/config/sv4Lib.tmpl -usr/lib/X11/config/svr3.cf -usr/lib/X11/config/svr4.cf -usr/lib/X11/config/ultrix.cf -usr/lib/X11/config/usl.cf -usr/lib/X11/config/version.def -usr/lib/X11/config/x386.cf -usr/lib/X11/config/xf86.rules -usr/lib/X11/config/xf86.tmpl -usr/lib/X11/config/xf86site.def -usr/lib/X11/config/xfree86.cf -usr/lib/X11/config/xorg.cf -usr/lib/X11/config/xorg.tmpl -usr/lib/X11/config/xorgsite.def -usr/lib/X11/config/xorgversion.def -#usr/lib/bcc -#usr/lib/bcc/as86_encap -#usr/lib/bcc/bcc-cc1 -#usr/lib/bcc/bcc-cpp -#usr/lib/bcc/copt -#usr/lib/bcc/crt0.o -#usr/lib/bcc/i386 -#usr/lib/bcc/i386/crt0.o -#usr/lib/bcc/i386/libc.a -#usr/lib/bcc/i386/rules.386 -#usr/lib/bcc/i386/rules.end -#usr/lib/bcc/i386/rules.start -#usr/lib/bcc/include -#usr/lib/bcc/include/a.out.h -#usr/lib/bcc/include/ar.h -#usr/lib/bcc/include/arch -#usr/lib/bcc/include/arch/errno.h -#usr/lib/bcc/include/arch/ioctl.h -#usr/lib/bcc/include/arch/stat.h -#usr/lib/bcc/include/arch/types.h -#usr/lib/bcc/include/asm -#usr/lib/bcc/include/asm/limits.h -#usr/lib/bcc/include/asm/types.h -#usr/lib/bcc/include/assert.h -#usr/lib/bcc/include/bios.h -#usr/lib/bcc/include/bsd -#usr/lib/bcc/include/bsd/bsd.h -#usr/lib/bcc/include/bsd/errno.h -#usr/lib/bcc/include/bsd/sgtty.h -#usr/lib/bcc/include/bsd/signal.h -#usr/lib/bcc/include/bsd/stdlib.h -#usr/lib/bcc/include/bsd/sys -#usr/lib/bcc/include/bsd/sys/ttychars.h -#usr/lib/bcc/include/bsd/tzfile.h -#usr/lib/bcc/include/bsd/unistd.h -#usr/lib/bcc/include/conio.h -#usr/lib/bcc/include/ctype.h -#usr/lib/bcc/include/dirent.h -#usr/lib/bcc/include/dos.h -#usr/lib/bcc/include/errno.h -#usr/lib/bcc/include/fcntl.h -#usr/lib/bcc/include/features.h -#usr/lib/bcc/include/generic -#usr/lib/bcc/include/generic/errno.h -#usr/lib/bcc/include/generic/fcntl.h -#usr/lib/bcc/include/generic/types.h -#usr/lib/bcc/include/getopt.h -#usr/lib/bcc/include/grp.h -#usr/lib/bcc/include/limits.h -#usr/lib/bcc/include/linux -#usr/lib/bcc/include/linux/errno.h -#usr/lib/bcc/include/linux/fcntl.h -#usr/lib/bcc/include/linux/ioctl.h -#usr/lib/bcc/include/linux/mman.h -#usr/lib/bcc/include/linux/resource.h -#usr/lib/bcc/include/linux/stat.h -#usr/lib/bcc/include/linux/termios.h -#usr/lib/bcc/include/linux/types.h -#usr/lib/bcc/include/linux/utsname.h -#usr/lib/bcc/include/linux/vm86.h -#usr/lib/bcc/include/linuxmt -#usr/lib/bcc/include/linuxmt/errno.h -#usr/lib/bcc/include/linuxmt/fcntl.h -#usr/lib/bcc/include/linuxmt/ioctl.h -#usr/lib/bcc/include/linuxmt/resource.h -#usr/lib/bcc/include/linuxmt/stat.h -#usr/lib/bcc/include/linuxmt/termios.h -#usr/lib/bcc/include/linuxmt/types.h -#usr/lib/bcc/include/malloc.h -#usr/lib/bcc/include/math.h -#usr/lib/bcc/include/memory.h -#usr/lib/bcc/include/msdos -#usr/lib/bcc/include/msdos/errno.h -#usr/lib/bcc/include/msdos/fcntl.h -#usr/lib/bcc/include/msdos/types.h -#usr/lib/bcc/include/paths.h -#usr/lib/bcc/include/pwd.h -#usr/lib/bcc/include/regexp.h -#usr/lib/bcc/include/regmagic.h -#usr/lib/bcc/include/search.h -#usr/lib/bcc/include/setjmp.h -#usr/lib/bcc/include/signal.h -#usr/lib/bcc/include/stdarg.h -#usr/lib/bcc/include/stddef.h -#usr/lib/bcc/include/stdio.h -#usr/lib/bcc/include/stdlib.h -#usr/lib/bcc/include/string.h -#usr/lib/bcc/include/strings.h -#usr/lib/bcc/include/sys -#usr/lib/bcc/include/sys/cdefs.h -#usr/lib/bcc/include/sys/errno.h -#usr/lib/bcc/include/sys/fcntl.h -#usr/lib/bcc/include/sys/file.h -#usr/lib/bcc/include/sys/ioctl.h -#usr/lib/bcc/include/sys/mman.h -#usr/lib/bcc/include/sys/param.h -#usr/lib/bcc/include/sys/resource.h -#usr/lib/bcc/include/sys/signal.h -#usr/lib/bcc/include/sys/socket.h -#usr/lib/bcc/include/sys/stat.h -#usr/lib/bcc/include/sys/time.h -#usr/lib/bcc/include/sys/times.h -#usr/lib/bcc/include/sys/types.h -#usr/lib/bcc/include/sys/utsname.h -#usr/lib/bcc/include/sys/vm86.h -#usr/lib/bcc/include/sys/wait.h -#usr/lib/bcc/include/termcap.h -#usr/lib/bcc/include/termio.h -#usr/lib/bcc/include/termios.h -#usr/lib/bcc/include/time.h -#usr/lib/bcc/include/unistd.h -#usr/lib/bcc/include/utime.h -#usr/lib/bcc/include/utmp.h -#usr/lib/bcc/include/varargs.h -#usr/lib/bcc/libbsd.a -#usr/lib/bcc/libc.a -#usr/lib/bcc/libc_f.a -#usr/lib/bcc/libc_s.a -#usr/lib/bcc/libdos.a -#usr/lib/bcc/rules.186 -#usr/lib/bcc/rules.386 -#usr/lib/bcc/rules.86 -#usr/lib/bcc/rules.end -#usr/lib/bcc/rules.i -#usr/lib/bcc/rules.net -#usr/lib/bcc/rules.start -#usr/lib/bcc/unproto -#usr/lib/libAppleWM.a -#usr/lib/libAppleWM.la -usr/lib/libAppleWM.so -usr/lib/libAppleWM.so.7 -usr/lib/libAppleWM.so.7.0.0 -#usr/lib/libFS.a -#usr/lib/libFS.la -usr/lib/libFS.so -usr/lib/libFS.so.6 -usr/lib/libFS.so.6.0.0 -#usr/lib/libICE.a -#usr/lib/libICE.la -usr/lib/libICE.so -usr/lib/libICE.so.6 -usr/lib/libICE.so.6.3.0 -#usr/lib/libSM.a -#usr/lib/libSM.la -usr/lib/libSM.so -usr/lib/libSM.so.6 -usr/lib/libSM.so.6.0.0 -#usr/lib/libWindowsWM.a -#usr/lib/libWindowsWM.la -usr/lib/libWindowsWM.so -usr/lib/libWindowsWM.so.7 -usr/lib/libWindowsWM.so.7.0.0 -#usr/lib/libX11-xcb.a -#usr/lib/libX11-xcb.la -usr/lib/libX11-xcb.so -usr/lib/libX11-xcb.so.1 -usr/lib/libX11-xcb.so.1.0.0 -#usr/lib/libX11.a -#usr/lib/libX11.la -usr/lib/libX11.so -usr/lib/libX11.so.6 -usr/lib/libX11.so.6.2.0 -#usr/lib/libXRes.a -#usr/lib/libXRes.la -usr/lib/libXRes.so -usr/lib/libXRes.so.1 -usr/lib/libXRes.so.1.0.0 -#usr/lib/libXau.a -#usr/lib/libXau.la -usr/lib/libXau.so -usr/lib/libXau.so.6 -usr/lib/libXau.so.6.0.0 -usr/lib/libXaw.so -usr/lib/libXaw.so.6 -usr/lib/libXaw.so.7 -#usr/lib/libXaw6.a -#usr/lib/libXaw6.la -usr/lib/libXaw6.so -usr/lib/libXaw6.so.6 -usr/lib/libXaw6.so.6.0.1 -#usr/lib/libXaw7.a -#usr/lib/libXaw7.la -usr/lib/libXaw7.so -usr/lib/libXaw7.so.7 -usr/lib/libXaw7.so.7.0.0 -#usr/lib/libXcomposite.a -#usr/lib/libXcomposite.la -usr/lib/libXcomposite.so -usr/lib/libXcomposite.so.1 -usr/lib/libXcomposite.so.1.0.0 -#usr/lib/libXcursor.a -#usr/lib/libXcursor.la -usr/lib/libXcursor.so -usr/lib/libXcursor.so.1 -usr/lib/libXcursor.so.1.0.2 -#usr/lib/libXdamage.a -#usr/lib/libXdamage.la -usr/lib/libXdamage.so -usr/lib/libXdamage.so.1 -usr/lib/libXdamage.so.1.1.0 -#usr/lib/libXdmcp.a -#usr/lib/libXdmcp.la -usr/lib/libXdmcp.so -usr/lib/libXdmcp.so.6 -usr/lib/libXdmcp.so.6.0.0 -#usr/lib/libXext.a -#usr/lib/libXext.la -usr/lib/libXext.so -usr/lib/libXext.so.6 -usr/lib/libXext.so.6.4.0 -#usr/lib/libXfixes.a -#usr/lib/libXfixes.la -usr/lib/libXfixes.so -usr/lib/libXfixes.so.3 -usr/lib/libXfixes.so.3.1.0 -#usr/lib/libXfont.a -#usr/lib/libXfont.la -usr/lib/libXfont.so -usr/lib/libXfont.so.1 -usr/lib/libXfont.so.1.4.1 -#usr/lib/libXfontcache.a -#usr/lib/libXfontcache.la -usr/lib/libXfontcache.so -usr/lib/libXfontcache.so.1 -usr/lib/libXfontcache.so.1.0.0 -#usr/lib/libXft.a -#usr/lib/libXft.la -usr/lib/libXft.so -usr/lib/libXft.so.2 -usr/lib/libXft.so.2.1.13 -#usr/lib/libXi.a -#usr/lib/libXi.la -usr/lib/libXi.so -usr/lib/libXi.so.6 -usr/lib/libXi.so.6.0.0 -#usr/lib/libXinerama.a -#usr/lib/libXinerama.la -usr/lib/libXinerama.so -usr/lib/libXinerama.so.1 -usr/lib/libXinerama.so.1.0.0 -#usr/lib/libXmu.a -#usr/lib/libXmu.la -usr/lib/libXmu.so -usr/lib/libXmu.so.6 -usr/lib/libXmu.so.6.2.0 -#usr/lib/libXmuu.a -#usr/lib/libXmuu.la -usr/lib/libXmuu.so -usr/lib/libXmuu.so.1 -usr/lib/libXmuu.so.1.0.0 -#usr/lib/libXpm.a -#usr/lib/libXpm.la -usr/lib/libXpm.so -usr/lib/libXpm.so.4 -usr/lib/libXpm.so.4.11.0 -#usr/lib/libXrandr.a -#usr/lib/libXrandr.la -usr/lib/libXrandr.so -usr/lib/libXrandr.so.2 -usr/lib/libXrandr.so.2.1.0 -#usr/lib/libXrender.a -#usr/lib/libXrender.la -usr/lib/libXrender.so -usr/lib/libXrender.so.1 -usr/lib/libXrender.so.1.3.0 -#usr/lib/libXss.a -#usr/lib/libXss.la -usr/lib/libXss.so -usr/lib/libXss.so.1 -usr/lib/libXss.so.1.0.0 -#usr/lib/libXt.a -#usr/lib/libXt.la -usr/lib/libXt.so -usr/lib/libXt.so.6 -usr/lib/libXt.so.6.0.0 -#usr/lib/libXtst.a -#usr/lib/libXtst.la -usr/lib/libXtst.so -usr/lib/libXtst.so.6 -usr/lib/libXtst.so.6.1.0 -#usr/lib/libXv.a -#usr/lib/libXv.la -usr/lib/libXv.so -usr/lib/libXv.so.1 -usr/lib/libXv.so.1.0.0 -#usr/lib/libXvMC.a -#usr/lib/libXvMC.la -usr/lib/libXvMC.so -usr/lib/libXvMC.so.1 -usr/lib/libXvMC.so.1.0.0 -#usr/lib/libXvMCW.a -#usr/lib/libXvMCW.la -usr/lib/libXvMCW.so -usr/lib/libXvMCW.so.1 -usr/lib/libXvMCW.so.1.0.0 -#usr/lib/libXxf86dga.a -#usr/lib/libXxf86dga.la -usr/lib/libXxf86dga.so -usr/lib/libXxf86dga.so.1 -usr/lib/libXxf86dga.so.1.0.0 -#usr/lib/libXxf86misc.a -#usr/lib/libXxf86misc.la -usr/lib/libXxf86misc.so -usr/lib/libXxf86misc.so.1 -usr/lib/libXxf86misc.so.1.1.0 -#usr/lib/libXxf86vm.a -#usr/lib/libXxf86vm.la -usr/lib/libXxf86vm.so -usr/lib/libXxf86vm.so.1 -usr/lib/libXxf86vm.so.1.0.0 -#usr/lib/libdmx.a -#usr/lib/libdmx.la -usr/lib/libdmx.so -usr/lib/libdmx.so.1 -usr/lib/libdmx.so.1.0.0 -#usr/lib/libfontenc.a -#usr/lib/libfontenc.la -usr/lib/libfontenc.so -usr/lib/libfontenc.so.1 -usr/lib/libfontenc.so.1.0.0 -#usr/lib/libpciaccess.a -#usr/lib/libpciaccess.la -usr/lib/libpciaccess.so -usr/lib/libpciaccess.so.0 -usr/lib/libpciaccess.so.0.10.2 -#usr/lib/libxcb-atom.a -#usr/lib/libxcb-atom.la -usr/lib/libxcb-atom.so -usr/lib/libxcb-atom.so.1 -usr/lib/libxcb-atom.so.1.0.0 -#usr/lib/libxcb-aux.a -#usr/lib/libxcb-aux.la -usr/lib/libxcb-aux.so -usr/lib/libxcb-aux.so.0 -usr/lib/libxcb-aux.so.0.0.0 -#usr/lib/libxcb-composite.a -#usr/lib/libxcb-composite.la -usr/lib/libxcb-composite.so -usr/lib/libxcb-composite.so.0 -usr/lib/libxcb-composite.so.0.0.0 -#usr/lib/libxcb-damage.a -#usr/lib/libxcb-damage.la -usr/lib/libxcb-damage.so -usr/lib/libxcb-damage.so.0 -usr/lib/libxcb-damage.so.0.0.0 -#usr/lib/libxcb-dpms.a -#usr/lib/libxcb-dpms.la -usr/lib/libxcb-dpms.so -usr/lib/libxcb-dpms.so.0 -usr/lib/libxcb-dpms.so.0.0.0 -#usr/lib/libxcb-event.a -#usr/lib/libxcb-event.la -usr/lib/libxcb-event.so -usr/lib/libxcb-event.so.1 -usr/lib/libxcb-event.so.1.0.0 -#usr/lib/libxcb-glx.a -#usr/lib/libxcb-glx.la -usr/lib/libxcb-glx.so -usr/lib/libxcb-glx.so.0 -usr/lib/libxcb-glx.so.0.0.0 -#usr/lib/libxcb-icccm.a -#usr/lib/libxcb-icccm.la -usr/lib/libxcb-icccm.so -usr/lib/libxcb-icccm.so.1 -usr/lib/libxcb-icccm.so.1.0.0 -#usr/lib/libxcb-image.a -#usr/lib/libxcb-image.la -usr/lib/libxcb-image.so -usr/lib/libxcb-image.so.0 -usr/lib/libxcb-image.so.0.0.0 -#usr/lib/libxcb-keysyms.a -#usr/lib/libxcb-keysyms.la -usr/lib/libxcb-keysyms.so -usr/lib/libxcb-keysyms.so.0 -usr/lib/libxcb-keysyms.so.0.0.0 -#usr/lib/libxcb-property.a -#usr/lib/libxcb-property.la -usr/lib/libxcb-property.so -usr/lib/libxcb-property.so.1 -usr/lib/libxcb-property.so.1.0.0 -#usr/lib/libxcb-randr.a -#usr/lib/libxcb-randr.la -usr/lib/libxcb-randr.so -usr/lib/libxcb-randr.so.0 -usr/lib/libxcb-randr.so.0.0.0 -#usr/lib/libxcb-record.a -#usr/lib/libxcb-record.la -usr/lib/libxcb-record.so -usr/lib/libxcb-record.so.0 -usr/lib/libxcb-record.so.0.0.0 -#usr/lib/libxcb-render-util.a -#usr/lib/libxcb-render-util.la -usr/lib/libxcb-render-util.so -usr/lib/libxcb-render-util.so.0 -usr/lib/libxcb-render-util.so.0.0.0 -#usr/lib/libxcb-render.a -#usr/lib/libxcb-render.la -usr/lib/libxcb-render.so -usr/lib/libxcb-render.so.0 -usr/lib/libxcb-render.so.0.0.0 -#usr/lib/libxcb-reply.a -#usr/lib/libxcb-reply.la -usr/lib/libxcb-reply.so -usr/lib/libxcb-reply.so.1 -usr/lib/libxcb-reply.so.1.0.0 -#usr/lib/libxcb-res.a -#usr/lib/libxcb-res.la -usr/lib/libxcb-res.so -usr/lib/libxcb-res.so.0 -usr/lib/libxcb-res.so.0.0.0 -#usr/lib/libxcb-screensaver.a -#usr/lib/libxcb-screensaver.la -usr/lib/libxcb-screensaver.so -usr/lib/libxcb-screensaver.so.0 -usr/lib/libxcb-screensaver.so.0.0.0 -#usr/lib/libxcb-shape.a -#usr/lib/libxcb-shape.la -usr/lib/libxcb-shape.so -usr/lib/libxcb-shape.so.0 -usr/lib/libxcb-shape.so.0.0.0 -#usr/lib/libxcb-shm.a -#usr/lib/libxcb-shm.la -usr/lib/libxcb-shm.so -usr/lib/libxcb-shm.so.0 -usr/lib/libxcb-shm.so.0.0.0 -#usr/lib/libxcb-sync.a -#usr/lib/libxcb-sync.la -usr/lib/libxcb-sync.so -usr/lib/libxcb-sync.so.0 -usr/lib/libxcb-sync.so.0.0.0 -#usr/lib/libxcb-wm.a -#usr/lib/libxcb-wm.la -usr/lib/libxcb-wm.so -usr/lib/libxcb-wm.so.0 -usr/lib/libxcb-wm.so.0.0.0 -#usr/lib/libxcb-xevie.a -#usr/lib/libxcb-xevie.la -usr/lib/libxcb-xevie.so -usr/lib/libxcb-xevie.so.0 -usr/lib/libxcb-xevie.so.0.0.0 -#usr/lib/libxcb-xf86dri.a -#usr/lib/libxcb-xf86dri.la -usr/lib/libxcb-xf86dri.so -usr/lib/libxcb-xf86dri.so.0 -usr/lib/libxcb-xf86dri.so.0.0.0 -#usr/lib/libxcb-xfixes.a -#usr/lib/libxcb-xfixes.la -usr/lib/libxcb-xfixes.so -usr/lib/libxcb-xfixes.so.0 -usr/lib/libxcb-xfixes.so.0.0.0 -#usr/lib/libxcb-xinerama.a -#usr/lib/libxcb-xinerama.la -usr/lib/libxcb-xinerama.so -usr/lib/libxcb-xinerama.so.0 -usr/lib/libxcb-xinerama.so.0.0.0 -#usr/lib/libxcb-xlib.a -#usr/lib/libxcb-xlib.la -usr/lib/libxcb-xlib.so -usr/lib/libxcb-xlib.so.0 -usr/lib/libxcb-xlib.so.0.0.0 -#usr/lib/libxcb-xprint.a -#usr/lib/libxcb-xprint.la -usr/lib/libxcb-xprint.so -usr/lib/libxcb-xprint.so.0 -usr/lib/libxcb-xprint.so.0.0.0 -#usr/lib/libxcb-xtest.a -#usr/lib/libxcb-xtest.la -usr/lib/libxcb-xtest.so -usr/lib/libxcb-xtest.so.0 -usr/lib/libxcb-xtest.so.0.0.0 -#usr/lib/libxcb-xv.a -#usr/lib/libxcb-xv.la -usr/lib/libxcb-xv.so -usr/lib/libxcb-xv.so.0 -usr/lib/libxcb-xv.so.0.0.0 -#usr/lib/libxcb-xvmc.a -#usr/lib/libxcb-xvmc.la -usr/lib/libxcb-xvmc.so -usr/lib/libxcb-xvmc.so.0 -usr/lib/libxcb-xvmc.so.0.0.0 -#usr/lib/libxcb.a -#usr/lib/libxcb.la -usr/lib/libxcb.so -usr/lib/libxcb.so.1 -usr/lib/libxcb.so.1.0.0 -#usr/lib/libxkbfile.a -#usr/lib/libxkbfile.la -usr/lib/libxkbfile.so -usr/lib/libxkbfile.so.1 -usr/lib/libxkbfile.so.1.0.2 -#usr/lib/pkgconfig/applewm.pc -#usr/lib/pkgconfig/applewmproto.pc -#usr/lib/pkgconfig/bigreqsproto.pc -#usr/lib/pkgconfig/compositeproto.pc -#usr/lib/pkgconfig/damageproto.pc -#usr/lib/pkgconfig/dmx.pc -#usr/lib/pkgconfig/dmxproto.pc -#usr/lib/pkgconfig/evieproto.pc -#usr/lib/pkgconfig/fixesproto.pc -#usr/lib/pkgconfig/fontcacheproto.pc -#usr/lib/pkgconfig/fontenc.pc -#usr/lib/pkgconfig/fontsproto.pc -#usr/lib/pkgconfig/glproto.pc -#usr/lib/pkgconfig/ice.pc -#usr/lib/pkgconfig/inputproto.pc -#usr/lib/pkgconfig/kbproto.pc -#usr/lib/pkgconfig/libfs.pc -#usr/lib/pkgconfig/pciaccess.pc -#usr/lib/pkgconfig/pthread-stubs.pc -#usr/lib/pkgconfig/randrproto.pc -#usr/lib/pkgconfig/recordproto.pc -#usr/lib/pkgconfig/renderproto.pc -#usr/lib/pkgconfig/resourceproto.pc -#usr/lib/pkgconfig/scrnsaverproto.pc -#usr/lib/pkgconfig/sm.pc -#usr/lib/pkgconfig/trapproto.pc -#usr/lib/pkgconfig/videoproto.pc -#usr/lib/pkgconfig/windowswm.pc -#usr/lib/pkgconfig/windowswmproto.pc -#usr/lib/pkgconfig/x11-xcb.pc -#usr/lib/pkgconfig/x11.pc -#usr/lib/pkgconfig/xau.pc -#usr/lib/pkgconfig/xaw6.pc -#usr/lib/pkgconfig/xaw7.pc -#usr/lib/pkgconfig/xcb-atom.pc -#usr/lib/pkgconfig/xcb-aux.pc -#usr/lib/pkgconfig/xcb-composite.pc -#usr/lib/pkgconfig/xcb-damage.pc -#usr/lib/pkgconfig/xcb-dpms.pc -#usr/lib/pkgconfig/xcb-event.pc -#usr/lib/pkgconfig/xcb-glx.pc -#usr/lib/pkgconfig/xcb-icccm.pc -#usr/lib/pkgconfig/xcb-image.pc -#usr/lib/pkgconfig/xcb-keysyms.pc -#usr/lib/pkgconfig/xcb-property.pc -#usr/lib/pkgconfig/xcb-proto.pc -#usr/lib/pkgconfig/xcb-randr.pc -#usr/lib/pkgconfig/xcb-record.pc -#usr/lib/pkgconfig/xcb-render.pc -#usr/lib/pkgconfig/xcb-renderutil.pc -#usr/lib/pkgconfig/xcb-reply.pc -#usr/lib/pkgconfig/xcb-res.pc -#usr/lib/pkgconfig/xcb-screensaver.pc -#usr/lib/pkgconfig/xcb-shape.pc -#usr/lib/pkgconfig/xcb-shm.pc -#usr/lib/pkgconfig/xcb-sync.pc -#usr/lib/pkgconfig/xcb-wm.pc -#usr/lib/pkgconfig/xcb-xevie.pc -#usr/lib/pkgconfig/xcb-xf86dri.pc -#usr/lib/pkgconfig/xcb-xfixes.pc -#usr/lib/pkgconfig/xcb-xinerama.pc -#usr/lib/pkgconfig/xcb-xlib.pc -#usr/lib/pkgconfig/xcb-xprint.pc -#usr/lib/pkgconfig/xcb-xtest.pc -#usr/lib/pkgconfig/xcb-xv.pc -#usr/lib/pkgconfig/xcb-xvmc.pc -#usr/lib/pkgconfig/xcb.pc -#usr/lib/pkgconfig/xcmiscproto.pc -#usr/lib/pkgconfig/xcomposite.pc -#usr/lib/pkgconfig/xcursor.pc -#usr/lib/pkgconfig/xdamage.pc -#usr/lib/pkgconfig/xdmcp.pc -#usr/lib/pkgconfig/xext.pc -#usr/lib/pkgconfig/xextproto.pc -#usr/lib/pkgconfig/xf86bigfontproto.pc -#usr/lib/pkgconfig/xf86dgaproto.pc -#usr/lib/pkgconfig/xf86driproto.pc -#usr/lib/pkgconfig/xf86miscproto.pc -#usr/lib/pkgconfig/xf86vidmodeproto.pc -#usr/lib/pkgconfig/xfixes.pc -#usr/lib/pkgconfig/xfont.pc -#usr/lib/pkgconfig/xfontcache.pc -#usr/lib/pkgconfig/xft.pc -#usr/lib/pkgconfig/xi.pc -#usr/lib/pkgconfig/xinerama.pc -#usr/lib/pkgconfig/xineramaproto.pc -#usr/lib/pkgconfig/xkbfile.pc -#usr/lib/pkgconfig/xmu.pc -#usr/lib/pkgconfig/xmuu.pc -#usr/lib/pkgconfig/xpm.pc -#usr/lib/pkgconfig/xproto.pc -#usr/lib/pkgconfig/xrandr.pc -#usr/lib/pkgconfig/xrender.pc -#usr/lib/pkgconfig/xres.pc -#usr/lib/pkgconfig/xscrnsaver.pc -#usr/lib/pkgconfig/xt.pc -#usr/lib/pkgconfig/xtrans.pc -#usr/lib/pkgconfig/xtst.pc -#usr/lib/pkgconfig/xv.pc -#usr/lib/pkgconfig/xvmc.pc -#usr/lib/pkgconfig/xxf86dga.pc -#usr/lib/pkgconfig/xxf86misc.pc -#usr/lib/pkgconfig/xxf86vm.pc -#usr/local/bin/as86 -#usr/local/bin/ld86 -#usr/local/bin/nm86 -#usr/local/bin/objdump86 -#usr/local/bin/size86 -#usr/local/man/man1/as86.1 -#usr/local/man/man1/ld86.1 -#usr/man/man1/as86.1 -#usr/man/man1/bcc.1 -#usr/man/man1/elks.1 -#usr/man/man1/elksemu.1 -#usr/man/man1/ld86.1 -#usr/share/X11 -usr/share/X11/XErrorDB -usr/share/X11/XKeysymDB -usr/share/X11/locale -#usr/share/X11/locale/C -#usr/share/X11/locale/C/Compose -#usr/share/X11/locale/C/XI18N_OBJS -#usr/share/X11/locale/C/XLC_LOCALE -#usr/share/X11/locale/am_ET.UTF-8 -#usr/share/X11/locale/am_ET.UTF-8/Compose -#usr/share/X11/locale/am_ET.UTF-8/XI18N_OBJS -#usr/share/X11/locale/am_ET.UTF-8/XLC_LOCALE -#usr/share/X11/locale/armscii-8 -#usr/share/X11/locale/armscii-8/Compose -#usr/share/X11/locale/armscii-8/XI18N_OBJS -#usr/share/X11/locale/armscii-8/XLC_LOCALE -#usr/share/X11/locale/compose.dir -#usr/share/X11/locale/el_GR.UTF-8 -#usr/share/X11/locale/el_GR.UTF-8/Compose -#usr/share/X11/locale/el_GR.UTF-8/XI18N_OBJS -#usr/share/X11/locale/el_GR.UTF-8/XLC_LOCALE -#usr/share/X11/locale/en_US.UTF-8 -#usr/share/X11/locale/en_US.UTF-8/Compose -#usr/share/X11/locale/en_US.UTF-8/XI18N_OBJS -#usr/share/X11/locale/en_US.UTF-8/XLC_LOCALE -#usr/share/X11/locale/georgian-academy -#usr/share/X11/locale/georgian-academy/Compose -#usr/share/X11/locale/georgian-academy/XI18N_OBJS -#usr/share/X11/locale/georgian-academy/XLC_LOCALE -#usr/share/X11/locale/georgian-ps -#usr/share/X11/locale/georgian-ps/Compose -#usr/share/X11/locale/georgian-ps/XI18N_OBJS -#usr/share/X11/locale/georgian-ps/XLC_LOCALE -#usr/share/X11/locale/ibm-cp1133 -#usr/share/X11/locale/ibm-cp1133/Compose -#usr/share/X11/locale/ibm-cp1133/XI18N_OBJS -#usr/share/X11/locale/ibm-cp1133/XLC_LOCALE -#usr/share/X11/locale/iscii-dev -#usr/share/X11/locale/iscii-dev/Compose -#usr/share/X11/locale/iscii-dev/XI18N_OBJS -#usr/share/X11/locale/iscii-dev/XLC_LOCALE -#usr/share/X11/locale/isiri-3342 -#usr/share/X11/locale/isiri-3342/Compose -#usr/share/X11/locale/isiri-3342/XI18N_OBJS -#usr/share/X11/locale/isiri-3342/XLC_LOCALE -#usr/share/X11/locale/iso8859-1 -#usr/share/X11/locale/iso8859-1/Compose -#usr/share/X11/locale/iso8859-1/XI18N_OBJS -#usr/share/X11/locale/iso8859-1/XLC_LOCALE -#usr/share/X11/locale/iso8859-10 -#usr/share/X11/locale/iso8859-10/Compose -#usr/share/X11/locale/iso8859-10/XI18N_OBJS -#usr/share/X11/locale/iso8859-10/XLC_LOCALE -#usr/share/X11/locale/iso8859-11 -#usr/share/X11/locale/iso8859-11/Compose -#usr/share/X11/locale/iso8859-11/XI18N_OBJS -#usr/share/X11/locale/iso8859-11/XLC_LOCALE -#usr/share/X11/locale/iso8859-13 -#usr/share/X11/locale/iso8859-13/Compose -#usr/share/X11/locale/iso8859-13/XI18N_OBJS -#usr/share/X11/locale/iso8859-13/XLC_LOCALE -#usr/share/X11/locale/iso8859-14 -#usr/share/X11/locale/iso8859-14/Compose -#usr/share/X11/locale/iso8859-14/XI18N_OBJS -#usr/share/X11/locale/iso8859-14/XLC_LOCALE -#usr/share/X11/locale/iso8859-15 -#usr/share/X11/locale/iso8859-15/Compose -#usr/share/X11/locale/iso8859-15/XI18N_OBJS -#usr/share/X11/locale/iso8859-15/XLC_LOCALE -#usr/share/X11/locale/iso8859-2 -#usr/share/X11/locale/iso8859-2/Compose -#usr/share/X11/locale/iso8859-2/XI18N_OBJS -#usr/share/X11/locale/iso8859-2/XLC_LOCALE -#usr/share/X11/locale/iso8859-3 -#usr/share/X11/locale/iso8859-3/Compose -#usr/share/X11/locale/iso8859-3/XI18N_OBJS -#usr/share/X11/locale/iso8859-3/XLC_LOCALE -#usr/share/X11/locale/iso8859-4 -#usr/share/X11/locale/iso8859-4/Compose -#usr/share/X11/locale/iso8859-4/XI18N_OBJS -#usr/share/X11/locale/iso8859-4/XLC_LOCALE -#usr/share/X11/locale/iso8859-5 -#usr/share/X11/locale/iso8859-5/Compose -#usr/share/X11/locale/iso8859-5/XI18N_OBJS -#usr/share/X11/locale/iso8859-5/XLC_LOCALE -#usr/share/X11/locale/iso8859-6 -#usr/share/X11/locale/iso8859-6/Compose -#usr/share/X11/locale/iso8859-6/XI18N_OBJS -#usr/share/X11/locale/iso8859-6/XLC_LOCALE -#usr/share/X11/locale/iso8859-7 -#usr/share/X11/locale/iso8859-7/Compose -#usr/share/X11/locale/iso8859-7/XI18N_OBJS -#usr/share/X11/locale/iso8859-7/XLC_LOCALE -#usr/share/X11/locale/iso8859-8 -#usr/share/X11/locale/iso8859-8/Compose -#usr/share/X11/locale/iso8859-8/XI18N_OBJS -#usr/share/X11/locale/iso8859-8/XLC_LOCALE -#usr/share/X11/locale/iso8859-9 -#usr/share/X11/locale/iso8859-9/Compose -#usr/share/X11/locale/iso8859-9/XI18N_OBJS -#usr/share/X11/locale/iso8859-9/XLC_LOCALE -#usr/share/X11/locale/iso8859-9e -#usr/share/X11/locale/iso8859-9e/Compose -#usr/share/X11/locale/iso8859-9e/XI18N_OBJS -#usr/share/X11/locale/iso8859-9e/XLC_LOCALE -#usr/share/X11/locale/ja -#usr/share/X11/locale/ja.JIS -#usr/share/X11/locale/ja.JIS/Compose -#usr/share/X11/locale/ja.JIS/XI18N_OBJS -#usr/share/X11/locale/ja.JIS/XLC_LOCALE -#usr/share/X11/locale/ja.S90 -#usr/share/X11/locale/ja.S90/Compose -#usr/share/X11/locale/ja.S90/XI18N_OBJS -#usr/share/X11/locale/ja.S90/XLC_LOCALE -#usr/share/X11/locale/ja.SJIS -#usr/share/X11/locale/ja.SJIS/Compose -#usr/share/X11/locale/ja.SJIS/XI18N_OBJS -#usr/share/X11/locale/ja.SJIS/XLC_LOCALE -#usr/share/X11/locale/ja.U90 -#usr/share/X11/locale/ja.U90/Compose -#usr/share/X11/locale/ja.U90/XI18N_OBJS -#usr/share/X11/locale/ja.U90/XLC_LOCALE -#usr/share/X11/locale/ja/Compose -#usr/share/X11/locale/ja/XI18N_OBJS -#usr/share/X11/locale/ja/XLC_LOCALE -#usr/share/X11/locale/ja_JP.UTF-8 -#usr/share/X11/locale/ja_JP.UTF-8/Compose -#usr/share/X11/locale/ja_JP.UTF-8/XI18N_OBJS -#usr/share/X11/locale/ja_JP.UTF-8/XLC_LOCALE -#usr/share/X11/locale/ko -#usr/share/X11/locale/ko/Compose -#usr/share/X11/locale/ko/XI18N_OBJS -#usr/share/X11/locale/ko/XLC_LOCALE -#usr/share/X11/locale/ko_KR.UTF-8 -#usr/share/X11/locale/ko_KR.UTF-8/Compose -#usr/share/X11/locale/ko_KR.UTF-8/XI18N_OBJS -#usr/share/X11/locale/ko_KR.UTF-8/XLC_LOCALE -#usr/share/X11/locale/koi8-c -#usr/share/X11/locale/koi8-c/Compose -#usr/share/X11/locale/koi8-c/XI18N_OBJS -#usr/share/X11/locale/koi8-c/XLC_LOCALE -#usr/share/X11/locale/koi8-r -#usr/share/X11/locale/koi8-r/Compose -#usr/share/X11/locale/koi8-r/XI18N_OBJS -#usr/share/X11/locale/koi8-r/XLC_LOCALE -#usr/share/X11/locale/koi8-u -#usr/share/X11/locale/koi8-u/Compose -#usr/share/X11/locale/koi8-u/XI18N_OBJS -#usr/share/X11/locale/koi8-u/XLC_LOCALE -#usr/share/X11/locale/locale.alias -#usr/share/X11/locale/locale.dir -#usr/share/X11/locale/microsoft-cp1251 -#usr/share/X11/locale/microsoft-cp1251/Compose -#usr/share/X11/locale/microsoft-cp1251/XI18N_OBJS -#usr/share/X11/locale/microsoft-cp1251/XLC_LOCALE -#usr/share/X11/locale/microsoft-cp1255 -#usr/share/X11/locale/microsoft-cp1255/Compose -#usr/share/X11/locale/microsoft-cp1255/XI18N_OBJS -#usr/share/X11/locale/microsoft-cp1255/XLC_LOCALE -#usr/share/X11/locale/microsoft-cp1256 -#usr/share/X11/locale/microsoft-cp1256/Compose -#usr/share/X11/locale/microsoft-cp1256/XI18N_OBJS -#usr/share/X11/locale/microsoft-cp1256/XLC_LOCALE -#usr/share/X11/locale/mulelao-1 -#usr/share/X11/locale/mulelao-1/Compose -#usr/share/X11/locale/mulelao-1/XI18N_OBJS -#usr/share/X11/locale/mulelao-1/XLC_LOCALE -#usr/share/X11/locale/nokhchi-1 -#usr/share/X11/locale/nokhchi-1/Compose -#usr/share/X11/locale/nokhchi-1/XI18N_OBJS -#usr/share/X11/locale/nokhchi-1/XLC_LOCALE -#usr/share/X11/locale/pt_BR.UTF-8 -#usr/share/X11/locale/pt_BR.UTF-8/Compose -#usr/share/X11/locale/pt_BR.UTF-8/XI18N_OBJS -#usr/share/X11/locale/pt_BR.UTF-8/XLC_LOCALE -#usr/share/X11/locale/tatar-cyr -#usr/share/X11/locale/tatar-cyr/Compose -#usr/share/X11/locale/tatar-cyr/XI18N_OBJS -#usr/share/X11/locale/tatar-cyr/XLC_LOCALE -#usr/share/X11/locale/th_TH -#usr/share/X11/locale/th_TH.UTF-8 -#usr/share/X11/locale/th_TH.UTF-8/Compose -#usr/share/X11/locale/th_TH.UTF-8/XI18N_OBJS -#usr/share/X11/locale/th_TH.UTF-8/XLC_LOCALE -#usr/share/X11/locale/th_TH/Compose -#usr/share/X11/locale/th_TH/XI18N_OBJS -#usr/share/X11/locale/th_TH/XLC_LOCALE -#usr/share/X11/locale/tscii-0 -#usr/share/X11/locale/tscii-0/Compose -#usr/share/X11/locale/tscii-0/XI18N_OBJS -#usr/share/X11/locale/tscii-0/XLC_LOCALE -#usr/share/X11/locale/vi_VN.tcvn -#usr/share/X11/locale/vi_VN.tcvn/Compose -#usr/share/X11/locale/vi_VN.tcvn/XI18N_OBJS -#usr/share/X11/locale/vi_VN.tcvn/XLC_LOCALE -#usr/share/X11/locale/vi_VN.viscii -#usr/share/X11/locale/vi_VN.viscii/Compose -#usr/share/X11/locale/vi_VN.viscii/XI18N_OBJS -#usr/share/X11/locale/vi_VN.viscii/XLC_LOCALE -#usr/share/X11/locale/zh_CN -#usr/share/X11/locale/zh_CN.UTF-8 -#usr/share/X11/locale/zh_CN.UTF-8/Compose -#usr/share/X11/locale/zh_CN.UTF-8/XI18N_OBJS -#usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE -#usr/share/X11/locale/zh_CN.gb18030 -#usr/share/X11/locale/zh_CN.gb18030/Compose -#usr/share/X11/locale/zh_CN.gb18030/XI18N_OBJS -#usr/share/X11/locale/zh_CN.gb18030/XLC_LOCALE -#usr/share/X11/locale/zh_CN.gbk -#usr/share/X11/locale/zh_CN.gbk/Compose -#usr/share/X11/locale/zh_CN.gbk/XI18N_OBJS -#usr/share/X11/locale/zh_CN.gbk/XLC_LOCALE -#usr/share/X11/locale/zh_CN/Compose -#usr/share/X11/locale/zh_CN/XI18N_OBJS -#usr/share/X11/locale/zh_CN/XLC_LOCALE -#usr/share/X11/locale/zh_HK.UTF-8 -#usr/share/X11/locale/zh_HK.UTF-8/Compose -#usr/share/X11/locale/zh_HK.UTF-8/XI18N_OBJS -#usr/share/X11/locale/zh_HK.UTF-8/XLC_LOCALE -#usr/share/X11/locale/zh_HK.big5 -#usr/share/X11/locale/zh_HK.big5/Compose -#usr/share/X11/locale/zh_HK.big5/XI18N_OBJS -#usr/share/X11/locale/zh_HK.big5/XLC_LOCALE -#usr/share/X11/locale/zh_HK.big5hkscs -#usr/share/X11/locale/zh_HK.big5hkscs/Compose -#usr/share/X11/locale/zh_HK.big5hkscs/XI18N_OBJS -#usr/share/X11/locale/zh_HK.big5hkscs/XLC_LOCALE -#usr/share/X11/locale/zh_TW -#usr/share/X11/locale/zh_TW.UTF-8 -#usr/share/X11/locale/zh_TW.UTF-8/Compose -#usr/share/X11/locale/zh_TW.UTF-8/XI18N_OBJS -#usr/share/X11/locale/zh_TW.UTF-8/XLC_LOCALE -#usr/share/X11/locale/zh_TW.big5 -#usr/share/X11/locale/zh_TW.big5/Compose -#usr/share/X11/locale/zh_TW.big5/XI18N_OBJS -#usr/share/X11/locale/zh_TW.big5/XLC_LOCALE -#usr/share/X11/locale/zh_TW/Compose -#usr/share/X11/locale/zh_TW/XI18N_OBJS -#usr/share/X11/locale/zh_TW/XLC_LOCALE -#usr/share/aclocal/xaw.m4 -#usr/share/aclocal/xorg-macros.m4 -#usr/share/aclocal/xorgversion.m4 -#usr/share/aclocal/xtrans.m4 -#usr/share/doc/compositeproto -#usr/share/doc/compositeproto/compositeproto.txt -#usr/share/doc/damageproto -#usr/share/doc/damageproto/damageproto.txt -#usr/share/doc/gperf-3.0.3 -#usr/share/doc/gperf-3.0.3/gperf.dvi -#usr/share/doc/gperf-3.0.3/gperf.pdf -#usr/share/doc/gperf-3.0.3/gperf.ps -#usr/share/doc/gperf-3.0.3/gperf.txt -#usr/share/doc/gperf.html -#usr/share/doc/randrproto -#usr/share/doc/randrproto/randrproto.txt -#usr/share/doc/renderproto -#usr/share/doc/renderproto/renderproto.txt -#usr/share/doc/xcb-proto-1.1 -#usr/share/doc/xcb-proto-1.1/xml-xcb.txt -#usr/share/info/gperf.info -#usr/share/man/man1/ccmakedep.1x -#usr/share/man/man1/cleanlinks.1x -#usr/share/man/man1/cxpm.1 -#usr/share/man/man1/gccmakedep.1x -#usr/share/man/man1/gperf.1 -#usr/share/man/man1/imake.1x -#usr/share/man/man1/lndir.1x -#usr/share/man/man1/makedepend.1 -#usr/share/man/man1/makeg.1x -#usr/share/man/man1/makestrs.1 -#usr/share/man/man1/mergelib.1x -#usr/share/man/man1/mkdirhier.1x -#usr/share/man/man1/mkhtmlindex.1x -#usr/share/man/man1/revpath.1x -#usr/share/man/man1/sxpm.1 -#usr/share/man/man1/xft-config.1 -#usr/share/man/man1/xmkmf.1x -#usr/share/man/man3/AllPlanes.3 -#usr/share/man/man3/AppleWM.3 -#usr/share/man/man3/BitmapBitOrder.3 -#usr/share/man/man3/BitmapPad.3 -#usr/share/man/man3/BitmapUnit.3 -#usr/share/man/man3/BlackPixel.3 -#usr/share/man/man3/BlackPixelOfScreen.3 -#usr/share/man/man3/CellsOfScreen.3 -#usr/share/man/man3/ClientWhitePointOfCCC.3 -#usr/share/man/man3/ConnectionNumber.3 -#usr/share/man/man3/DBE.3 -#usr/share/man/man3/DMX.3x -#usr/share/man/man3/DMXAddInput.3x -#usr/share/man/man3/DMXAddScreen.3x -#usr/share/man/man3/DMXChangeDesktopAttributes.3x -#usr/share/man/man3/DMXChangeScreensAttributes.3x -#usr/share/man/man3/DMXForceWindowCreation.3x -#usr/share/man/man3/DMXGetDesktopAttributes.3x -#usr/share/man/man3/DMXGetInputAttributes.3x -#usr/share/man/man3/DMXGetInputCount.3x -#usr/share/man/man3/DMXGetScreenAttributes.3x -#usr/share/man/man3/DMXGetScreenCount.3x -#usr/share/man/man3/DMXGetWindowAttributes.3x -#usr/share/man/man3/DMXQueryExtension.3x -#usr/share/man/man3/DMXQueryVersion.3x -#usr/share/man/man3/DMXRemoveInput.3x -#usr/share/man/man3/DMXRemoveScreen.3x -#usr/share/man/man3/DMXSync.3x -#usr/share/man/man3/DPMSCapable.3 -#usr/share/man/man3/DPMSDisable.3 -#usr/share/man/man3/DPMSEnable.3 -#usr/share/man/man3/DPMSForceLevel.3 -#usr/share/man/man3/DPMSGetTimeouts.3 -#usr/share/man/man3/DPMSGetVersion.3 -#usr/share/man/man3/DPMSInfo.3 -#usr/share/man/man3/DPMSQueryExtension.3 -#usr/share/man/man3/DPMSSetTimeouts.3 -#usr/share/man/man3/DefaultColormap.3 -#usr/share/man/man3/DefaultColormapOfScreen.3 -#usr/share/man/man3/DefaultDepth.3 -#usr/share/man/man3/DefaultDepthOfScreen.3 -#usr/share/man/man3/DefaultGC.3 -#usr/share/man/man3/DefaultGCOfScreen.3 -#usr/share/man/man3/DefaultRootWindow.3 -#usr/share/man/man3/DefaultScreen.3 -#usr/share/man/man3/DefaultScreenOfDisplay.3 -#usr/share/man/man3/DefaultVisual.3 -#usr/share/man/man3/DefaultVisualOfScreen.3 -#usr/share/man/man3/DisplayCells.3 -#usr/share/man/man3/DisplayHeight.3 -#usr/share/man/man3/DisplayHeightMM.3 -#usr/share/man/man3/DisplayOfCCC.3 -#usr/share/man/man3/DisplayOfScreen.3 -#usr/share/man/man3/DisplayPlanes.3 -#usr/share/man/man3/DisplayString.3 -#usr/share/man/man3/DisplayWidth.3 -#usr/share/man/man3/DisplayWidthMM.3 -#usr/share/man/man3/DoesBackingStore.3 -#usr/share/man/man3/DoesSaveUnders.3 -#usr/share/man/man3/EventMaskOfScreen.3 -#usr/share/man/man3/FontCacheChangeCacheSettings.3 -#usr/share/man/man3/FontCacheGetCacheSettings.3 -#usr/share/man/man3/FontCacheGetCacheStatistics.3 -#usr/share/man/man3/FontCacheQueryExtension.3 -#usr/share/man/man3/FontCacheQueryVersion.3 -#usr/share/man/man3/HeightMMOfScreen.3 -#usr/share/man/man3/HeightOfScreen.3 -#usr/share/man/man3/ImageByteOrder.3 -#usr/share/man/man3/IsCursorKey.3 -#usr/share/man/man3/IsFunctionKey.3 -#usr/share/man/man3/IsKeypadKey.3 -#usr/share/man/man3/IsMiscFunctionKey.3 -#usr/share/man/man3/IsModifierKey.3 -#usr/share/man/man3/IsPFKey.3 -#usr/share/man/man3/IsPrivateKeypadKey.3 -#usr/share/man/man3/LastKnownRequestProcessed.3 -#usr/share/man/man3/MaxCmapsOfScreen.3 -#usr/share/man/man3/MenuPopdown.3 -#usr/share/man/man3/MenuPopup.3 -#usr/share/man/man3/MinCmapsOfScreen.3 -#usr/share/man/man3/NextRequest.3 -#usr/share/man/man3/PlanesOfScreen.3 -#usr/share/man/man3/ProtocolRevision.3 -#usr/share/man/man3/ProtocolVersion.3 -#usr/share/man/man3/QLength.3 -#usr/share/man/man3/RootWindow.3 -#usr/share/man/man3/RootWindowOfScreen.3 -#usr/share/man/man3/ScreenCount.3 -#usr/share/man/man3/ScreenNumberOfCCC.3 -#usr/share/man/man3/ScreenOfDisplay.3 -#usr/share/man/man3/ScreenWhitePointOfCCC.3 -#usr/share/man/man3/ServerVendor.3 -#usr/share/man/man3/VendorRelease.3 -#usr/share/man/man3/VisualOfCCC.3 -#usr/share/man/man3/WhitePixel.3 -#usr/share/man/man3/WhitePixelOfScreen.3 -#usr/share/man/man3/WidthMMOfScreen.3 -#usr/share/man/man3/WidthOfScreen.3 -#usr/share/man/man3/WindowsWM.3 -#usr/share/man/man3/XActivateScreenSaver.3 -#usr/share/man/man3/XAddConnectionWatch.3 -#usr/share/man/man3/XAddHost.3 -#usr/share/man/man3/XAddHosts.3 -#usr/share/man/man3/XAddPixel.3 -#usr/share/man/man3/XAddToSaveSet.3 -#usr/share/man/man3/XAllocClassHint.3 -#usr/share/man/man3/XAllocColor.3 -#usr/share/man/man3/XAllocColorCells.3 -#usr/share/man/man3/XAllocColorPlanes.3 -#usr/share/man/man3/XAllocIconSize.3 -#usr/share/man/man3/XAllocNamedColor.3 -#usr/share/man/man3/XAllocSizeHints.3 -#usr/share/man/man3/XAllocStandardColormap.3 -#usr/share/man/man3/XAllocWMHints.3 -#usr/share/man/man3/XAllowDeviceEvents.3 -#usr/share/man/man3/XAllowEvents.3 -#usr/share/man/man3/XAnyEvent.3 -#usr/share/man/man3/XArc.3 -#usr/share/man/man3/XAutoRepeatOff.3 -#usr/share/man/man3/XAutoRepeatOn.3 -#usr/share/man/man3/XBaseFontNameListOfFontSet.3 -#usr/share/man/man3/XBell.3 -#usr/share/man/man3/XButtonEvent.3 -#usr/share/man/man3/XChangeActivePointerGrab.3 -#usr/share/man/man3/XChangeDeviceControl.3 -#usr/share/man/man3/XChangeDeviceDontPropagateList.3 -#usr/share/man/man3/XChangeDeviceKeyMapping.3 -#usr/share/man/man3/XChangeFeedbackControl.3 -#usr/share/man/man3/XChangeGC.3 -#usr/share/man/man3/XChangeKeyboardControl.3 -#usr/share/man/man3/XChangeKeyboardDevice.3 -#usr/share/man/man3/XChangeKeyboardMapping.3 -#usr/share/man/man3/XChangePointerControl.3 -#usr/share/man/man3/XChangePointerDevice.3 -#usr/share/man/man3/XChangeProperty.3 -#usr/share/man/man3/XChangeSaveSet.3 -#usr/share/man/man3/XChangeWindowAttributes.3 -#usr/share/man/man3/XChar2b.3 -#usr/share/man/man3/XCharStruct.3 -#usr/share/man/man3/XCheckIfEvent.3 -#usr/share/man/man3/XCheckMaskEvent.3 -#usr/share/man/man3/XCheckTypedEvent.3 -#usr/share/man/man3/XCheckTypedWindowEvent.3 -#usr/share/man/man3/XCheckWindowEvent.3 -#usr/share/man/man3/XCirculateEvent.3 -#usr/share/man/man3/XCirculateRequestEvent.3 -#usr/share/man/man3/XCirculateSubwindows.3 -#usr/share/man/man3/XCirculateSubwindowsDown.3 -#usr/share/man/man3/XCirculateSubwindowsUp.3 -#usr/share/man/man3/XClassHint.3 -#usr/share/man/man3/XClearArea.3 -#usr/share/man/man3/XClearWindow.3 -#usr/share/man/man3/XClientMessageEvent.3 -#usr/share/man/man3/XClipBox.3 -#usr/share/man/man3/XCloseDevice.3 -#usr/share/man/man3/XCloseDisplay.3 -#usr/share/man/man3/XCloseIM.3 -#usr/share/man/man3/XCloseOM.3 -#usr/share/man/man3/XColor.3 -#usr/share/man/man3/XColormapEvent.3 -#usr/share/man/man3/XCompositeCreateRegionFromBorderClip.3 -#usr/share/man/man3/XCompositeGetOverlayWindow.3 -#usr/share/man/man3/XCompositeNameWindowPixmap.3 -#usr/share/man/man3/XCompositeQueryExtension.3 -#usr/share/man/man3/XCompositeQueryVersion.3 -#usr/share/man/man3/XCompositeRedirectSubwindows.3 -#usr/share/man/man3/XCompositeRedirectWindow.3 -#usr/share/man/man3/XCompositeReleaseOverlayWindow.3 -#usr/share/man/man3/XCompositeUnredirectSubwindows.3 -#usr/share/man/man3/XCompositeUnredirectWindow.3 -#usr/share/man/man3/XCompositeVersion.3 -#usr/share/man/man3/XConfigureEvent.3 -#usr/share/man/man3/XConfigureRequestEvent.3 -#usr/share/man/man3/XConfigureWindow.3 -#usr/share/man/man3/XContextDependentDrawing.3 -#usr/share/man/man3/XContextualDrawing.3 -#usr/share/man/man3/XConvertCase.3 -#usr/share/man/man3/XConvertSelection.3 -#usr/share/man/man3/XCopyArea.3 -#usr/share/man/man3/XCopyColormapAndFree.3 -#usr/share/man/man3/XCopyGC.3 -#usr/share/man/man3/XCopyPlane.3 -#usr/share/man/man3/XCreateBitmapFromData.3 -#usr/share/man/man3/XCreateColormap.3 -#usr/share/man/man3/XCreateFontCursor.3 -#usr/share/man/man3/XCreateFontSet.3 -#usr/share/man/man3/XCreateGC.3 -#usr/share/man/man3/XCreateGlyphCursor.3 -#usr/share/man/man3/XCreateIC.3 -#usr/share/man/man3/XCreateImage.3 -#usr/share/man/man3/XCreateOC.3 -#usr/share/man/man3/XCreatePixmap.3 -#usr/share/man/man3/XCreatePixmapCursor.3 -#usr/share/man/man3/XCreatePixmapFromBitmapData.3 -#usr/share/man/man3/XCreateRegion.3 -#usr/share/man/man3/XCreateSimpleWindow.3 -#usr/share/man/man3/XCreateWindow.3 -#usr/share/man/man3/XCreateWindowEvent.3 -#usr/share/man/man3/XCrossingEvent.3 -#usr/share/man/man3/XDGA.3 -#usr/share/man/man3/XDGAChangePixmapMode.3 -#usr/share/man/man3/XDGACloseFramebuffer.3 -#usr/share/man/man3/XDGACopyArea.3 -#usr/share/man/man3/XDGACopyTransparentArea.3 -#usr/share/man/man3/XDGACreateColormap.3 -#usr/share/man/man3/XDGAFillRectangle.3 -#usr/share/man/man3/XDGAGetViewportStatus.3 -#usr/share/man/man3/XDGAInstallColormap.3 -#usr/share/man/man3/XDGAKeyEventToXKeyEvent.3 -#usr/share/man/man3/XDGAOpenFramebuffer.3 -#usr/share/man/man3/XDGAQueryExtension.3 -#usr/share/man/man3/XDGAQueryModes.3 -#usr/share/man/man3/XDGAQueryVersion.3 -#usr/share/man/man3/XDGASelectInput.3 -#usr/share/man/man3/XDGASetClientVersion.3 -#usr/share/man/man3/XDGASetMode.3 -#usr/share/man/man3/XDGASetViewport.3 -#usr/share/man/man3/XDGASync.3 -#usr/share/man/man3/XDefaultString.3 -#usr/share/man/man3/XDefineCursor.3 -#usr/share/man/man3/XDeleteContext.3 -#usr/share/man/man3/XDeleteModifiermapEntry.3 -#usr/share/man/man3/XDeleteProperty.3 -#usr/share/man/man3/XDestroyIC.3 -#usr/share/man/man3/XDestroyImage.3 -#usr/share/man/man3/XDestroyOC.3 -#usr/share/man/man3/XDestroyRegion.3 -#usr/share/man/man3/XDestroySubwindows.3 -#usr/share/man/man3/XDestroyWindow.3 -#usr/share/man/man3/XDestroyWindowEvent.3 -#usr/share/man/man3/XDeviceBell.3 -#usr/share/man/man3/XDeviceTimeCoord.3 -#usr/share/man/man3/XDirectionalDependentDrawing.3 -#usr/share/man/man3/XDisableAccessControl.3 -#usr/share/man/man3/XDisplayKeycodes.3 -#usr/share/man/man3/XDisplayMotionBufferSize.3 -#usr/share/man/man3/XDisplayName.3 -#usr/share/man/man3/XDisplayOfIM.3 -#usr/share/man/man3/XDisplayOfOM.3 -#usr/share/man/man3/XDrawArc.3 -#usr/share/man/man3/XDrawArcs.3 -#usr/share/man/man3/XDrawImageString.3 -#usr/share/man/man3/XDrawImageString16.3 -#usr/share/man/man3/XDrawLine.3 -#usr/share/man/man3/XDrawLines.3 -#usr/share/man/man3/XDrawPoint.3 -#usr/share/man/man3/XDrawPoints.3 -#usr/share/man/man3/XDrawRectangle.3 -#usr/share/man/man3/XDrawRectangles.3 -#usr/share/man/man3/XDrawSegments.3 -#usr/share/man/man3/XDrawString.3 -#usr/share/man/man3/XDrawString16.3 -#usr/share/man/man3/XDrawText.3 -#usr/share/man/man3/XDrawText16.3 -#usr/share/man/man3/XEmptyRegion.3 -#usr/share/man/man3/XEnableAccessControl.3 -#usr/share/man/man3/XEqualRegion.3 -#usr/share/man/man3/XErrorEvent.3 -#usr/share/man/man3/XEvent.3 -#usr/share/man/man3/XEventsQueued.3 -#usr/share/man/man3/XExposeEvent.3 -#usr/share/man/man3/XExtendedMaxRequestSize.3 -#usr/share/man/man3/XExtentsOfFontSet.3 -#usr/share/man/man3/XF86DGA.3 -#usr/share/man/man3/XF86Misc.3x -#usr/share/man/man3/XF86MiscGetKbdSettings.3x -#usr/share/man/man3/XF86MiscGetMouseSettings.3x -#usr/share/man/man3/XF86MiscGetSaver.3x -#usr/share/man/man3/XF86MiscQueryExtension.3x -#usr/share/man/man3/XF86MiscQueryVersion.3x -#usr/share/man/man3/XF86MiscSetKbdSettings.3x -#usr/share/man/man3/XF86MiscSetMouseSettings.3x -#usr/share/man/man3/XF86MiscSetSaver.3x -#usr/share/man/man3/XF86VM.3 -#usr/share/man/man3/XF86VidModeDeleteModeLine.3 -#usr/share/man/man3/XF86VidModeGetAllModeLines.3 -#usr/share/man/man3/XF86VidModeGetDotClocks.3 -#usr/share/man/man3/XF86VidModeGetGamma.3 -#usr/share/man/man3/XF86VidModeGetGammaRamp.3 -#usr/share/man/man3/XF86VidModeGetGammaRampSize.3 -#usr/share/man/man3/XF86VidModeGetModeLine.3 -#usr/share/man/man3/XF86VidModeGetMonitor.3 -#usr/share/man/man3/XF86VidModeGetPermissions.3 -#usr/share/man/man3/XF86VidModeGetViewPort.3 -#usr/share/man/man3/XF86VidModeLockModeSwitch.3 -#usr/share/man/man3/XF86VidModeModModeLine.3 -#usr/share/man/man3/XF86VidModeQueryExtension.3 -#usr/share/man/man3/XF86VidModeQueryVersion.3 -#usr/share/man/man3/XF86VidModeSetClientVersion.3 -#usr/share/man/man3/XF86VidModeSetGamma.3 -#usr/share/man/man3/XF86VidModeSetGammaRamp.3 -#usr/share/man/man3/XF86VidModeSetViewPort.3 -#usr/share/man/man3/XF86VidModeSwitchMode.3 -#usr/share/man/man3/XF86VidModeSwitchToMode.3 -#usr/share/man/man3/XF86VidModeValidateModeLine.3 -#usr/share/man/man3/XFetchBuffer.3 -#usr/share/man/man3/XFetchBytes.3 -#usr/share/man/man3/XFetchName.3 -#usr/share/man/man3/XFillArc.3 -#usr/share/man/man3/XFillArcs.3 -#usr/share/man/man3/XFillPolygon.3 -#usr/share/man/man3/XFillRectangle.3 -#usr/share/man/man3/XFillRectangles.3 -#usr/share/man/man3/XFilterEvent.3 -#usr/share/man/man3/XFindContext.3 -#usr/share/man/man3/XFlush.3 -#usr/share/man/man3/XFocusChangeEvent.3 -#usr/share/man/man3/XFontProp.3 -#usr/share/man/man3/XFontSetExtents.3 -#usr/share/man/man3/XFontStruct.3 -#usr/share/man/man3/XFontsOfFontSet.3 -#usr/share/man/man3/XForceScreenSaver.3 -#usr/share/man/man3/XFree.3 -#usr/share/man/man3/XFree86-DGA.3 -#usr/share/man/man3/XFreeColormap.3 -#usr/share/man/man3/XFreeColors.3 -#usr/share/man/man3/XFreeCursor.3 -#usr/share/man/man3/XFreeDeviceList.3 -#usr/share/man/man3/XFreeExtensionList.3 -#usr/share/man/man3/XFreeFont.3 -#usr/share/man/man3/XFreeFontInfo.3 -#usr/share/man/man3/XFreeFontNames.3 -#usr/share/man/man3/XFreeFontPath.3 -#usr/share/man/man3/XFreeFontSet.3 -#usr/share/man/man3/XFreeGC.3 -#usr/share/man/man3/XFreeModifierMap.3 -#usr/share/man/man3/XFreePixmap.3 -#usr/share/man/man3/XFreeStringList.3 -#usr/share/man/man3/XGCValues.3 -#usr/share/man/man3/XGContextFromGC.3 -#usr/share/man/man3/XGetAtomName.3 -#usr/share/man/man3/XGetAtomNames.3 -#usr/share/man/man3/XGetClassHint.3 -#usr/share/man/man3/XGetCommand.3 -#usr/share/man/man3/XGetDeviceButtonMapping.3 -#usr/share/man/man3/XGetDeviceControl.3 -#usr/share/man/man3/XGetDeviceDontPropagateList.3 -#usr/share/man/man3/XGetDeviceFocus.3 -#usr/share/man/man3/XGetDeviceKeyMapping.3 -#usr/share/man/man3/XGetDeviceModifierMapping.3 -#usr/share/man/man3/XGetDeviceMotionEvents.3 -#usr/share/man/man3/XGetErrorDatabaseText.3 -#usr/share/man/man3/XGetErrorText.3 -#usr/share/man/man3/XGetExtensionVersion.3 -#usr/share/man/man3/XGetFeedbackControl.3 -#usr/share/man/man3/XGetFontPath.3 -#usr/share/man/man3/XGetFontProperty.3 -#usr/share/man/man3/XGetGCValues.3 -#usr/share/man/man3/XGetGeometry.3 -#usr/share/man/man3/XGetICValues.3 -#usr/share/man/man3/XGetIMValues.3 -#usr/share/man/man3/XGetIconName.3 -#usr/share/man/man3/XGetIconSizes.3 -#usr/share/man/man3/XGetImage.3 -#usr/share/man/man3/XGetInputFocus.3 -#usr/share/man/man3/XGetKeyboardControl.3 -#usr/share/man/man3/XGetKeyboardMapping.3 -#usr/share/man/man3/XGetModifierMapping.3 -#usr/share/man/man3/XGetMotionEvents.3 -#usr/share/man/man3/XGetOCValues.3 -#usr/share/man/man3/XGetOMValues.3 -#usr/share/man/man3/XGetPixel.3 -#usr/share/man/man3/XGetPointerControl.3 -#usr/share/man/man3/XGetPointerMapping.3 -#usr/share/man/man3/XGetRGBColormaps.3 -#usr/share/man/man3/XGetScreenSaver.3 -#usr/share/man/man3/XGetSelectedExtensionEvents.3 -#usr/share/man/man3/XGetSelectionOwner.3 -#usr/share/man/man3/XGetSubImage.3 -#usr/share/man/man3/XGetTextProperty.3 -#usr/share/man/man3/XGetTransientForHint.3 -#usr/share/man/man3/XGetVisualInfo.3 -#usr/share/man/man3/XGetWMClientMachine.3 -#usr/share/man/man3/XGetWMColormapWindows.3 -#usr/share/man/man3/XGetWMHints.3 -#usr/share/man/man3/XGetWMIconName.3 -#usr/share/man/man3/XGetWMName.3 -#usr/share/man/man3/XGetWMNormalHints.3 -#usr/share/man/man3/XGetWMProtocols.3 -#usr/share/man/man3/XGetWMSizeHints.3 -#usr/share/man/man3/XGetWindowAttributes.3 -#usr/share/man/man3/XGetWindowProperty.3 -#usr/share/man/man3/XGetXCBConnection.3 -#usr/share/man/man3/XGrabButton.3 -#usr/share/man/man3/XGrabDevice.3 -#usr/share/man/man3/XGrabDeviceButton.3 -#usr/share/man/man3/XGrabDeviceKey.3 -#usr/share/man/man3/XGrabKey.3 -#usr/share/man/man3/XGrabKeyboard.3 -#usr/share/man/man3/XGrabPointer.3 -#usr/share/man/man3/XGrabServer.3 -#usr/share/man/man3/XGraphicsExposeEvent.3 -#usr/share/man/man3/XGravityEvent.3 -#usr/share/man/man3/XHostAddress.3 -#usr/share/man/man3/XIMOfIC.3 -#usr/share/man/man3/XIconSize.3 -#usr/share/man/man3/XIconifyWindow.3 -#usr/share/man/man3/XIfEvent.3 -#usr/share/man/man3/XInitImage.3 -#usr/share/man/man3/XInitThreads.3 -#usr/share/man/man3/XInsertModifiermapEntry.3 -#usr/share/man/man3/XInstallColormap.3 -#usr/share/man/man3/XInternAtom.3 -#usr/share/man/man3/XInternAtoms.3 -#usr/share/man/man3/XInternalConnectionNumbers.3 -#usr/share/man/man3/XIntersectRegion.3 -#usr/share/man/man3/XKeyEvent.3 -#usr/share/man/man3/XKeyboardControl.3 -#usr/share/man/man3/XKeycodeToKeysym.3 -#usr/share/man/man3/XKeymapEvent.3 -#usr/share/man/man3/XKeysymToKeycode.3 -#usr/share/man/man3/XKeysymToString.3 -#usr/share/man/man3/XKillClient.3 -#usr/share/man/man3/XListDepths.3 -#usr/share/man/man3/XListExtensions.3 -#usr/share/man/man3/XListFonts.3 -#usr/share/man/man3/XListFontsWithInfo.3 -#usr/share/man/man3/XListHosts.3 -#usr/share/man/man3/XListInputDevices.3 -#usr/share/man/man3/XListInstalledColormaps.3 -#usr/share/man/man3/XListPixmapFormats.3 -#usr/share/man/man3/XListProperties.3 -#usr/share/man/man3/XLoadFont.3 -#usr/share/man/man3/XLoadQueryFont.3 -#usr/share/man/man3/XLocaleOfFontSet.3 -#usr/share/man/man3/XLocaleOfIM.3 -#usr/share/man/man3/XLocaleOfOM.3 -#usr/share/man/man3/XLockDisplay.3 -#usr/share/man/man3/XLookupColor.3 -#usr/share/man/man3/XLookupKeysym.3 -#usr/share/man/man3/XLookupString.3 -#usr/share/man/man3/XLowerWindow.3 -#usr/share/man/man3/XMapEvent.3 -#usr/share/man/man3/XMapRaised.3 -#usr/share/man/man3/XMapRequestEvent.3 -#usr/share/man/man3/XMapSubwindows.3 -#usr/share/man/man3/XMapWindow.3 -#usr/share/man/man3/XMappingEvent.3 -#usr/share/man/man3/XMaskEvent.3 -#usr/share/man/man3/XMatchVisualInfo.3 -#usr/share/man/man3/XMaxRequestSize.3 -#usr/share/man/man3/XModifierKeymap.3 -#usr/share/man/man3/XMotionEvent.3 -#usr/share/man/man3/XMoveResizeWindow.3 -#usr/share/man/man3/XMoveWindow.3 -#usr/share/man/man3/XNewModifiermap.3 -#usr/share/man/man3/XNextEvent.3 -#usr/share/man/man3/XNoExposeEvent.3 -#usr/share/man/man3/XNoOp.3 -#usr/share/man/man3/XOMOfOC.3 -#usr/share/man/man3/XOffsetRegion.3 -#usr/share/man/man3/XOpenDevice.3 -#usr/share/man/man3/XOpenDisplay.3 -#usr/share/man/man3/XOpenIM.3 -#usr/share/man/man3/XOpenOM.3 -#usr/share/man/man3/XParseColor.3 -#usr/share/man/man3/XParseGeometry.3 -#usr/share/man/man3/XPeekEvent.3 -#usr/share/man/man3/XPeekIfEvent.3 -#usr/share/man/man3/XPending.3 -#usr/share/man/man3/XPixmapFormatValues.3 -#usr/share/man/man3/XPoint.3 -#usr/share/man/man3/XPointInRegion.3 -#usr/share/man/man3/XPolygonRegion.3 -#usr/share/man/man3/XProcessInternalConnection.3 -#usr/share/man/man3/XPropertyEvent.3 -#usr/share/man/man3/XPutBackEvent.3 -#usr/share/man/man3/XPutImage.3 -#usr/share/man/man3/XPutPixel.3 -#usr/share/man/man3/XQueryBestCursor.3 -#usr/share/man/man3/XQueryBestSize.3 -#usr/share/man/man3/XQueryBestStipple.3 -#usr/share/man/man3/XQueryBestTile.3 -#usr/share/man/man3/XQueryColor.3 -#usr/share/man/man3/XQueryColors.3 -#usr/share/man/man3/XQueryDeviceState.3 -#usr/share/man/man3/XQueryExtension.3 -#usr/share/man/man3/XQueryFont.3 -#usr/share/man/man3/XQueryKeymap.3 -#usr/share/man/man3/XQueryPointer.3 -#usr/share/man/man3/XQueryTextExtents.3 -#usr/share/man/man3/XQueryTextExtents16.3 -#usr/share/man/man3/XQueryTree.3 -#usr/share/man/man3/XRRConfigCurrentConfiguration.3 -#usr/share/man/man3/XRRConfigCurrentRate.3 -#usr/share/man/man3/XRRConfigRates.3 -#usr/share/man/man3/XRRConfigRotations.3 -#usr/share/man/man3/XRRConfigSizes.3 -#usr/share/man/man3/XRRConfigTimes.3 -#usr/share/man/man3/XRRFreeScreenConfigInfo.3 -#usr/share/man/man3/XRRGetScreenInfo.3 -#usr/share/man/man3/XRRQueryExtension.3 -#usr/share/man/man3/XRRQueryVersion.3 -#usr/share/man/man3/XRRRootToScreen.3 -#usr/share/man/man3/XRRSelectInput.3 -#usr/share/man/man3/XRRSetScreenConfig.3 -#usr/share/man/man3/XRRSetScreenConfigAndRate.3 -#usr/share/man/man3/XRaiseWindow.3 -#usr/share/man/man3/XReadBitmapFile.3 -#usr/share/man/man3/XReadBitmapFileData.3 -#usr/share/man/man3/XRebindKeysym.3 -#usr/share/man/man3/XRecolorCursor.3 -#usr/share/man/man3/XReconfigureWMWindow.3 -#usr/share/man/man3/XRectInRegion.3 -#usr/share/man/man3/XRectangle.3 -#usr/share/man/man3/XRefreshKeyboardMapping.3 -#usr/share/man/man3/XRegisterIMInstantiateCallback.3 -#usr/share/man/man3/XRemoveConnectionWatch.3 -#usr/share/man/man3/XRemoveFromSaveSet.3 -#usr/share/man/man3/XRemoveHost.3 -#usr/share/man/man3/XRemoveHosts.3 -#usr/share/man/man3/XReparentEvent.3 -#usr/share/man/man3/XReparentWindow.3 -#usr/share/man/man3/XRes.3 -#usr/share/man/man3/XResQueryClientPixmapBytes.3 -#usr/share/man/man3/XResQueryClientResources.3 -#usr/share/man/man3/XResQueryClients.3 -#usr/share/man/man3/XResQueryExtension.3 -#usr/share/man/man3/XResQueryVersion.3 -#usr/share/man/man3/XResetScreenSaver.3 -#usr/share/man/man3/XResizeRequestEvent.3 -#usr/share/man/man3/XResizeWindow.3 -#usr/share/man/man3/XResourceManagerString.3 -#usr/share/man/man3/XRestackWindows.3 -#usr/share/man/man3/XRotateBuffers.3 -#usr/share/man/man3/XRotateWindowProperties.3 -#usr/share/man/man3/XSaveContext.3 -#usr/share/man/man3/XScreenNumberOfScreen.3 -#usr/share/man/man3/XScreenResourceString.3 -#usr/share/man/man3/XScreenSaverAllocInfo.3 -#usr/share/man/man3/XScreenSaverGetRegistered.3 -#usr/share/man/man3/XScreenSaverQueryExtension.3 -#usr/share/man/man3/XScreenSaverQueryInfo.3 -#usr/share/man/man3/XScreenSaverQueryVersion.3 -#usr/share/man/man3/XScreenSaverRegister.3 -#usr/share/man/man3/XScreenSaverSelectInput.3 -#usr/share/man/man3/XScreenSaverSetAttributes.3 -#usr/share/man/man3/XScreenSaverSuspend.3 -#usr/share/man/man3/XScreenSaverUnregister.3 -#usr/share/man/man3/XScreenSaverUnsetAttributes.3 -#usr/share/man/man3/XSegment.3 -#usr/share/man/man3/XSelectExtensionEvent.3 -#usr/share/man/man3/XSelectInput.3 -#usr/share/man/man3/XSelectionClearEvent.3 -#usr/share/man/man3/XSelectionEvent.3 -#usr/share/man/man3/XSelectionRequestEvent.3 -#usr/share/man/man3/XSendEvent.3 -#usr/share/man/man3/XSendExtensionEvent.3 -#usr/share/man/man3/XSetAccessControl.3 -#usr/share/man/man3/XSetAfterFunction.3 -#usr/share/man/man3/XSetArcMode.3 -#usr/share/man/man3/XSetBackground.3 -#usr/share/man/man3/XSetClassHint.3 -#usr/share/man/man3/XSetClipMask.3 -#usr/share/man/man3/XSetClipOrigin.3 -#usr/share/man/man3/XSetClipRectangles.3 -#usr/share/man/man3/XSetCloseDownMode.3 -#usr/share/man/man3/XSetCommand.3 -#usr/share/man/man3/XSetDashes.3 -#usr/share/man/man3/XSetDeviceButtonMapping.3 -#usr/share/man/man3/XSetDeviceFocus.3 -#usr/share/man/man3/XSetDeviceMode.3 -#usr/share/man/man3/XSetDeviceModifierMapping.3 -#usr/share/man/man3/XSetDeviceValuators.3 -#usr/share/man/man3/XSetErrorHandler.3 -#usr/share/man/man3/XSetEventQueueOwner.3 -#usr/share/man/man3/XSetFillRule.3 -#usr/share/man/man3/XSetFillStyle.3 -#usr/share/man/man3/XSetFont.3 -#usr/share/man/man3/XSetFontPath.3 -#usr/share/man/man3/XSetForeground.3 -#usr/share/man/man3/XSetFunction.3 -#usr/share/man/man3/XSetGraphicsExposure.3 -#usr/share/man/man3/XSetICFocus.3 -#usr/share/man/man3/XSetICValues.3 -#usr/share/man/man3/XSetIMValues.3 -#usr/share/man/man3/XSetIOErrorHandler.3 -#usr/share/man/man3/XSetIconName.3 -#usr/share/man/man3/XSetIconSizes.3 -#usr/share/man/man3/XSetInputFocus.3 -#usr/share/man/man3/XSetLineAttributes.3 -#usr/share/man/man3/XSetLocaleModifiers.3 -#usr/share/man/man3/XSetModifierMapping.3 -#usr/share/man/man3/XSetOCValues.3 -#usr/share/man/man3/XSetOMValues.3 -#usr/share/man/man3/XSetPlaneMask.3 -#usr/share/man/man3/XSetPointerMapping.3 -#usr/share/man/man3/XSetRGBColormaps.3 -#usr/share/man/man3/XSetRegion.3 -#usr/share/man/man3/XSetScreenSaver.3 -#usr/share/man/man3/XSetSelectionOwner.3 -#usr/share/man/man3/XSetState.3 -#usr/share/man/man3/XSetStipple.3 -#usr/share/man/man3/XSetSubwindowMode.3 -#usr/share/man/man3/XSetTSOrigin.3 -#usr/share/man/man3/XSetTextProperty.3 -#usr/share/man/man3/XSetTile.3 -#usr/share/man/man3/XSetTransientForHint.3 -#usr/share/man/man3/XSetWMClientMachine.3 -#usr/share/man/man3/XSetWMColormapWindows.3 -#usr/share/man/man3/XSetWMHints.3 -#usr/share/man/man3/XSetWMIconName.3 -#usr/share/man/man3/XSetWMName.3 -#usr/share/man/man3/XSetWMNormalHints.3 -#usr/share/man/man3/XSetWMProperties.3 -#usr/share/man/man3/XSetWMProtocols.3 -#usr/share/man/man3/XSetWMSizeHints.3 -#usr/share/man/man3/XSetWindowAttributes.3 -#usr/share/man/man3/XSetWindowBackground.3 -#usr/share/man/man3/XSetWindowBackgroundPixmap.3 -#usr/share/man/man3/XSetWindowBorder.3 -#usr/share/man/man3/XSetWindowBorderPixmap.3 -#usr/share/man/man3/XSetWindowBorderWidth.3 -#usr/share/man/man3/XSetWindowColormap.3 -#usr/share/man/man3/XShape.3 -#usr/share/man/man3/XShapeCombineMask.3 -#usr/share/man/man3/XShapeCombineRectangles.3 -#usr/share/man/man3/XShapeCombineRegion.3 -#usr/share/man/man3/XShapeCombineShape.3 -#usr/share/man/man3/XShapeGetRectangles.3 -#usr/share/man/man3/XShapeInputSelected.3 -#usr/share/man/man3/XShapeOffsetShape.3 -#usr/share/man/man3/XShapeQueryExtension.3 -#usr/share/man/man3/XShapeQueryExtents.3 -#usr/share/man/man3/XShapeQueryVersion.3 -#usr/share/man/man3/XShapeSelectInput.3 -#usr/share/man/man3/XShm.3 -#usr/share/man/man3/XShmAttach.3 -#usr/share/man/man3/XShmCreateImage.3 -#usr/share/man/man3/XShmCreatePixmap.3 -#usr/share/man/man3/XShmDetach.3 -#usr/share/man/man3/XShmGetEventBase.3 -#usr/share/man/man3/XShmGetImage.3 -#usr/share/man/man3/XShmPixmapFormat.3 -#usr/share/man/man3/XShmPutImage.3 -#usr/share/man/man3/XShmQueryExtension.3 -#usr/share/man/man3/XShmQueryVersion.3 -#usr/share/man/man3/XShrinkRegion.3 -#usr/share/man/man3/XSizeHints.3 -#usr/share/man/man3/XStandardColormap.3 -#usr/share/man/man3/XStoreBuffer.3 -#usr/share/man/man3/XStoreBytes.3 -#usr/share/man/man3/XStoreColor.3 -#usr/share/man/man3/XStoreColors.3 -#usr/share/man/man3/XStoreName.3 -#usr/share/man/man3/XStoreNamedColor.3 -#usr/share/man/man3/XStringListToTextProperty.3 -#usr/share/man/man3/XStringToKeysym.3 -#usr/share/man/man3/XSubImage.3 -#usr/share/man/man3/XSubtractRegion.3 -#usr/share/man/man3/XSupportsLocale.3 -#usr/share/man/man3/XSync.3 -#usr/share/man/man3/XSynchronize.3 -#usr/share/man/man3/XTestCompareCurrentCursorWithWindow.3 -#usr/share/man/man3/XTestCompareCursorWithWindow.3 -#usr/share/man/man3/XTestDiscard.3 -#usr/share/man/man3/XTestFakeButtonEvent.3 -#usr/share/man/man3/XTestFakeKeyEvent.3 -#usr/share/man/man3/XTestFakeMotionEvent.3 -#usr/share/man/man3/XTestFakeRelativeMotionEvent.3 -#usr/share/man/man3/XTestGrabControl.3 -#usr/share/man/man3/XTestQueryExtension.3 -#usr/share/man/man3/XTestSetGContextOfGC.3 -#usr/share/man/man3/XTestSetVisualIDOfVisual.3 -#usr/share/man/man3/XTextExtents.3 -#usr/share/man/man3/XTextExtents16.3 -#usr/share/man/man3/XTextItem.3 -#usr/share/man/man3/XTextItem16.3 -#usr/share/man/man3/XTextProperty.3 -#usr/share/man/man3/XTextPropertyToStringList.3 -#usr/share/man/man3/XTextWidth.3 -#usr/share/man/man3/XTextWidth16.3 -#usr/share/man/man3/XTimeCoord.3 -#usr/share/man/man3/XTranslateCoordinates.3 -#usr/share/man/man3/XUndefineCursor.3 -#usr/share/man/man3/XUngrabButton.3 -#usr/share/man/man3/XUngrabDevice.3 -#usr/share/man/man3/XUngrabDeviceButton.3 -#usr/share/man/man3/XUngrabDeviceKey.3 -#usr/share/man/man3/XUngrabKey.3 -#usr/share/man/man3/XUngrabKeyboard.3 -#usr/share/man/man3/XUngrabPointer.3 -#usr/share/man/man3/XUngrabServer.3 -#usr/share/man/man3/XUninstallColormap.3 -#usr/share/man/man3/XUnionRectWithRegion.3 -#usr/share/man/man3/XUnionRegion.3 -#usr/share/man/man3/XUniqueContext.3 -#usr/share/man/man3/XUnloadFont.3 -#usr/share/man/man3/XUnlockDisplay.3 -#usr/share/man/man3/XUnmapEvent.3 -#usr/share/man/man3/XUnmapSubwindows.3 -#usr/share/man/man3/XUnmapWindow.3 -#usr/share/man/man3/XUnregisterIMInstantiateCallback.3 -#usr/share/man/man3/XUnsetICFocus.3 -#usr/share/man/man3/XVaCreateNestedList.3 -#usr/share/man/man3/XVisibilityEvent.3 -#usr/share/man/man3/XVisualIDFromVisual.3 -#usr/share/man/man3/XVisualInfo.3 -#usr/share/man/man3/XWMGeometry.3 -#usr/share/man/man3/XWMHints.3 -#usr/share/man/man3/XWarpPointer.3 -#usr/share/man/man3/XWindowAttributes.3 -#usr/share/man/man3/XWindowChanges.3 -#usr/share/man/man3/XWindowEvent.3 -#usr/share/man/man3/XWithdrawWindow.3 -#usr/share/man/man3/XWriteBitmapFile.3 -#usr/share/man/man3/XXorRegion.3 -#usr/share/man/man3/Xau.3 -#usr/share/man/man3/XauDisposeAuth.3 -#usr/share/man/man3/XauFileName.3 -#usr/share/man/man3/XauGetAuthByAddr.3 -#usr/share/man/man3/XauGetBestAuthByAddr.3 -#usr/share/man/man3/XauLockAuth.3 -#usr/share/man/man3/XauReadAuth.3 -#usr/share/man/man3/XauUnlockAuth.3 -#usr/share/man/man3/XauWriteAuth.3 -#usr/share/man/man3/Xaw.3 -#usr/share/man/man3/XcmsAllocColor.3 -#usr/share/man/man3/XcmsAllocNamedColor.3 -#usr/share/man/man3/XcmsCCCOfColormap.3 -#usr/share/man/man3/XcmsCIELab.3 -#usr/share/man/man3/XcmsCIELabQueryMaxC.3 -#usr/share/man/man3/XcmsCIELabQueryMaxL.3 -#usr/share/man/man3/XcmsCIELabQueryMaxLC.3 -#usr/share/man/man3/XcmsCIELabQueryMinL.3 -#usr/share/man/man3/XcmsCIELuv.3 -#usr/share/man/man3/XcmsCIELuvQueryMaxC.3 -#usr/share/man/man3/XcmsCIELuvQueryMaxL.3 -#usr/share/man/man3/XcmsCIELuvQueryMaxLC.3 -#usr/share/man/man3/XcmsCIELuvQueryMinL.3 -#usr/share/man/man3/XcmsCIEXYZ.3 -#usr/share/man/man3/XcmsCIEuvY.3 -#usr/share/man/man3/XcmsCIExyY.3 -#usr/share/man/man3/XcmsColor.3 -#usr/share/man/man3/XcmsConvertColors.3 -#usr/share/man/man3/XcmsCreateCCC.3 -#usr/share/man/man3/XcmsDefaultCCC.3 -#usr/share/man/man3/XcmsFreeCCC.3 -#usr/share/man/man3/XcmsLookupColor.3 -#usr/share/man/man3/XcmsPad.3 -#usr/share/man/man3/XcmsQueryBlack.3 -#usr/share/man/man3/XcmsQueryBlue.3 -#usr/share/man/man3/XcmsQueryColor.3 -#usr/share/man/man3/XcmsQueryColors.3 -#usr/share/man/man3/XcmsQueryGreen.3 -#usr/share/man/man3/XcmsQueryRed.3 -#usr/share/man/man3/XcmsQueryWhite.3 -#usr/share/man/man3/XcmsRGB.3 -#usr/share/man/man3/XcmsRGBi.3 -#usr/share/man/man3/XcmsSetCCCOfColormap.3 -#usr/share/man/man3/XcmsSetWhiteAdjustProc.3 -#usr/share/man/man3/XcmsSetWhitePoint.3 -#usr/share/man/man3/XcmsStoreColor.3 -#usr/share/man/man3/XcmsStoreColors.3 -#usr/share/man/man3/XcmsTekHVC.3 -#usr/share/man/man3/XcmsTekHVCQueryMaxC.3 -#usr/share/man/man3/XcmsTekHVCQueryMaxV.3 -#usr/share/man/man3/XcmsTekHVCQueryMaxVC.3 -#usr/share/man/man3/XcmsTekHVCQueryMaxVSamples.3 -#usr/share/man/man3/XcmsTekHVCQueryMinV.3 -#usr/share/man/man3/Xcomposite.3 -#usr/share/man/man3/XcupGetReservedColormapEntries.3 -#usr/share/man/man3/XcupQueryVersion.3 -#usr/share/man/man3/XcupStoreColors.3 -#usr/share/man/man3/Xcursor.3 -#usr/share/man/man3/XcursorCursorsCreate.3 -#usr/share/man/man3/XcursorCursorsDestroy.3 -#usr/share/man/man3/XcursorFilenameLoad.3 -#usr/share/man/man3/XcursorFilenameLoadAllImages.3 -#usr/share/man/man3/XcursorFilenameLoadCursor.3 -#usr/share/man/man3/XcursorFilenameLoadImage.3 -#usr/share/man/man3/XcursorFilenameLoadImages.3 -#usr/share/man/man3/XcursorFilenameSave.3 -#usr/share/man/man3/XcursorFilenameSaveImages.3 -#usr/share/man/man3/XcursorGetDefaultSize.3 -#usr/share/man/man3/XcursorGetTheme.3 -#usr/share/man/man3/XcursorImageCreate.3 -#usr/share/man/man3/XcursorImageDestroy.3 -#usr/share/man/man3/XcursorImagesCreate.3 -#usr/share/man/man3/XcursorImagesDestroy.3 -#usr/share/man/man3/XcursorLibraryLoadCursor.3 -#usr/share/man/man3/XcursorLibraryLoadCursors.3 -#usr/share/man/man3/XcursorLibraryLoadImage.3 -#usr/share/man/man3/XcursorLibraryLoadImages.3 -#usr/share/man/man3/XcursorSetDefaultSize.3 -#usr/share/man/man3/XcursorSetTheme.3 -#usr/share/man/man3/XcursorShapeLoadCursor.3 -#usr/share/man/man3/XcursorShapeLoadCursors.3 -#usr/share/man/man3/XcursorShapeLoadImage.3 -#usr/share/man/man3/XcursorShapeLoadImages.3 -#usr/share/man/man3/XcursorSupportsARGB.3 -#usr/share/man/man3/XcursorXcFileLoad.3 -#usr/share/man/man3/XcursorXcFileLoadAllImages.3 -#usr/share/man/man3/XcursorXcFileLoadImage.3 -#usr/share/man/man3/XcursorXcFileLoadImages.3 -#usr/share/man/man3/XcursorXcFileSave.3 -#usr/share/man/man3/XdbeAllocateBackBufferName.3 -#usr/share/man/man3/XdbeBeginIdiom.3 -#usr/share/man/man3/XdbeDeallocateBackBufferName.3 -#usr/share/man/man3/XdbeEndIdiom.3 -#usr/share/man/man3/XdbeFreeVisualInfo.3 -#usr/share/man/man3/XdbeGetBackBufferAttributes.3 -#usr/share/man/man3/XdbeGetVisualInfo.3 -#usr/share/man/man3/XdbeQueryExtension.3 -#usr/share/man/man3/XdbeSwapBuffers.3 -#usr/share/man/man3/Xevi.3 -#usr/share/man/man3/XeviGetVisualInfo.3 -#usr/share/man/man3/XeviQueryExtension.3 -#usr/share/man/man3/XeviQueryVersion.3 -#usr/share/man/man3/Xfixes.3x -#usr/share/man/man3/Xfontcache.3 -#usr/share/man/man3/Xft.3 -#usr/share/man/man3/Xinerama.3 -#usr/share/man/man3/XineramaIsActive.3 -#usr/share/man/man3/XineramaQueryExtension.3 -#usr/share/man/man3/XineramaQueryScreens.3 -#usr/share/man/man3/XineramaQueryVersion.3 -#usr/share/man/man3/XkbActionCtrls.3 -#usr/share/man/man3/XkbAddDeviceLedInfo.3 -#usr/share/man/man3/XkbAddGeomColor.3 -#usr/share/man/man3/XkbAddGeomDoodad.3 -#usr/share/man/man3/XkbAddGeomKey.3 -#usr/share/man/man3/XkbAddGeomKeyAlias.3 -#usr/share/man/man3/XkbAddGeomOutline.3 -#usr/share/man/man3/XkbAddGeomOverlay.3 -#usr/share/man/man3/XkbAddGeomOverlayKey.3 -#usr/share/man/man3/XkbAddGeomOverlayRow.3 -#usr/share/man/man3/XkbAddGeomProperty.3 -#usr/share/man/man3/XkbAddGeomRow.3 -#usr/share/man/man3/XkbAddGeomSection.3 -#usr/share/man/man3/XkbAddGeomShape.3 -#usr/share/man/man3/XkbAddSymInterpret.3 -#usr/share/man/man3/XkbAllocClientMap.3 -#usr/share/man/man3/XkbAllocCompatMap.3 -#usr/share/man/man3/XkbAllocControls.3 -#usr/share/man/man3/XkbAllocDeviceInfo.3 -#usr/share/man/man3/XkbAllocDeviceLedInfo.3 -#usr/share/man/man3/XkbAllocGeomColors.3 -#usr/share/man/man3/XkbAllocGeomDoodads.3 -#usr/share/man/man3/XkbAllocGeomKeyAliases.3 -#usr/share/man/man3/XkbAllocGeomKeys.3 -#usr/share/man/man3/XkbAllocGeomOutlines.3 -#usr/share/man/man3/XkbAllocGeomOverlayKey.3 -#usr/share/man/man3/XkbAllocGeomOverlayRows.3 -#usr/share/man/man3/XkbAllocGeomOverlays.3 -#usr/share/man/man3/XkbAllocGeomPoints.3 -#usr/share/man/man3/XkbAllocGeomProps.3 -#usr/share/man/man3/XkbAllocGeomRows.3 -#usr/share/man/man3/XkbAllocGeomSectionDoodads.3 -#usr/share/man/man3/XkbAllocGeomSections.3 -#usr/share/man/man3/XkbAllocGeomShapes.3 -#usr/share/man/man3/XkbAllocGeometry.3 -#usr/share/man/man3/XkbAllocIndicatorMaps.3 -#usr/share/man/man3/XkbAllocKeyboard.3 -#usr/share/man/man3/XkbAllocNames.3 -#usr/share/man/man3/XkbAllocServerMap.3 -#usr/share/man/man3/XkbApplyCompatMapToKey.3 -#usr/share/man/man3/XkbBell.3 -#usr/share/man/man3/XkbBellEvent.3 -#usr/share/man/man3/XkbChangeControls.3 -#usr/share/man/man3/XkbChangeDeviceInfo.3 -#usr/share/man/man3/XkbChangeEnabledControls.3 -#usr/share/man/man3/XkbChangeIndicators.3 -#usr/share/man/man3/XkbChangeMap.3 -#usr/share/man/man3/XkbChangeNames.3 -#usr/share/man/man3/XkbChangeTypesOfKey.3 -#usr/share/man/man3/XkbComputeRowBounds.3 -#usr/share/man/man3/XkbComputeSectionBounds.3 -#usr/share/man/man3/XkbComputeShapeBounds.3 -#usr/share/man/man3/XkbComputeShapeTop.3 -#usr/share/man/man3/XkbCopyKeyType.3 -#usr/share/man/man3/XkbCopyKeyTypes.3 -#usr/share/man/man3/XkbDeviceBell.3 -#usr/share/man/man3/XkbDeviceBellEvent.3 -#usr/share/man/man3/XkbFindOverlayForKey.3 -#usr/share/man/man3/XkbForceBell.3 -#usr/share/man/man3/XkbForceDeviceBell.3 -#usr/share/man/man3/XkbFreeClientMap.3 -#usr/share/man/man3/XkbFreeCompatMap.3 -#usr/share/man/man3/XkbFreeComponentList.3 -#usr/share/man/man3/XkbFreeControls.3 -#usr/share/man/man3/XkbFreeDeviceInfo.3 -#usr/share/man/man3/XkbFreeGeomColors.3 -#usr/share/man/man3/XkbFreeGeomDoodads.3 -#usr/share/man/man3/XkbFreeGeomKeyAliases.3 -#usr/share/man/man3/XkbFreeGeomKeys.3 -#usr/share/man/man3/XkbFreeGeomOutlines.3 -#usr/share/man/man3/XkbFreeGeomOverlayKeys.3 -#usr/share/man/man3/XkbFreeGeomOverlayRows.3 -#usr/share/man/man3/XkbFreeGeomOverlays.3 -#usr/share/man/man3/XkbFreeGeomPoints.3 -#usr/share/man/man3/XkbFreeGeomProperties.3 -#usr/share/man/man3/XkbFreeGeomRows.3 -#usr/share/man/man3/XkbFreeGeomSections.3 -#usr/share/man/man3/XkbFreeGeomShapes.3 -#usr/share/man/man3/XkbFreeGeometry.3 -#usr/share/man/man3/XkbFreeIndicatorMaps.3 -#usr/share/man/man3/XkbFreeKeyboard.3 -#usr/share/man/man3/XkbFreeNames.3 -#usr/share/man/man3/XkbFreeServerMap.3 -#usr/share/man/man3/XkbGetAccessXTimeout.3 -#usr/share/man/man3/XkbGetAutoRepeatRate.3 -#usr/share/man/man3/XkbGetAutoResetControls.3 -#usr/share/man/man3/XkbGetBounceKeysDelay.3 -#usr/share/man/man3/XkbGetCompatMap.3 -#usr/share/man/man3/XkbGetControls.3 -#usr/share/man/man3/XkbGetControlsChanges.3 -#usr/share/man/man3/XkbGetDetectableAutorepeat.3 -#usr/share/man/man3/XkbGetDeviceButtonActions.3 -#usr/share/man/man3/XkbGetDeviceInfo.3 -#usr/share/man/man3/XkbGetDeviceInfoChanges.3 -#usr/share/man/man3/XkbGetDeviceLedInfo.3 -#usr/share/man/man3/XkbGetGeometry.3 -#usr/share/man/man3/XkbGetIndicatorChanges.3 -#usr/share/man/man3/XkbGetIndicatorMap.3 -#usr/share/man/man3/XkbGetIndicatorState.3 -#usr/share/man/man3/XkbGetKeyActions.3 -#usr/share/man/man3/XkbGetKeyBehaviors.3 -#usr/share/man/man3/XkbGetKeyExplicitComponents.3 -#usr/share/man/man3/XkbGetKeyModifierMap.3 -#usr/share/man/man3/XkbGetKeySyms.3 -#usr/share/man/man3/XkbGetKeyTypes.3 -#usr/share/man/man3/XkbGetKeyVirtualModMap.3 -#usr/share/man/man3/XkbGetKeyboard.3 -#usr/share/man/man3/XkbGetKeyboardByName.3 -#usr/share/man/man3/XkbGetMap.3 -#usr/share/man/man3/XkbGetNameChanges.3 -#usr/share/man/man3/XkbGetNamedGeometry.3 -#usr/share/man/man3/XkbGetNamedIndicator.3 -#usr/share/man/man3/XkbGetNames.3 -#usr/share/man/man3/XkbGetSlowKeysDelay.3 -#usr/share/man/man3/XkbGetState.3 -#usr/share/man/man3/XkbGetStickyKeysOptions.3 -#usr/share/man/man3/XkbGetUpdatedMap.3 -#usr/share/man/man3/XkbGetVirtualMods.3 -#usr/share/man/man3/XkbGetXlibControls.3 -#usr/share/man/man3/XkbIgnoreExtension.3 -#usr/share/man/man3/XkbInitCanonicalKeyTypes.3 -#usr/share/man/man3/XkbKeyAction.3 -#usr/share/man/man3/XkbKeyActionEntry.3 -#usr/share/man/man3/XkbKeyActionsPtr.3 -#usr/share/man/man3/XkbKeyGroupInfo.3 -#usr/share/man/man3/XkbKeyGroupWidth.3 -#usr/share/man/man3/XkbKeyGroupsWidth.3 -#usr/share/man/man3/XkbKeyHasActions.3 -#usr/share/man/man3/XkbKeyNumActions.3 -#usr/share/man/man3/XkbKeyNumGroups.3 -#usr/share/man/man3/XkbKeyNumSyms.3 -#usr/share/man/man3/XkbKeySymEntry.3 -#usr/share/man/man3/XkbKeySymsOffset.3 -#usr/share/man/man3/XkbKeySymsPtr.3 -#usr/share/man/man3/XkbKeyType.3 -#usr/share/man/man3/XkbKeyTypeIndex.3 -#usr/share/man/man3/XkbKeyTypesForCoreSymbols.3 -#usr/share/man/man3/XkbKeycodeToKeysym.3 -#usr/share/man/man3/XkbKeysymToModifiers.3 -#usr/share/man/man3/XkbLatchGroup.3 -#usr/share/man/man3/XkbLatchModifiers.3 -#usr/share/man/man3/XkbLibraryVersion.3 -#usr/share/man/man3/XkbListComponents.3 -#usr/share/man/man3/XkbLockGroup.3 -#usr/share/man/man3/XkbLockModifiers.3 -#usr/share/man/man3/XkbLookupKeyBinding.3 -#usr/share/man/man3/XkbLookupKeySym.3 -#usr/share/man/man3/XkbModActionVMods.3 -#usr/share/man/man3/XkbNoteControlsChanges.3 -#usr/share/man/man3/XkbNoteDeviceChanges.3 -#usr/share/man/man3/XkbNoteIndicatorChanges.3 -#usr/share/man/man3/XkbNoteNameChanges.3 -#usr/share/man/man3/XkbOpenDisplay.3 -#usr/share/man/man3/XkbOutOfRangeGroupInfo.3 -#usr/share/man/man3/XkbOutOfRangeGroupNumber.3 -#usr/share/man/man3/XkbPtrActionX.3 -#usr/share/man/man3/XkbPtrActionY.3 -#usr/share/man/man3/XkbQueryExtension.3 -#usr/share/man/man3/XkbRefreshKeyboardMapping.3 -#usr/share/man/man3/XkbResizeDeviceButtonActions.3 -#usr/share/man/man3/XkbResizeKeyActions.3 -#usr/share/man/man3/XkbResizeKeySyms.3 -#usr/share/man/man3/XkbResizeKeyType.3 -#usr/share/man/man3/XkbSAActionSetCtrls.3 -#usr/share/man/man3/XkbSAGroup.3 -#usr/share/man/man3/XkbSAPtrDfltValue.3 -#usr/share/man/man3/XkbSARedirectSetVMods.3 -#usr/share/man/man3/XkbSARedirectSetVModsMask.3 -#usr/share/man/man3/XkbSARedirectVMods.3 -#usr/share/man/man3/XkbSARedirectVModsMask.3 -#usr/share/man/man3/XkbSAScreen.3 -#usr/share/man/man3/XkbSASetGroup.3 -#usr/share/man/man3/XkbSASetPtrDfltValue.3 -#usr/share/man/man3/XkbSASetScreen.3 -#usr/share/man/man3/XkbSelectEventDetails.3 -#usr/share/man/man3/XkbSelectEvents.3 -#usr/share/man/man3/XkbSetAccessXTimeout.3 -#usr/share/man/man3/XkbSetAutoRepeatRate.3 -#usr/share/man/man3/XkbSetAutoResetControls.3 -#usr/share/man/man3/XkbSetBounceKeysDelay.3 -#usr/share/man/man3/XkbSetCompatMap.3 -#usr/share/man/man3/XkbSetControls.3 -#usr/share/man/man3/XkbSetDebuggingFlags.3 -#usr/share/man/man3/XkbSetDetectableAutorepeat.3 -#usr/share/man/man3/XkbSetDeviceButtonActions.3 -#usr/share/man/man3/XkbSetDeviceInfo.3 -#usr/share/man/man3/XkbSetIgnoreLockMods.3 -#usr/share/man/man3/XkbSetIndicatorMap.3 -#usr/share/man/man3/XkbSetMap.3 -#usr/share/man/man3/XkbSetModActionVMods.3 -#usr/share/man/man3/XkbSetNamedIndicator.3 -#usr/share/man/man3/XkbSetNames.3 -#usr/share/man/man3/XkbSetPtrActionX.3 -#usr/share/man/man3/XkbSetPtrActionY.3 -#usr/share/man/man3/XkbSetServerInternalMods.3 -#usr/share/man/man3/XkbSetXlibControls.3 -#usr/share/man/man3/XkbTranslateKeyCode.3 -#usr/share/man/man3/XkbTranslateKeySym.3 -#usr/share/man/man3/XkbUpdateMapFromCore.3 -#usr/share/man/man3/XkbVirtualModsToReal.3 -#usr/share/man/man3/XmbDrawImageString.3 -#usr/share/man/man3/XmbDrawString.3 -#usr/share/man/man3/XmbDrawText.3 -#usr/share/man/man3/XmbLookupString.3 -#usr/share/man/man3/XmbResetIC.3 -#usr/share/man/man3/XmbSetWMProperties.3 -#usr/share/man/man3/XmbTextEscapement.3 -#usr/share/man/man3/XmbTextExtents.3 -#usr/share/man/man3/XmbTextListToTextProperty.3 -#usr/share/man/man3/XmbTextPerCharExtents.3 -#usr/share/man/man3/XmbTextPropertyToTextList.3 -#usr/share/man/man3/Xmbuf.3 -#usr/share/man/man3/XmbufChangeBufferAttributes.3 -#usr/share/man/man3/XmbufChangeWindowAttributes.3 -#usr/share/man/man3/XmbufCreateBuffers.3 -#usr/share/man/man3/XmbufCreateStereoWindow.3 -#usr/share/man/man3/XmbufDestroyBuffers.3 -#usr/share/man/man3/XmbufDisplayBuffers.3 -#usr/share/man/man3/XmbufGetBufferAttributes.3 -#usr/share/man/man3/XmbufGetScreenInfo.3 -#usr/share/man/man3/XmbufGetVersion.3 -#usr/share/man/man3/XmbufGetWindowAttributes.3 -#usr/share/man/man3/XmbufQueryExtension.3 -#usr/share/man/man3/Xrandr.3 -#usr/share/man/man3/XrmCombineDatabase.3 -#usr/share/man/man3/XrmCombineFileDatabase.3 -#usr/share/man/man3/XrmDestroyDatabase.3 -#usr/share/man/man3/XrmEnumerateDatabase.3 -#usr/share/man/man3/XrmGetDatabase.3 -#usr/share/man/man3/XrmGetFileDatabase.3 -#usr/share/man/man3/XrmGetResource.3 -#usr/share/man/man3/XrmGetStringDatabase.3 -#usr/share/man/man3/XrmInitialize.3 -#usr/share/man/man3/XrmLocaleOfDatabase.3 -#usr/share/man/man3/XrmMergeDatabases.3 -#usr/share/man/man3/XrmOptionDescRec.3 -#usr/share/man/man3/XrmOptionKind.3 -#usr/share/man/man3/XrmParseCommand.3 -#usr/share/man/man3/XrmPermStringToQuark.3 -#usr/share/man/man3/XrmPutFileDatabase.3 -#usr/share/man/man3/XrmPutLineResource.3 -#usr/share/man/man3/XrmPutResource.3 -#usr/share/man/man3/XrmPutStringResource.3 -#usr/share/man/man3/XrmQGetResource.3 -#usr/share/man/man3/XrmQGetSearchList.3 -#usr/share/man/man3/XrmQGetSearchResource.3 -#usr/share/man/man3/XrmQPutResource.3 -#usr/share/man/man3/XrmQPutStringResource.3 -#usr/share/man/man3/XrmQuarkToString.3 -#usr/share/man/man3/XrmSetDatabase.3 -#usr/share/man/man3/XrmStringToBindingQuarkList.3 -#usr/share/man/man3/XrmStringToQuark.3 -#usr/share/man/man3/XrmStringToQuarkList.3 -#usr/share/man/man3/XrmUniqueQuark.3 -#usr/share/man/man3/XrmValue.3 -#usr/share/man/man3/Xss.3 -#usr/share/man/man3/XtAddActions.3 -#usr/share/man/man3/XtAddCallback.3 -#usr/share/man/man3/XtAddCallbacks.3 -#usr/share/man/man3/XtAddConverter.3 -#usr/share/man/man3/XtAddEventHandler.3 -#usr/share/man/man3/XtAddExposureToRegion.3 -#usr/share/man/man3/XtAddGrab.3 -#usr/share/man/man3/XtAddInput.3 -#usr/share/man/man3/XtAddRawEventHandler.3 -#usr/share/man/man3/XtAddTimeOut.3 -#usr/share/man/man3/XtAddWorkProc.3 -#usr/share/man/man3/XtAllocateGC.3 -#usr/share/man/man3/XtAppAddActionHook.3 -#usr/share/man/man3/XtAppAddActions.3 -#usr/share/man/man3/XtAppAddBlockHook.3 -#usr/share/man/man3/XtAppAddConverter.3 -#usr/share/man/man3/XtAppAddInput.3 -#usr/share/man/man3/XtAppAddSignal.3 -#usr/share/man/man3/XtAppAddTimeOut.3 -#usr/share/man/man3/XtAppAddWorkProc.3 -#usr/share/man/man3/XtAppCreateShell.3 -#usr/share/man/man3/XtAppError.3 -#usr/share/man/man3/XtAppErrorMsg.3 -#usr/share/man/man3/XtAppGetErrorDatabase.3 -#usr/share/man/man3/XtAppGetErrorDatabaseText.3 -#usr/share/man/man3/XtAppGetExitFlag.3 -#usr/share/man/man3/XtAppGetSelectionTimeout.3 -#usr/share/man/man3/XtAppInitialize.3 -#usr/share/man/man3/XtAppLock.3 -#usr/share/man/man3/XtAppMainLoop.3 -#usr/share/man/man3/XtAppNextEvent.3 -#usr/share/man/man3/XtAppPeekEvent.3 -#usr/share/man/man3/XtAppPending.3 -#usr/share/man/man3/XtAppProcessEvent.3 -#usr/share/man/man3/XtAppReleaseCacheRefs.3 -#usr/share/man/man3/XtAppSetErrorHandler.3 -#usr/share/man/man3/XtAppSetErrorMsgHandler.3 -#usr/share/man/man3/XtAppSetExitFlag.3 -#usr/share/man/man3/XtAppSetFallbackResources.3 -#usr/share/man/man3/XtAppSetSelectionTimeout.3 -#usr/share/man/man3/XtAppSetTypeConverter.3 -#usr/share/man/man3/XtAppSetWarningHandler.3 -#usr/share/man/man3/XtAppSetWarningMsgHandler.3 -#usr/share/man/man3/XtAppUnlock.3 -#usr/share/man/man3/XtAppWarning.3 -#usr/share/man/man3/XtAppWarningMsg.3 -#usr/share/man/man3/XtAugmentTranslations.3 -#usr/share/man/man3/XtBuildEventMask.3 -#usr/share/man/man3/XtCallAcceptFocus.3 -#usr/share/man/man3/XtCallActionProc.3 -#usr/share/man/man3/XtCallCallbackList.3 -#usr/share/man/man3/XtCallCallbacks.3 -#usr/share/man/man3/XtCallConverter.3 -#usr/share/man/man3/XtCallbackExclusive.3 -#usr/share/man/man3/XtCallbackNone.3 -#usr/share/man/man3/XtCallbackNonexclusive.3 -#usr/share/man/man3/XtCallbackPopdown.3 -#usr/share/man/man3/XtCalloc.3 -#usr/share/man/man3/XtCancelSelectionRequest.3 -#usr/share/man/man3/XtChangeManagedSet.3 -#usr/share/man/man3/XtCheckSubclass.3 -#usr/share/man/man3/XtClass.3 -#usr/share/man/man3/XtCloseDisplay.3 -#usr/share/man/man3/XtConfigureWidget.3 -#usr/share/man/man3/XtConvert.3 -#usr/share/man/man3/XtConvertAndStore.3 -#usr/share/man/man3/XtConvertCase.3 -#usr/share/man/man3/XtCreateApplicationContext.3 -#usr/share/man/man3/XtCreateApplicationShell.3 -#usr/share/man/man3/XtCreateManagedWidget.3 -#usr/share/man/man3/XtCreatePopupShell.3 -#usr/share/man/man3/XtCreateSelectionRequest.3 -#usr/share/man/man3/XtCreateWidget.3 -#usr/share/man/man3/XtCreateWindow.3 -#usr/share/man/man3/XtDatabase.3 -#usr/share/man/man3/XtDestroyApplicationContext.3 -#usr/share/man/man3/XtDestroyWidget.3 -#usr/share/man/man3/XtDirectConvert.3 -#usr/share/man/man3/XtDisownSelection.3 -#usr/share/man/man3/XtDispatchEvent.3 -#usr/share/man/man3/XtDispatchEventToWidget.3 -#usr/share/man/man3/XtDisplay.3 -#usr/share/man/man3/XtDisplayInitialize.3 -#usr/share/man/man3/XtDisplayOfObject.3 -#usr/share/man/man3/XtDisplayStringConversionWarning.3 -#usr/share/man/man3/XtDisplayToApplicationContext.3 -#usr/share/man/man3/XtError.3 -#usr/share/man/man3/XtErrorMsg.3 -#usr/share/man/man3/XtFindFile.3 -#usr/share/man/man3/XtFree.3 -#usr/share/man/man3/XtGetActionKeysym.3 -#usr/share/man/man3/XtGetActionList.3 -#usr/share/man/man3/XtGetApplicationNameAndClass.3 -#usr/share/man/man3/XtGetApplicationResources.3 -#usr/share/man/man3/XtGetClassExtension.3 -#usr/share/man/man3/XtGetConstraintResourceList.3 -#usr/share/man/man3/XtGetDisplays.3 -#usr/share/man/man3/XtGetErrorDatabase.3 -#usr/share/man/man3/XtGetErrorDatabaseText.3 -#usr/share/man/man3/XtGetGC.3 -#usr/share/man/man3/XtGetKeyboardFocusWidget.3 -#usr/share/man/man3/XtGetKeysymTable.3 -#usr/share/man/man3/XtGetMultiClickTime.3 -#usr/share/man/man3/XtGetResourceList.3 -#usr/share/man/man3/XtGetSelectionParameters.3 -#usr/share/man/man3/XtGetSelectionRequest.3 -#usr/share/man/man3/XtGetSelectionTimeout.3 -#usr/share/man/man3/XtGetSelectionValue.3 -#usr/share/man/man3/XtGetSelectionValueIncremental.3 -#usr/share/man/man3/XtGetSelectionValues.3 -#usr/share/man/man3/XtGetSelectionValuesIncremental.3 -#usr/share/man/man3/XtGetSubresources.3 -#usr/share/man/man3/XtGetSubvalues.3 -#usr/share/man/man3/XtGetValues.3 -#usr/share/man/man3/XtGrabButton.3 -#usr/share/man/man3/XtGrabKey.3 -#usr/share/man/man3/XtGrabKeyboard.3 -#usr/share/man/man3/XtGrabPointer.3 -#usr/share/man/man3/XtHasCallbacks.3 -#usr/share/man/man3/XtHooksOfDisplay.3 -#usr/share/man/man3/XtInitialize.3 -#usr/share/man/man3/XtInitializeWidgetClass.3 -#usr/share/man/man3/XtInsertEventHandler.3 -#usr/share/man/man3/XtInsertEventTypeHandler.3 -#usr/share/man/man3/XtInsertRawEventHandler.3 -#usr/share/man/man3/XtInstallAccelerators.3 -#usr/share/man/man3/XtInstallAllAccelerators.3 -#usr/share/man/man3/XtIsApplicationShell.3 -#usr/share/man/man3/XtIsComposite.3 -#usr/share/man/man3/XtIsConstraint.3 -#usr/share/man/man3/XtIsManaged.3 -#usr/share/man/man3/XtIsObject.3 -#usr/share/man/man3/XtIsOverrideShell.3 -#usr/share/man/man3/XtIsRealized.3 -#usr/share/man/man3/XtIsRectObj.3 -#usr/share/man/man3/XtIsSensitive.3 -#usr/share/man/man3/XtIsSessionShell.3 -#usr/share/man/man3/XtIsShell.3 -#usr/share/man/man3/XtIsSubclass.3 -#usr/share/man/man3/XtIsTopLevelShell.3 -#usr/share/man/man3/XtIsTransientShell.3 -#usr/share/man/man3/XtIsVendorShell.3 -#usr/share/man/man3/XtIsWMShell.3 -#usr/share/man/man3/XtIsWidget.3 -#usr/share/man/man3/XtKeysymToKeycodeList.3 -#usr/share/man/man3/XtLastEventProcessed.3 -#usr/share/man/man3/XtLastTimestampProcessed.3 -#usr/share/man/man3/XtMainLoop.3 -#usr/share/man/man3/XtMakeGeometryRequest.3 -#usr/share/man/man3/XtMakeResizeRequest.3 -#usr/share/man/man3/XtMalloc.3 -#usr/share/man/man3/XtManageChild.3 -#usr/share/man/man3/XtManageChildren.3 -#usr/share/man/man3/XtMapWidget.3 -#usr/share/man/man3/XtMergeArgLists.3 -#usr/share/man/man3/XtMoveWidget.3 -#usr/share/man/man3/XtName.3 -#usr/share/man/man3/XtNameToWidget.3 -#usr/share/man/man3/XtNew.3 -#usr/share/man/man3/XtNewString.3 -#usr/share/man/man3/XtNextEvent.3 -#usr/share/man/man3/XtNoticeSignal.3 -#usr/share/man/man3/XtNumber.3 -#usr/share/man/man3/XtOffset.3 -#usr/share/man/man3/XtOffsetOf.3 -#usr/share/man/man3/XtOpenApplication.3 -#usr/share/man/man3/XtOpenDisplay.3 -#usr/share/man/man3/XtOverrideTranslations.3 -#usr/share/man/man3/XtOwnSelection.3 -#usr/share/man/man3/XtOwnSelectionIncremental.3 -#usr/share/man/man3/XtParent.3 -#usr/share/man/man3/XtParseAcceleratorTable.3 -#usr/share/man/man3/XtParseTranslationTable.3 -#usr/share/man/man3/XtPeekEvent.3 -#usr/share/man/man3/XtPending.3 -#usr/share/man/man3/XtPopdown.3 -#usr/share/man/man3/XtPopup.3 -#usr/share/man/man3/XtPopupSpringLoaded.3 -#usr/share/man/man3/XtProcessEvent.3 -#usr/share/man/man3/XtProcessLock.3 -#usr/share/man/man3/XtProcessUnlock.3 -#usr/share/man/man3/XtQueryGeometry.3 -#usr/share/man/man3/XtRealizeWidget.3 -#usr/share/man/man3/XtRealloc.3 -#usr/share/man/man3/XtRegisterCaseConverter.3 -#usr/share/man/man3/XtRegisterDrawable.3 -#usr/share/man/man3/XtRegisterExtensionSelector.3 -#usr/share/man/man3/XtRegisterGrabAction.3 -#usr/share/man/man3/XtReleaseGC.3 -#usr/share/man/man3/XtReleasePropertyAtom.3 -#usr/share/man/man3/XtRemoveActionHook.3 -#usr/share/man/man3/XtRemoveAllCallbacks.3 -#usr/share/man/man3/XtRemoveBlockHook.3 -#usr/share/man/man3/XtRemoveCallback.3 -#usr/share/man/man3/XtRemoveCallbacks.3 -#usr/share/man/man3/XtRemoveEventHandler.3 -#usr/share/man/man3/XtRemoveEventTypeHandler.3 -#usr/share/man/man3/XtRemoveGrab.3 -#usr/share/man/man3/XtRemoveInput.3 -#usr/share/man/man3/XtRemoveRawEventHandler.3 -#usr/share/man/man3/XtRemoveSignal.3 -#usr/share/man/man3/XtRemoveTimeOut.3 -#usr/share/man/man3/XtRemoveWorkProc.3 -#usr/share/man/man3/XtReservePropertyAtom.3 -#usr/share/man/man3/XtResizeWidget.3 -#usr/share/man/man3/XtResolvePathname.3 -#usr/share/man/man3/XtScreen.3 -#usr/share/man/man3/XtScreenDatabase.3 -#usr/share/man/man3/XtScreenOfObject.3 -#usr/share/man/man3/XtSendSelectionRequest.3 -#usr/share/man/man3/XtSessionGetToken.3 -#usr/share/man/man3/XtSessionReturnToken.3 -#usr/share/man/man3/XtSetArg.3 -#usr/share/man/man3/XtSetErrorHandler.3 -#usr/share/man/man3/XtSetErrorMsgHandler.3 -#usr/share/man/man3/XtSetEventDispatcher.3 -#usr/share/man/man3/XtSetKeyTranslator.3 -#usr/share/man/man3/XtSetKeyboardFocus.3 -#usr/share/man/man3/XtSetLanguageProc.3 -#usr/share/man/man3/XtSetMappedWhenManaged.3 -#usr/share/man/man3/XtSetMultiClickTime.3 -#usr/share/man/man3/XtSetSelectionParameters.3 -#usr/share/man/man3/XtSetSelectionTimeout.3 -#usr/share/man/man3/XtSetSensitive.3 -#usr/share/man/man3/XtSetSubvalues.3 -#usr/share/man/man3/XtSetTypeConverter.3 -#usr/share/man/man3/XtSetValues.3 -#usr/share/man/man3/XtSetWMColormapWindows.3 -#usr/share/man/man3/XtSetWarningHandler.3 -#usr/share/man/man3/XtSetWarningMsgHandler.3 -#usr/share/man/man3/XtStringConversionWarning.3 -#usr/share/man/man3/XtSuperclass.3 -#usr/share/man/man3/XtToolkitInitialize.3 -#usr/share/man/man3/XtToolkitThreadInitialize.3 -#usr/share/man/man3/XtTranslateCoords.3 -#usr/share/man/man3/XtTranslateKeycode.3 -#usr/share/man/man3/XtUngrabButton.3 -#usr/share/man/man3/XtUngrabKey.3 -#usr/share/man/man3/XtUngrabKeyboard.3 -#usr/share/man/man3/XtUngrabPointer.3 -#usr/share/man/man3/XtUninstallTranslations.3 -#usr/share/man/man3/XtUnmanageChild.3 -#usr/share/man/man3/XtUnmanageChildren.3 -#usr/share/man/man3/XtUnmapWidget.3 -#usr/share/man/man3/XtUnrealizeWidget.3 -#usr/share/man/man3/XtUnregisterDrawable.3 -#usr/share/man/man3/XtVaAppCreateShell.3 -#usr/share/man/man3/XtVaAppInitialize.3 -#usr/share/man/man3/XtVaCreateArgsList.3 -#usr/share/man/man3/XtVaCreateManagedWidget.3 -#usr/share/man/man3/XtVaCreatePopupShell.3 -#usr/share/man/man3/XtVaCreateWidget.3 -#usr/share/man/man3/XtVaGetApplicationResources.3 -#usr/share/man/man3/XtVaGetSubresources.3 -#usr/share/man/man3/XtVaGetSubvalues.3 -#usr/share/man/man3/XtVaGetValues.3 -#usr/share/man/man3/XtVaOpenApplication.3 -#usr/share/man/man3/XtVaSetSubvalues.3 -#usr/share/man/man3/XtVaSetValues.3 -#usr/share/man/man3/XtWarning.3 -#usr/share/man/man3/XtWarningMsg.3 -#usr/share/man/man3/XtWidgetToApplicationContext.3 -#usr/share/man/man3/XtWindow.3 -#usr/share/man/man3/XtWindowOfObject.3 -#usr/share/man/man3/XtWindowToWidget.3 -#usr/share/man/man3/Xutf8DrawImageString.3 -#usr/share/man/man3/Xutf8DrawString.3 -#usr/share/man/man3/Xutf8DrawText.3 -#usr/share/man/man3/Xutf8LookupString.3 -#usr/share/man/man3/Xutf8ResetIC.3 -#usr/share/man/man3/Xutf8SetWMProperties.3 -#usr/share/man/man3/Xutf8TextEscapement.3 -#usr/share/man/man3/Xutf8TextExtents.3 -#usr/share/man/man3/Xutf8TextListToTextProperty.3 -#usr/share/man/man3/Xutf8TextPerCharExtents.3 -#usr/share/man/man3/Xutf8TextPropertyToTextList.3 -#usr/share/man/man3/Xv.3 -#usr/share/man/man3/XvFreeAdaptorInfo.3 -#usr/share/man/man3/XvFreeEncodingInfo.3 -#usr/share/man/man3/XvGetPortAttribute.3 -#usr/share/man/man3/XvGetStill.3 -#usr/share/man/man3/XvGetVideo.3 -#usr/share/man/man3/XvGrabPort.3 -#usr/share/man/man3/XvPortNotify.3 -#usr/share/man/man3/XvPutStill.3 -#usr/share/man/man3/XvPutVideo.3 -#usr/share/man/man3/XvQueryAdaptors.3 -#usr/share/man/man3/XvQueryBestSize.3 -#usr/share/man/man3/XvQueryEncodings.3 -#usr/share/man/man3/XvQueryExtension.3 -#usr/share/man/man3/XvSelectPortNotify.3 -#usr/share/man/man3/XvSelectVideoNotify.3 -#usr/share/man/man3/XvSetPortAttribute.3 -#usr/share/man/man3/XvStopVideo.3 -#usr/share/man/man3/XvUngrabPort.3 -#usr/share/man/man3/XvVideoNotify.3 -#usr/share/man/man3/XwcDrawImageString.3 -#usr/share/man/man3/XwcDrawString.3 -#usr/share/man/man3/XwcDrawText.3 -#usr/share/man/man3/XwcFreeStringList.3 -#usr/share/man/man3/XwcLookupString.3 -#usr/share/man/man3/XwcResetIC.3 -#usr/share/man/man3/XwcTextEscapement.3 -#usr/share/man/man3/XwcTextExtents.3 -#usr/share/man/man3/XwcTextListToTextProperty.3 -#usr/share/man/man3/XwcTextPerCharExtents.3 -#usr/share/man/man3/XwcTextPropertyToTextList.3 -usr/share/xcb -usr/share/xcb/bigreq.xml -usr/share/xcb/composite.xml -usr/share/xcb/damage.xml -usr/share/xcb/dpms.xml -usr/share/xcb/glx.xml -usr/share/xcb/randr.xml -usr/share/xcb/record.xml -usr/share/xcb/render.xml -usr/share/xcb/res.xml -usr/share/xcb/screensaver.xml -usr/share/xcb/shape.xml -usr/share/xcb/shm.xml -usr/share/xcb/sync.xml -usr/share/xcb/xc_misc.xml -usr/share/xcb/xcb.xsd -usr/share/xcb/xevie.xml -usr/share/xcb/xf86dri.xml -usr/share/xcb/xfixes.xml -usr/share/xcb/xinerama.xml -usr/share/xcb/xprint.xml -usr/share/xcb/xproto.xml -usr/share/xcb/xtest.xml -usr/share/xcb/xv.xml -usr/share/xcb/xvmc.xml diff --git a/config/rootfiles/packages/xen-disabled b/config/rootfiles/packages/xen-disabled deleted file mode 100644 index 2ecc82d..0000000 --- a/config/rootfiles/packages/xen-disabled +++ /dev/null @@ -1,667 +0,0 @@ -boot/xen-3.4.0.gz -boot/xen-3.4.gz -boot/xen-3.gz -boot/xen-syms-3.4.0 -boot/xen.gz -etc/rc.d/init.d/xend -etc/rc.d/init.d/xendomains -etc/sysconfig/xendomains -etc/udev/rules.d/xen-backend.rules -etc/udev/rules.d/xend.rules -etc/udev/xen-backend.rules -etc/udev/xend.rules -etc/xen -#etc/xen/README -#etc/xen/README.incompatibilities -etc/xen/auto -etc/xen/qemu-ifup -etc/xen/scripts -etc/xen/scripts/block -etc/xen/scripts/block-common.sh -etc/xen/scripts/block-enbd -etc/xen/scripts/block-nbd -etc/xen/scripts/external-device-migrate -etc/xen/scripts/locking.sh -etc/xen/scripts/logging.sh -etc/xen/scripts/network-bridge -etc/xen/scripts/network-nat -etc/xen/scripts/network-route -etc/xen/scripts/vif-bridge -etc/xen/scripts/vif-common.sh -etc/xen/scripts/vif-nat -etc/xen/scripts/vif-route -etc/xen/scripts/vscsi -etc/xen/scripts/vtpm -etc/xen/scripts/vtpm-common.sh -etc/xen/scripts/vtpm-delete -etc/xen/scripts/vtpm-hotplug-common.sh -etc/xen/scripts/vtpm-impl -etc/xen/scripts/vtpm-migration.sh -etc/xen/scripts/xen-hotplug-cleanup -etc/xen/scripts/xen-hotplug-common.sh -etc/xen/scripts/xen-network-common.sh -etc/xen/scripts/xen-script-common.sh -etc/xen/xend-config.sxp -etc/xen/xend-pci-permissive.sxp -etc/xen/xend-pci-quirks.sxp -etc/xen/xm-config.xml -etc/xen/xmexample.hvm -#etc/xen/xmexample.hvm-dm -etc/xen/xmexample.hvm-stubdom -etc/xen/xmexample.nbd -etc/xen/xmexample.pv-grub -etc/xen/xmexample.vti -etc/xen/xmexample1 -etc/xen/xmexample2 -etc/xen/xmexample3 -usr/bin/pygrub -usr/bin/qemu-img-xen -usr/bin/qemu-nbd-xen -usr/bin/xen-detect -usr/bin/xencons -usr/bin/xenstore -usr/bin/xenstore-chmod -usr/bin/xenstore-control -usr/bin/xenstore-exists -usr/bin/xenstore-list -usr/bin/xenstore-ls -usr/bin/xenstore-read -usr/bin/xenstore-rm -usr/bin/xenstore-write -usr/bin/xentrace -usr/bin/xentrace_format -usr/bin/xentrace_setsize -#usr/include/blktaplib.h -#usr/include/flask.h -#usr/include/fsimage.h -#usr/include/fsimage_grub.h -#usr/include/fsimage_plugin.h -#usr/include/xen -#usr/include/xen/COPYING -#usr/include/xen/arch-ia64 -#usr/include/xen/arch-ia64.h -#usr/include/xen/arch-ia64/debug_op.h -#usr/include/xen/arch-ia64/hvm -#usr/include/xen/arch-ia64/hvm/memmap.h -#usr/include/xen/arch-ia64/hvm/save.h -#usr/include/xen/arch-ia64/sioemu.h -#usr/include/xen/arch-x86 -#usr/include/xen/arch-x86/cpuid.h -#usr/include/xen/arch-x86/hvm -#usr/include/xen/arch-x86/hvm/save.h -#usr/include/xen/arch-x86/xen-mca.h -#usr/include/xen/arch-x86/xen-x86_32.h -#usr/include/xen/arch-x86/xen-x86_64.h -#usr/include/xen/arch-x86/xen.h -#usr/include/xen/arch-x86_32.h -#usr/include/xen/arch-x86_64.h -#usr/include/xen/callback.h -#usr/include/xen/dom0_ops.h -#usr/include/xen/domctl.h -#usr/include/xen/elfnote.h -#usr/include/xen/event_channel.h -#usr/include/xen/features.h -#usr/include/xen/foreign -#usr/include/xen/foreign/ia64.h -#usr/include/xen/foreign/x86_32.h -#usr/include/xen/foreign/x86_64.h -#usr/include/xen/grant_table.h -#usr/include/xen/hvm -#usr/include/xen/hvm/e820.h -#usr/include/xen/hvm/hvm_info_table.h -#usr/include/xen/hvm/hvm_op.h -#usr/include/xen/hvm/ioreq.h -#usr/include/xen/hvm/params.h -#usr/include/xen/hvm/save.h -#usr/include/xen/io -#usr/include/xen/io/blkif.h -#usr/include/xen/io/console.h -#usr/include/xen/io/fbif.h -#usr/include/xen/io/fsif.h -#usr/include/xen/io/kbdif.h -#usr/include/xen/io/netif.h -#usr/include/xen/io/pciif.h -#usr/include/xen/io/protocols.h -#usr/include/xen/io/ring.h -#usr/include/xen/io/tpmif.h -#usr/include/xen/io/usbif.h -#usr/include/xen/io/vscsiif.h -#usr/include/xen/io/xenbus.h -#usr/include/xen/io/xs_wire.h -#usr/include/xen/kexec.h -#usr/include/xen/memory.h -#usr/include/xen/nmi.h -#usr/include/xen/physdev.h -#usr/include/xen/platform.h -#usr/include/xen/sched.h -#usr/include/xen/sys -#usr/include/xen/sys/evtchn.h -#usr/include/xen/sys/gntdev.h -#usr/include/xen/sys/privcmd.h -#usr/include/xen/sysctl.h -#usr/include/xen/trace.h -#usr/include/xen/vcpu.h -#usr/include/xen/version.h -#usr/include/xen/xen-compat.h -#usr/include/xen/xen.h -#usr/include/xen/xencomm.h -#usr/include/xen/xenoprof.h -#usr/include/xen/xsm -#usr/include/xen/xsm/acm.h -#usr/include/xen/xsm/acm_ops.h -#usr/include/xen/xsm/flask_op.h -#usr/include/xenctrl.h -#usr/include/xenguest.h -#usr/include/xs.h -#usr/include/xs_lib.h -usr/lib/fs -usr/lib/fs/ext2fs-lib -usr/lib/fs/ext2fs-lib/fsimage.so -usr/lib/fs/fat -usr/lib/fs/fat/fsimage.so -usr/lib/fs/iso9660 -usr/lib/fs/iso9660/fsimage.so -usr/lib/fs/reiserfs -usr/lib/fs/reiserfs/fsimage.so -usr/lib/fs/ufs -usr/lib/fs/ufs/fsimage.so -usr/lib/fs/zfs -usr/lib/fs/zfs/fsimage.so -#usr/lib/libblktap.a -usr/lib/libblktap.so -usr/lib/libblktap.so.3.0 -usr/lib/libblktap.so.3.0.0 -#usr/lib/libflask.a -usr/lib/libflask.so -usr/lib/libflask.so.1.0 -usr/lib/libflask.so.1.0.0 -usr/lib/libfsimage.so -usr/lib/libfsimage.so.1.0 -usr/lib/libfsimage.so.1.0.0 -#usr/lib/libxenctrl.a -usr/lib/libxenctrl.so -usr/lib/libxenctrl.so.3.4 -usr/lib/libxenctrl.so.3.4.0 -#usr/lib/libxenguest.a -usr/lib/libxenguest.so -usr/lib/libxenguest.so.3.4 -usr/lib/libxenguest.so.3.4.0 -#usr/lib/libxenstore.a -usr/lib/libxenstore.so -usr/lib/libxenstore.so.3.0 -usr/lib/libxenstore.so.3.0.0 -usr/lib/python2.4/site-packages/fsimage.so -usr/lib/python2.4/site-packages/grub -usr/lib/python2.4/site-packages/grub/GrubConf.py -usr/lib/python2.4/site-packages/grub/GrubConf.pyc -usr/lib/python2.4/site-packages/grub/LiloConf.py -usr/lib/python2.4/site-packages/grub/LiloConf.pyc -usr/lib/python2.4/site-packages/grub/__init__.py -usr/lib/python2.4/site-packages/grub/__init__.pyc -usr/lib/python2.4/site-packages/xen -usr/lib/python2.4/site-packages/xen/__init__.py -usr/lib/python2.4/site-packages/xen/__init__.pyc -usr/lib/python2.4/site-packages/xen/lowlevel -usr/lib/python2.4/site-packages/xen/lowlevel/__init__.py -usr/lib/python2.4/site-packages/xen/lowlevel/__init__.pyc -usr/lib/python2.4/site-packages/xen/lowlevel/acm.so -usr/lib/python2.4/site-packages/xen/lowlevel/flask.so -usr/lib/python2.4/site-packages/xen/lowlevel/ptsname.so -usr/lib/python2.4/site-packages/xen/lowlevel/xc.so -usr/lib/python2.4/site-packages/xen/lowlevel/xs.so -usr/lib/python2.4/site-packages/xen/sv -usr/lib/python2.4/site-packages/xen/sv/CreateDomain.py -usr/lib/python2.4/site-packages/xen/sv/CreateDomain.pyc -usr/lib/python2.4/site-packages/xen/sv/DomInfo.py -usr/lib/python2.4/site-packages/xen/sv/DomInfo.pyc -usr/lib/python2.4/site-packages/xen/sv/GenTabbed.py -usr/lib/python2.4/site-packages/xen/sv/GenTabbed.pyc -usr/lib/python2.4/site-packages/xen/sv/HTMLBase.py -usr/lib/python2.4/site-packages/xen/sv/HTMLBase.pyc -usr/lib/python2.4/site-packages/xen/sv/Main.py -usr/lib/python2.4/site-packages/xen/sv/Main.pyc -usr/lib/python2.4/site-packages/xen/sv/NodeInfo.py -usr/lib/python2.4/site-packages/xen/sv/NodeInfo.pyc -usr/lib/python2.4/site-packages/xen/sv/RestoreDomain.py -usr/lib/python2.4/site-packages/xen/sv/RestoreDomain.pyc -usr/lib/python2.4/site-packages/xen/sv/Wizard.py -usr/lib/python2.4/site-packages/xen/sv/Wizard.pyc -usr/lib/python2.4/site-packages/xen/sv/__init__.py -usr/lib/python2.4/site-packages/xen/sv/__init__.pyc -usr/lib/python2.4/site-packages/xen/sv/util.py -usr/lib/python2.4/site-packages/xen/sv/util.pyc -usr/lib/python2.4/site-packages/xen/util -usr/lib/python2.4/site-packages/xen/util/Brctl.py -usr/lib/python2.4/site-packages/xen/util/Brctl.pyc -usr/lib/python2.4/site-packages/xen/util/SSHTransport.py -usr/lib/python2.4/site-packages/xen/util/SSHTransport.pyc -usr/lib/python2.4/site-packages/xen/util/__init__.py -usr/lib/python2.4/site-packages/xen/util/__init__.pyc -usr/lib/python2.4/site-packages/xen/util/acmpolicy.py -usr/lib/python2.4/site-packages/xen/util/acmpolicy.pyc -usr/lib/python2.4/site-packages/xen/util/asserts.py -usr/lib/python2.4/site-packages/xen/util/asserts.pyc -usr/lib/python2.4/site-packages/xen/util/auxbin.py -usr/lib/python2.4/site-packages/xen/util/auxbin.pyc -usr/lib/python2.4/site-packages/xen/util/blkif.py -usr/lib/python2.4/site-packages/xen/util/blkif.pyc -usr/lib/python2.4/site-packages/xen/util/bootloader.py -usr/lib/python2.4/site-packages/xen/util/bootloader.pyc -usr/lib/python2.4/site-packages/xen/util/bugtool.py -usr/lib/python2.4/site-packages/xen/util/bugtool.pyc -usr/lib/python2.4/site-packages/xen/util/diagnose.py -usr/lib/python2.4/site-packages/xen/util/diagnose.pyc -usr/lib/python2.4/site-packages/xen/util/dictio.py -usr/lib/python2.4/site-packages/xen/util/dictio.pyc -usr/lib/python2.4/site-packages/xen/util/ip.py -usr/lib/python2.4/site-packages/xen/util/ip.pyc -usr/lib/python2.4/site-packages/xen/util/mac.py -usr/lib/python2.4/site-packages/xen/util/mac.pyc -usr/lib/python2.4/site-packages/xen/util/mkdir.py -usr/lib/python2.4/site-packages/xen/util/mkdir.pyc -usr/lib/python2.4/site-packages/xen/util/oshelp.py -usr/lib/python2.4/site-packages/xen/util/oshelp.pyc -usr/lib/python2.4/site-packages/xen/util/pci.py -usr/lib/python2.4/site-packages/xen/util/pci.pyc -usr/lib/python2.4/site-packages/xen/util/rwlock.py -usr/lib/python2.4/site-packages/xen/util/rwlock.pyc -usr/lib/python2.4/site-packages/xen/util/utils.py -usr/lib/python2.4/site-packages/xen/util/utils.pyc -usr/lib/python2.4/site-packages/xen/util/vscsi_util.py -usr/lib/python2.4/site-packages/xen/util/vscsi_util.pyc -usr/lib/python2.4/site-packages/xen/util/xmlrpcclient.py -usr/lib/python2.4/site-packages/xen/util/xmlrpcclient.pyc -usr/lib/python2.4/site-packages/xen/util/xmlrpclib2.py -usr/lib/python2.4/site-packages/xen/util/xmlrpclib2.pyc -usr/lib/python2.4/site-packages/xen/util/xpopen.py -usr/lib/python2.4/site-packages/xen/util/xpopen.pyc -usr/lib/python2.4/site-packages/xen/util/xsconstants.py -usr/lib/python2.4/site-packages/xen/util/xsconstants.pyc -usr/lib/python2.4/site-packages/xen/util/xsm -usr/lib/python2.4/site-packages/xen/util/xsm/__init__.py -usr/lib/python2.4/site-packages/xen/util/xsm/__init__.pyc -usr/lib/python2.4/site-packages/xen/util/xsm/acm -usr/lib/python2.4/site-packages/xen/util/xsm/acm/__init__.py -usr/lib/python2.4/site-packages/xen/util/xsm/acm/__init__.pyc -usr/lib/python2.4/site-packages/xen/util/xsm/acm/acm.py -usr/lib/python2.4/site-packages/xen/util/xsm/acm/acm.pyc -usr/lib/python2.4/site-packages/xen/util/xsm/dummy -usr/lib/python2.4/site-packages/xen/util/xsm/dummy/__init__.py -usr/lib/python2.4/site-packages/xen/util/xsm/dummy/__init__.pyc -usr/lib/python2.4/site-packages/xen/util/xsm/dummy/dummy.py -usr/lib/python2.4/site-packages/xen/util/xsm/dummy/dummy.pyc -usr/lib/python2.4/site-packages/xen/util/xsm/flask -usr/lib/python2.4/site-packages/xen/util/xsm/flask/__init__.py -usr/lib/python2.4/site-packages/xen/util/xsm/flask/__init__.pyc -usr/lib/python2.4/site-packages/xen/util/xsm/flask/flask.py -usr/lib/python2.4/site-packages/xen/util/xsm/flask/flask.pyc -usr/lib/python2.4/site-packages/xen/util/xsm/xsm.py -usr/lib/python2.4/site-packages/xen/util/xsm/xsm.pyc -usr/lib/python2.4/site-packages/xen/util/xsm/xsm_core.py -usr/lib/python2.4/site-packages/xen/util/xsm/xsm_core.pyc -usr/lib/python2.4/site-packages/xen/util/xspolicy.py -usr/lib/python2.4/site-packages/xen/util/xspolicy.pyc -usr/lib/python2.4/site-packages/xen/web -usr/lib/python2.4/site-packages/xen/web/SrvBase.py -usr/lib/python2.4/site-packages/xen/web/SrvBase.pyc -usr/lib/python2.4/site-packages/xen/web/SrvDir.py -usr/lib/python2.4/site-packages/xen/web/SrvDir.pyc -usr/lib/python2.4/site-packages/xen/web/__init__.py -usr/lib/python2.4/site-packages/xen/web/__init__.pyc -usr/lib/python2.4/site-packages/xen/web/connection.py -usr/lib/python2.4/site-packages/xen/web/connection.pyc -usr/lib/python2.4/site-packages/xen/web/http.py -usr/lib/python2.4/site-packages/xen/web/http.pyc -usr/lib/python2.4/site-packages/xen/web/httpserver.py -usr/lib/python2.4/site-packages/xen/web/httpserver.pyc -usr/lib/python2.4/site-packages/xen/web/protocol.py -usr/lib/python2.4/site-packages/xen/web/protocol.pyc -usr/lib/python2.4/site-packages/xen/web/resource.py -usr/lib/python2.4/site-packages/xen/web/resource.pyc -usr/lib/python2.4/site-packages/xen/web/static.py -usr/lib/python2.4/site-packages/xen/web/static.pyc -usr/lib/python2.4/site-packages/xen/web/tcp.py -usr/lib/python2.4/site-packages/xen/web/tcp.pyc -usr/lib/python2.4/site-packages/xen/web/unix.py -usr/lib/python2.4/site-packages/xen/web/unix.pyc -usr/lib/python2.4/site-packages/xen/xend -usr/lib/python2.4/site-packages/xen/xend/Args.py -usr/lib/python2.4/site-packages/xen/xend/Args.pyc -usr/lib/python2.4/site-packages/xen/xend/PrettyPrint.py -usr/lib/python2.4/site-packages/xen/xend/PrettyPrint.pyc -usr/lib/python2.4/site-packages/xen/xend/Vifctl.py -usr/lib/python2.4/site-packages/xen/xend/Vifctl.pyc -usr/lib/python2.4/site-packages/xen/xend/XendAPI.py -usr/lib/python2.4/site-packages/xen/xend/XendAPI.pyc -usr/lib/python2.4/site-packages/xen/xend/XendAPIConstants.py -usr/lib/python2.4/site-packages/xen/xend/XendAPIConstants.pyc -usr/lib/python2.4/site-packages/xen/xend/XendAPIStore.py -usr/lib/python2.4/site-packages/xen/xend/XendAPIStore.pyc -usr/lib/python2.4/site-packages/xen/xend/XendAPIVersion.py -usr/lib/python2.4/site-packages/xen/xend/XendAPIVersion.pyc -usr/lib/python2.4/site-packages/xen/xend/XendAuthSessions.py -usr/lib/python2.4/site-packages/xen/xend/XendAuthSessions.pyc -usr/lib/python2.4/site-packages/xen/xend/XendBase.py -usr/lib/python2.4/site-packages/xen/xend/XendBase.pyc -usr/lib/python2.4/site-packages/xen/xend/XendBootloader.py -usr/lib/python2.4/site-packages/xen/xend/XendBootloader.pyc -usr/lib/python2.4/site-packages/xen/xend/XendCheckpoint.py -usr/lib/python2.4/site-packages/xen/xend/XendCheckpoint.pyc -usr/lib/python2.4/site-packages/xen/xend/XendClient.py -usr/lib/python2.4/site-packages/xen/xend/XendClient.pyc -usr/lib/python2.4/site-packages/xen/xend/XendConfig.py -usr/lib/python2.4/site-packages/xen/xend/XendConfig.pyc -usr/lib/python2.4/site-packages/xen/xend/XendConstants.py -usr/lib/python2.4/site-packages/xen/xend/XendConstants.pyc -usr/lib/python2.4/site-packages/xen/xend/XendDPCI.py -usr/lib/python2.4/site-packages/xen/xend/XendDPCI.pyc -usr/lib/python2.4/site-packages/xen/xend/XendDSCSI.py -usr/lib/python2.4/site-packages/xen/xend/XendDSCSI.pyc -usr/lib/python2.4/site-packages/xen/xend/XendDevices.py -usr/lib/python2.4/site-packages/xen/xend/XendDevices.pyc -usr/lib/python2.4/site-packages/xen/xend/XendDmesg.py -usr/lib/python2.4/site-packages/xen/xend/XendDmesg.pyc -usr/lib/python2.4/site-packages/xen/xend/XendDomain.py -usr/lib/python2.4/site-packages/xen/xend/XendDomain.pyc -usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py -usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.pyc -usr/lib/python2.4/site-packages/xen/xend/XendError.py -usr/lib/python2.4/site-packages/xen/xend/XendError.pyc -usr/lib/python2.4/site-packages/xen/xend/XendLocalStorageRepo.py -usr/lib/python2.4/site-packages/xen/xend/XendLocalStorageRepo.pyc -usr/lib/python2.4/site-packages/xen/xend/XendLogging.py -usr/lib/python2.4/site-packages/xen/xend/XendLogging.pyc -usr/lib/python2.4/site-packages/xen/xend/XendMonitor.py -usr/lib/python2.4/site-packages/xen/xend/XendMonitor.pyc -usr/lib/python2.4/site-packages/xen/xend/XendNetwork.py -usr/lib/python2.4/site-packages/xen/xend/XendNetwork.pyc -usr/lib/python2.4/site-packages/xen/xend/XendNode.py -usr/lib/python2.4/site-packages/xen/xend/XendNode.pyc -usr/lib/python2.4/site-packages/xen/xend/XendOptions.py -usr/lib/python2.4/site-packages/xen/xend/XendOptions.pyc -usr/lib/python2.4/site-packages/xen/xend/XendPBD.py -usr/lib/python2.4/site-packages/xen/xend/XendPBD.pyc -usr/lib/python2.4/site-packages/xen/xend/XendPIF.py -usr/lib/python2.4/site-packages/xen/xend/XendPIF.pyc -usr/lib/python2.4/site-packages/xen/xend/XendPIFMetrics.py -usr/lib/python2.4/site-packages/xen/xend/XendPIFMetrics.pyc -usr/lib/python2.4/site-packages/xen/xend/XendPPCI.py -usr/lib/python2.4/site-packages/xen/xend/XendPPCI.pyc -usr/lib/python2.4/site-packages/xen/xend/XendPSCSI.py -usr/lib/python2.4/site-packages/xen/xend/XendPSCSI.pyc -usr/lib/python2.4/site-packages/xen/xend/XendProtocol.py -usr/lib/python2.4/site-packages/xen/xend/XendProtocol.pyc -usr/lib/python2.4/site-packages/xen/xend/XendQCoWStorageRepo.py -usr/lib/python2.4/site-packages/xen/xend/XendQCoWStorageRepo.pyc -usr/lib/python2.4/site-packages/xen/xend/XendStateStore.py -usr/lib/python2.4/site-packages/xen/xend/XendStateStore.pyc -usr/lib/python2.4/site-packages/xen/xend/XendStorageRepository.py -usr/lib/python2.4/site-packages/xen/xend/XendStorageRepository.pyc -usr/lib/python2.4/site-packages/xen/xend/XendTask.py -usr/lib/python2.4/site-packages/xen/xend/XendTask.pyc -usr/lib/python2.4/site-packages/xen/xend/XendTaskManager.py -usr/lib/python2.4/site-packages/xen/xend/XendTaskManager.pyc -usr/lib/python2.4/site-packages/xen/xend/XendVDI.py -usr/lib/python2.4/site-packages/xen/xend/XendVDI.pyc -usr/lib/python2.4/site-packages/xen/xend/XendVMMetrics.py -usr/lib/python2.4/site-packages/xen/xend/XendVMMetrics.pyc -usr/lib/python2.4/site-packages/xen/xend/XendVnet.py -usr/lib/python2.4/site-packages/xen/xend/XendVnet.pyc -usr/lib/python2.4/site-packages/xen/xend/XendXSPolicy.py -usr/lib/python2.4/site-packages/xen/xend/XendXSPolicy.pyc -usr/lib/python2.4/site-packages/xen/xend/XendXSPolicyAdmin.py -usr/lib/python2.4/site-packages/xen/xend/XendXSPolicyAdmin.pyc -usr/lib/python2.4/site-packages/xen/xend/__init__.py -usr/lib/python2.4/site-packages/xen/xend/__init__.pyc -usr/lib/python2.4/site-packages/xen/xend/arch.py -usr/lib/python2.4/site-packages/xen/xend/arch.pyc -usr/lib/python2.4/site-packages/xen/xend/balloon.py -usr/lib/python2.4/site-packages/xen/xend/balloon.pyc -usr/lib/python2.4/site-packages/xen/xend/encode.py -usr/lib/python2.4/site-packages/xen/xend/encode.pyc -usr/lib/python2.4/site-packages/xen/xend/image.py -usr/lib/python2.4/site-packages/xen/xend/image.pyc -usr/lib/python2.4/site-packages/xen/xend/osdep.py -usr/lib/python2.4/site-packages/xen/xend/osdep.pyc -usr/lib/python2.4/site-packages/xen/xend/server -usr/lib/python2.4/site-packages/xen/xend/server/BlktapController.py -usr/lib/python2.4/site-packages/xen/xend/server/BlktapController.pyc -usr/lib/python2.4/site-packages/xen/xend/server/ConsoleController.py -usr/lib/python2.4/site-packages/xen/xend/server/ConsoleController.pyc -usr/lib/python2.4/site-packages/xen/xend/server/DevConstants.py -usr/lib/python2.4/site-packages/xen/xend/server/DevConstants.pyc -usr/lib/python2.4/site-packages/xen/xend/server/DevController.py -usr/lib/python2.4/site-packages/xen/xend/server/DevController.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SSLXMLRPCServer.py -usr/lib/python2.4/site-packages/xen/xend/server/SSLXMLRPCServer.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py -usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SrvDmesg.py -usr/lib/python2.4/site-packages/xen/xend/server/SrvDmesg.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SrvDomain.py -usr/lib/python2.4/site-packages/xen/xend/server/SrvDomain.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py -usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SrvNode.py -usr/lib/python2.4/site-packages/xen/xend/server/SrvNode.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SrvRoot.py -usr/lib/python2.4/site-packages/xen/xend/server/SrvRoot.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SrvServer.py -usr/lib/python2.4/site-packages/xen/xend/server/SrvServer.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SrvVnetDir.py -usr/lib/python2.4/site-packages/xen/xend/server/SrvVnetDir.pyc -usr/lib/python2.4/site-packages/xen/xend/server/SrvXendLog.py -usr/lib/python2.4/site-packages/xen/xend/server/SrvXendLog.pyc -usr/lib/python2.4/site-packages/xen/xend/server/XMLRPCServer.py -usr/lib/python2.4/site-packages/xen/xend/server/XMLRPCServer.pyc -usr/lib/python2.4/site-packages/xen/xend/server/__init__.py -usr/lib/python2.4/site-packages/xen/xend/server/__init__.pyc -usr/lib/python2.4/site-packages/xen/xend/server/blkif.py -usr/lib/python2.4/site-packages/xen/xend/server/blkif.pyc -usr/lib/python2.4/site-packages/xen/xend/server/iopif.py -usr/lib/python2.4/site-packages/xen/xend/server/iopif.pyc -usr/lib/python2.4/site-packages/xen/xend/server/irqif.py -usr/lib/python2.4/site-packages/xen/xend/server/irqif.pyc -usr/lib/python2.4/site-packages/xen/xend/server/netif.py -usr/lib/python2.4/site-packages/xen/xend/server/netif.pyc -usr/lib/python2.4/site-packages/xen/xend/server/params.py -usr/lib/python2.4/site-packages/xen/xend/server/params.pyc -usr/lib/python2.4/site-packages/xen/xend/server/pciif.py -usr/lib/python2.4/site-packages/xen/xend/server/pciif.pyc -usr/lib/python2.4/site-packages/xen/xend/server/pciquirk.py -usr/lib/python2.4/site-packages/xen/xend/server/pciquirk.pyc -usr/lib/python2.4/site-packages/xen/xend/server/relocate.py -usr/lib/python2.4/site-packages/xen/xend/server/relocate.pyc -usr/lib/python2.4/site-packages/xen/xend/server/tests -usr/lib/python2.4/site-packages/xen/xend/server/tests/__init__.py -usr/lib/python2.4/site-packages/xen/xend/server/tests/__init__.pyc -usr/lib/python2.4/site-packages/xen/xend/server/tests/test_controllers.py -usr/lib/python2.4/site-packages/xen/xend/server/tests/test_controllers.pyc -usr/lib/python2.4/site-packages/xen/xend/server/tpmif.py -usr/lib/python2.4/site-packages/xen/xend/server/tpmif.pyc -usr/lib/python2.4/site-packages/xen/xend/server/udevevent.py -usr/lib/python2.4/site-packages/xen/xend/server/udevevent.pyc -usr/lib/python2.4/site-packages/xen/xend/server/vfbif.py -usr/lib/python2.4/site-packages/xen/xend/server/vfbif.pyc -usr/lib/python2.4/site-packages/xen/xend/server/vscsiif.py -usr/lib/python2.4/site-packages/xen/xend/server/vscsiif.pyc -usr/lib/python2.4/site-packages/xen/xend/sxp.py -usr/lib/python2.4/site-packages/xen/xend/sxp.pyc -usr/lib/python2.4/site-packages/xen/xend/tests -usr/lib/python2.4/site-packages/xen/xend/tests/__init__.py -usr/lib/python2.4/site-packages/xen/xend/tests/__init__.pyc -usr/lib/python2.4/site-packages/xen/xend/tests/test_XendConfig.py -usr/lib/python2.4/site-packages/xen/xend/tests/test_XendConfig.pyc -usr/lib/python2.4/site-packages/xen/xend/tests/test_sxp.py -usr/lib/python2.4/site-packages/xen/xend/tests/test_sxp.pyc -usr/lib/python2.4/site-packages/xen/xend/tests/test_uuid.py -usr/lib/python2.4/site-packages/xen/xend/tests/test_uuid.pyc -usr/lib/python2.4/site-packages/xen/xend/uuid.py -usr/lib/python2.4/site-packages/xen/xend/uuid.pyc -usr/lib/python2.4/site-packages/xen/xend/xenstore -usr/lib/python2.4/site-packages/xen/xend/xenstore/__init__.py -usr/lib/python2.4/site-packages/xen/xend/xenstore/__init__.pyc -usr/lib/python2.4/site-packages/xen/xend/xenstore/tests -usr/lib/python2.4/site-packages/xen/xend/xenstore/tests/__init__.py -usr/lib/python2.4/site-packages/xen/xend/xenstore/tests/__init__.pyc -usr/lib/python2.4/site-packages/xen/xend/xenstore/tests/stress_xs.py -usr/lib/python2.4/site-packages/xen/xend/xenstore/tests/stress_xs.pyc -usr/lib/python2.4/site-packages/xen/xend/xenstore/xstransact.py -usr/lib/python2.4/site-packages/xen/xend/xenstore/xstransact.pyc -usr/lib/python2.4/site-packages/xen/xend/xenstore/xsutil.py -usr/lib/python2.4/site-packages/xen/xend/xenstore/xsutil.pyc -usr/lib/python2.4/site-packages/xen/xend/xenstore/xswatch.py -usr/lib/python2.4/site-packages/xen/xend/xenstore/xswatch.pyc -usr/lib/python2.4/site-packages/xen/xm -usr/lib/python2.4/site-packages/xen/xm/XenAPI.py -usr/lib/python2.4/site-packages/xen/xm/XenAPI.pyc -usr/lib/python2.4/site-packages/xen/xm/__init__.py -usr/lib/python2.4/site-packages/xen/xm/__init__.pyc -usr/lib/python2.4/site-packages/xen/xm/addlabel.py -usr/lib/python2.4/site-packages/xen/xm/addlabel.pyc -usr/lib/python2.4/site-packages/xen/xm/console.py -usr/lib/python2.4/site-packages/xen/xm/console.pyc -usr/lib/python2.4/site-packages/xen/xm/create.py -usr/lib/python2.4/site-packages/xen/xm/create.pyc -usr/lib/python2.4/site-packages/xen/xm/dry-run.py -usr/lib/python2.4/site-packages/xen/xm/dry-run.pyc -usr/lib/python2.4/site-packages/xen/xm/dumppolicy.py -usr/lib/python2.4/site-packages/xen/xm/dumppolicy.pyc -usr/lib/python2.4/site-packages/xen/xm/getlabel.py -usr/lib/python2.4/site-packages/xen/xm/getlabel.pyc -usr/lib/python2.4/site-packages/xen/xm/getpolicy.py -usr/lib/python2.4/site-packages/xen/xm/getpolicy.pyc -usr/lib/python2.4/site-packages/xen/xm/help.py -usr/lib/python2.4/site-packages/xen/xm/help.pyc -usr/lib/python2.4/site-packages/xen/xm/labels.py -usr/lib/python2.4/site-packages/xen/xm/labels.pyc -usr/lib/python2.4/site-packages/xen/xm/main.py -usr/lib/python2.4/site-packages/xen/xm/main.pyc -usr/lib/python2.4/site-packages/xen/xm/migrate.py -usr/lib/python2.4/site-packages/xen/xm/migrate.pyc -usr/lib/python2.4/site-packages/xen/xm/new.py -usr/lib/python2.4/site-packages/xen/xm/new.pyc -usr/lib/python2.4/site-packages/xen/xm/opts.py -usr/lib/python2.4/site-packages/xen/xm/opts.pyc -usr/lib/python2.4/site-packages/xen/xm/resetpolicy.py -usr/lib/python2.4/site-packages/xen/xm/resetpolicy.pyc -usr/lib/python2.4/site-packages/xen/xm/resources.py -usr/lib/python2.4/site-packages/xen/xm/resources.pyc -usr/lib/python2.4/site-packages/xen/xm/rmlabel.py -usr/lib/python2.4/site-packages/xen/xm/rmlabel.pyc -usr/lib/python2.4/site-packages/xen/xm/setpolicy.py -usr/lib/python2.4/site-packages/xen/xm/setpolicy.pyc -usr/lib/python2.4/site-packages/xen/xm/shutdown.py -usr/lib/python2.4/site-packages/xen/xm/shutdown.pyc -usr/lib/python2.4/site-packages/xen/xm/tests -usr/lib/python2.4/site-packages/xen/xm/tests/__init__.py -usr/lib/python2.4/site-packages/xen/xm/tests/__init__.pyc -usr/lib/python2.4/site-packages/xen/xm/tests/test_create.py -usr/lib/python2.4/site-packages/xen/xm/tests/test_create.pyc -usr/lib/python2.4/site-packages/xen/xm/xenapi_create.py -usr/lib/python2.4/site-packages/xen/xm/xenapi_create.pyc -usr/lib/python2.4/site-packages/xen/xsview -usr/lib/python2.4/site-packages/xen/xsview/__init__.py -usr/lib/python2.4/site-packages/xen/xsview/__init__.pyc -usr/lib/python2.4/site-packages/xen/xsview/main.py -usr/lib/python2.4/site-packages/xen/xsview/main.pyc -usr/lib/python2.4/site-packages/xen/xsview/xsviewer.py -usr/lib/python2.4/site-packages/xen/xsview/xsviewer.pyc -usr/lib/xen -usr/lib/xen/bin -usr/lib/xen/bin/lsevtchn -usr/lib/xen/bin/qemu-dm -usr/lib/xen/bin/readnotes -usr/lib/xen/bin/xc_restore -usr/lib/xen/bin/xc_save -usr/lib/xen/bin/xenconsole -usr/lib/xen/bin/xenctx -usr/lib/xen/boot -usr/lib/xen/boot/hvmloader -usr/sbin/blktapctrl -usr/sbin/flask-loadpolicy -usr/sbin/fs-backend -usr/sbin/img2qcow -usr/sbin/qcow-create -usr/sbin/qcow2raw -usr/sbin/tapdisk -usr/sbin/xen-bugtool -usr/sbin/xen-python-path -usr/sbin/xenbaked -usr/sbin/xenconsoled -usr/sbin/xend -usr/sbin/xenmon.py -usr/sbin/xenperf -usr/sbin/xenpm -usr/sbin/xenpmd -usr/sbin/xenstored -usr/sbin/xentop -usr/sbin/xentrace_setmask -usr/sbin/xm -usr/sbin/xsview -#usr/share/doc/xen -#usr/share/doc/xen/README.blktap -#usr/share/doc/xen/README.xenmon -#usr/share/doc/xen/create.dtd -#usr/share/man/man1/xentop.1 -#usr/share/man/man1/xentrace_format.1 -#usr/share/man/man8/xentrace.8 -usr/share/xen -usr/share/xen/qemu -usr/share/xen/qemu/bamboo.dtb -usr/share/xen/qemu/bios.bin -usr/share/xen/qemu/keymaps -usr/share/xen/qemu/keymaps/ar -usr/share/xen/qemu/keymaps/common -usr/share/xen/qemu/keymaps/da -usr/share/xen/qemu/keymaps/de -usr/share/xen/qemu/keymaps/de-ch -usr/share/xen/qemu/keymaps/en-gb -usr/share/xen/qemu/keymaps/en-us -usr/share/xen/qemu/keymaps/es -usr/share/xen/qemu/keymaps/et -usr/share/xen/qemu/keymaps/fi -usr/share/xen/qemu/keymaps/fo -usr/share/xen/qemu/keymaps/fr -usr/share/xen/qemu/keymaps/fr-be -usr/share/xen/qemu/keymaps/fr-ca -usr/share/xen/qemu/keymaps/fr-ch -usr/share/xen/qemu/keymaps/hr -usr/share/xen/qemu/keymaps/hu -usr/share/xen/qemu/keymaps/is -usr/share/xen/qemu/keymaps/it -usr/share/xen/qemu/keymaps/ja -usr/share/xen/qemu/keymaps/lt -usr/share/xen/qemu/keymaps/lv -usr/share/xen/qemu/keymaps/mk -usr/share/xen/qemu/keymaps/modifiers -usr/share/xen/qemu/keymaps/nl -usr/share/xen/qemu/keymaps/nl-be -usr/share/xen/qemu/keymaps/no -usr/share/xen/qemu/keymaps/pl -usr/share/xen/qemu/keymaps/pt -usr/share/xen/qemu/keymaps/pt-br -usr/share/xen/qemu/keymaps/ru -usr/share/xen/qemu/keymaps/sl -usr/share/xen/qemu/keymaps/sv -usr/share/xen/qemu/keymaps/th -usr/share/xen/qemu/keymaps/tr -usr/share/xen/qemu/openbios-ppc -usr/share/xen/qemu/openbios-sparc32 -usr/share/xen/qemu/openbios-sparc64 -usr/share/xen/qemu/ppc_rom.bin -usr/share/xen/qemu/pxe-e1000.bin -usr/share/xen/qemu/pxe-ne2k_pci.bin -usr/share/xen/qemu/pxe-pcnet.bin -usr/share/xen/qemu/pxe-rtl8139.bin -usr/share/xen/qemu/vgabios-cirrus.bin -usr/share/xen/qemu/vgabios.bin -usr/share/xen/qemu/video.x -var/lib/xen -var/lib/xenstored -var/log/xen -var/run/xend -var/run/xend/boot -var/run/xenstored -var/xen -var/xen/dump diff --git a/config/snort/snort.conf b/config/snort/snort.conf index 2008a59..bf46406 100644 --- a/config/snort/snort.conf +++ b/config/snort/snort.conf @@ -1,61 +1,38 @@ #-------------------------------------------------- -# http://www.snort.org Snort 2.8.4 Ruleset +# http://www.snort.org Snort Ruleset # Contact: snort-sigs@lists.sourceforge.net #-------------------------------------------------- # $Id$ # ################################################### # This file contains a sample snort configuration. -# You can take the following steps to create your own custom configuration: -# -# 1) Set the variables for your network -# 2) Configure dynamic loaded libraries -# 3) Configure preprocessors -# 4) Configure output plugins -# 5) Add any runtime config directives -# 6) Customize your rule set -# +# You should take the following steps to create your own custom configuration: +# +# 1) Set the network variables. +# 2) Configure the decoder +# 3) Configure the base detection engine +# 4) Configure dynamic loaded libraries +# 5) Configure preprocessors +# 6) Configure output plugins +# 7) Customize your rule set ################################################### -# Step #1: Set the network variables: -# -# You must change the following variables to reflect your local network. The -# variable is currently setup for an RFC 1918 address space. -# -# You can specify it explicitly as: -# -# var HOME_NET 10.1.1.0/24 -# -# or use global variable $<interfacename>_ADDRESS which will be always -# initialized to IP address and netmask of the network interface which you run -# snort at. Under Windows, this must be specified as -# $(<interfacename>_ADDRESS), such as: -# $(\Device\Packet_{12345678-90AB-CDEF-1234567890AB}_ADDRESS) -# -# var HOME_NET $eth0_ADDRESS -# -# You can specify lists of IP addresses for HOME_NET -# by separating the IPs with commas like this: -# -# var HOME_NET [10.1.1.0/24,192.168.1.0/24] -# -# MAKE SURE YOU DON'T PLACE ANY SPACES IN YOUR LIST! -# -# or you can specify the variable to be any IP address -# like this:
-var HOME_NET any +################################################### +# Step #1: Set the network variables. For more information, see README.variables +###################################################
-# Set up the external network addresses as well. A good start may be "any" -var EXTERNAL_NET any +include /etc/snort/vars + +# Setup the network addresses you are protecting +# taken from /etc/snort vars +#var HOME_NET any
-# Configure your server lists. This allows snort to only look for attacks to -# systems that have a service up. Why look for HTTP attacks if you are not -# running a web server? This allows quick filtering based on IP addresses -# These configurations MUST follow the same configuration scheme as defined -# above for $HOME_NET. +# Set up the external network addresses. A good start may be "any" +var EXTERNAL_NET any
# List of DNS servers on your network -var DNS_SERVERS $HOME_NET +# taken from /etc/snort vars +#var DNS_SERVERS $HOME_NET
# List of SMTP servers on your network var SMTP_SERVERS $HOME_NET @@ -69,373 +46,197 @@ var SQL_SERVERS $HOME_NET # List of telnet servers on your network var TELNET_SERVERS $HOME_NET
-# List of snmp servers on your network -var SNMP_SERVERS $HOME_NET +# List of ports you run web servers on +portvar HTTP_PORTS [80,2301,3128,7777,7779,8000,8008,8028,8080,8180,8888,9999]
-# Configure your service ports. This allows snort to look for attacks destined -# to a specific application only on the ports that application runs on. For -# example, if you run a web server on port 8081, set your HTTP_PORTS variable -# like this: -# -# portvar HTTP_PORTS 8081 -# -# Ports you run web servers on -portvar HTTP_PORTS 80 - -# NOTE: If you wish to define multiple HTTP ports, use the portvar -# syntax to represent lists of ports and port ranges. Examples: -## portvar HTTP_PORTS [80,8080] -## portvar HTTP_PORTS [80,8000:8080] -# And only include the rule that uses $HTTP_PORTS once. -# -# The pre-2.8.0 approach of redefining the variable to a different port and -# including the rules file twice is obsolete. See README.variables for more -# details. +# List of ssh ports +portvar SSH_PORTS [22,222]
-# Ports you want to look for SHELLCODE on. +# List of ports you want to look for SHELLCODE on. portvar SHELLCODE_PORTS !80
-# Ports you might see oracle attacks on +# List of ports you might see oracle attacks on portvar ORACLE_PORTS 1521
-# other variables -# -# AIM servers. AOL has a habit of adding new AIM servers, so instead of -# modifying the signatures when they do, we add them to this list of servers. +# other variables, these should not be modified var AIM_SERVERS [64.12.24.0/23,64.12.28.0/23,64.12.161.0/24,64.12.163.0/24,64.12.200.0/24,205.188.3.0/24,205.188.5.0/24,205.188.7.0/24,205.188.9.0/24,205.188.153.0/24,205.188.179.0/24,205.188.248.0/24]
# Path to your rules files (this can be a relative path) # Note for Windows users: You are advised to make this an absolute path, # such as: c:\snort\rules var RULE_PATH /etc/snort/rules +var SO_RULE_PATH /etc/snort/so_rules var PREPROC_RULE_PATH /etc/snort/preproc_rules
-# Configure the snort decoder -# ============================ -# -# Snort's decoder will alert on lots of things such as header -# truncation or options of unusual length or infrequently used tcp options -# -# + +################################################### +# Step #2: Configure the decoder. For more information, see README.decode +################################################### + # Stop generic decode events: -# -# config disable_decode_alerts -# +#config disable_decode_alerts + # Stop Alerts on experimental TCP options -# -# config disable_tcpopt_experimental_alerts -# +config disable_tcpopt_experimental_alerts + # Stop Alerts on obsolete TCP options -# -# config disable_tcpopt_obsolete_alerts -# +config disable_tcpopt_obsolete_alerts + # Stop Alerts on T/TCP alerts -# -# In snort 2.0.1 and above, this only alerts when a TCP option is detected -# that shows T/TCP being actively used on the network. If this is normal -# behavior for your network, disable the next option. -# -# config disable_tcpopt_ttcp_alerts -# +#config disable_tcpopt_ttcp_alerts + # Stop Alerts on all other TCPOption type events: -# -# config disable_tcpopt_alerts -# +#config disable_tcpopt_alerts + # Stop Alerts on invalid ip options -# -# config disable_ipopt_alerts -# -# Alert if value in length field (IP, TCP, UDP) is greater than the -# actual length of the captured portion of the packet that the length -# is supposed to represent: -# +#config disable_ipopt_alerts + +# Alert if value in length field (IP, TCP, UDP) is greater th elength of the packet # config enable_decode_oversized_alerts -# -# Same as above, but drop packet if in Inline mode - -# enable_decode_oversized_alerts must be enabled for this to work: -# + +# Same as above, but drop packet if in Inline mode (requires enable_decode_oversized_alerts) # config enable_decode_oversized_drops -#
-# Configure the detection engine -# =============================== -# -# Use a different pattern matcher in case you have a machine with very limited -# resources: -# -# config detection: search-method lowmem - -# Configure Inline Resets -# ======================== -# -# If running an iptables firewall with snort in InlineMode() we can now -# perform resets via a physical device. We grab the indev from iptables -# and use this for the interface on which to send resets. This config -# option takes an argument for the src mac address you want to use in the -# reset packet. This way the bridge can remain stealthy. If the src mac -# option is not set we use the mac address of the indev device. If we -# don't set this option we will default to sending resets via raw socket, -# which needs an ipaddress to be assigned to the int. -# +# Configure IP / TCP checksum mode +config checksum_mode: all + +# Configure maximum number of flowbit references. For more information, see README.flowbits +# config flowbits_size: 64 + +# Configure ports to ignore +# config ignore_ports: tcp 21 6667:6671 1356 +# config ignore_ports: udp 1:17 53 + + +################################################### +# Step #3: Configure the base detection engine. For more information, see README.decode +################################################### + +# Configure PCRE match limitations +config pcre_match_limit: 1500 +config pcre_match_limit_recursion: 1500 + +# Configure the detection engine See the Snort Manual, Configuring Snort - Includes - Config +config detection: search-method ac-bnfa max_queue_events 5 + +# Configure the event queue. For more information, see README.event_queue +config event_queue: max_queue 8 log 3 order_events content_length + +# Configure Inline Resets. See README.INLINE # config layer2resets: 00:06:76:DD:5F:E3
+ ################################################### -# Step #2: Configure dynamic loaded libraries -# -# If snort was configured to use dynamically loaded libraries, -# those libraries can be loaded here. -# -# Each of the following configuration options can be done via -# the command line as well. -# -# Load all dynamic preprocessors from the install path -# (same as command line option --dynamic-preprocessor-lib-dir) -# +# Step #4: Configure dynamic loaded libraries. +# For more information, see Snort Manual, Configuring Snort - Dynamic Modules +################################################### + +# path to dynamic preprocessor libraries dynamicpreprocessor directory /usr/lib/snort_dynamicpreprocessor/ -# -# Load a specific dynamic preprocessor library from the install path -# (same as command line option --dynamic-preprocessor-lib) -# -# dynamicpreprocessor file /usr/lib/snort_dynamicpreprocessor/libdynamicexample.so -# -# Load a dynamic engine from the install path -# (same as command line option --dynamic-engine-lib) -# + +# path to base preprocessor engine dynamicengine /usr/lib/snort_dynamicengine/libsf_engine.so -# -# Load all dynamic rules libraries from the install path -# (same as command line option --dynamic-detection-lib-dir) -# -# dynamicdetection directory /usr/lib/snort_dynamicrule/ -# -# Load a specific dynamic rule library from the install path -# (same as command line option --dynamic-detection-lib) -# -# dynamicdetection file /usr/lib/snort_dynamicrule/libdynamicexamplerule.so -#
-################################################### -# Step #3: Configure preprocessors -# -# General configuration for preprocessors is of -# the form -# preprocessor <name_of_processor>: <configuration_options>
-# frag3: Target-based IP defragmentation -# -------------------------------------- -# -# Frag3 is a brand new IP defragmentation preprocessor that is capable of -# performing "target-based" processing of IP fragments. Check out the -# README.frag3 file in the doc directory for more background and configuration -# information. -# -# Frag3 configuration is a two step process, a global initialization phase -# followed by the definition of a set of defragmentation engines. -# -# Global configuration defines the number of fragmented packets that Snort can -# track at the same time and gives you options regarding the memory cap for the -# subsystem or, optionally, allows you to preallocate all the memory for the -# entire frag3 system. -# -# frag3_global options: -# max_frags: Maximum number of frag trackers that may be active at once. -# Default value is 8192. -# memcap: Maximum amount of memory that frag3 may access at any given time. -# Default value is 4MB. -# prealloc_frags: Maximum number of individual fragments that may be processed -# at once. This is instead of the memcap system, uses static -# allocation to increase performance. No default value. Each -# preallocated fragment typically eats ~1550 bytes. However, -# the exact amount is determined by the snaplen, and this can -# go as high as 64K so beware! -# -# Target-based behavior is attached to an engine as a "policy" for handling -# overlaps and retransmissions as enumerated in the Paxson paper. There are -# currently five policy types available: "BSD", "BSD-right", "First", "Linux" -# and "Last". Engines can be bound to standard Snort CIDR blocks or -# IP lists. -# -# frag3_engine options: -# timeout: Amount of time a fragmented packet may be active before expiring. -# Default value is 60 seconds. -# ttl_limit: Limit of delta allowable for TTLs of packets in the fragments. -# Based on the initial received fragment TTL. -# min_ttl: Minimum acceptable TTL for a fragment, frags with TTLs below this -# value will be discarded. Default value is 0. -# detect_anomalies: Activates frag3's anomaly detection mechanisms. -# policy: Target-based policy to assign to this engine. Default is BSD. -# bind_to: IP address set to bind this engine to. Default is all hosts. -# -# Frag3 configuration example: -#preprocessor frag3_global: max_frags 65536, prealloc_frags 65536 -#preprocessor frag3_engine: policy linux \ -# bind_to [10.1.1.12/32,10.1.1.13/32] \ -# detect_anomalies -#preprocessor frag3_engine: policy first \ -# bind_to 10.2.1.0/24 \ -# detect_anomalies -#preprocessor frag3_engine: policy last \ -# bind_to 10.3.1.0/24 -#preprocessor frag3_engine: policy bsd
-preprocessor frag3_global: max_frags 65536 -preprocessor frag3_engine: policy first detect_anomalies - -# stream5: Target Based stateful inspection/stream reassembly for Snort -# --------------------------------------------------------------------- -# Stream5 is a target-based stream engine for Snort. It handles both -# TCP and UDP connection tracking as well as TCP reassembly. -# -# See README.stream5 for details on the configuration options. -# -# Example config -preprocessor stream5_global: max_tcp 8192, track_tcp yes, \ - track_udp no -preprocessor stream5_tcp: policy first, use_static_footprint_sizes -# preprocessor stream5_udp: ignore_any_rules
-# Performance Statistics -# ---------------------- -# Documentation for this is provided in the Snort Manual. You should read it. -# It is included in the release distribution as doc/snort_manual.pdf -# -# preprocessor perfmonitor: time 300 file /var/snort/snort.stats pktcnt 10000
-# http_inspect: normalize and detect HTTP traffic and protocol anomalies -# -# lots of options available here. See doc/README.http_inspect. -# unicode.map should be wherever your snort.conf lives, or given -# a full path to where snort can find it. -preprocessor http_inspect: global \ - iis_unicode_map unicode.map 1252
-preprocessor http_inspect_server: server default \ - profile all ports { 80 8080 8180 } oversize_dir_length 500
-# -# Example unique server configuration -# -#preprocessor http_inspect_server: server 1.1.1.1 \ -# ports { 80 3128 8080 } \ -# server_flow_depth 0 \ -# ascii no \ -# double_decode yes \ -# non_rfc_char { 0x00 } \ -# chunk_length 500000 \ -# non_strict \ -# oversize_dir_length 300 \ -# no_alerts - - -# rpc_decode: normalize RPC traffic -# --------------------------------- -# RPC may be sent in alternate encodings besides the usual 4-byte encoding -# that is used by default. This plugin takes the port numbers that RPC -# services are running on as arguments - it is assumed that the given ports -# are actually running this type of service. If not, change the ports or turn -# it off. -# The RPC decode preprocessor uses generator ID 106 -# -# arguments: space separated list -# alert_fragments - alert on any rpc fragmented TCP data -# no_alert_multiple_requests - don't alert when >1 rpc query is in a packet -# no_alert_large_fragments - don't alert when the fragmented -# sizes exceed the current packet size -# no_alert_incomplete - don't alert when a single segment -# exceeds the current packet size - -preprocessor rpc_decode: 111 32771 - -# bo: Back Orifice detector -# ------------------------- -# Detects Back Orifice traffic on the network. -# -# arguments: -# syntax: -# preprocessor bo: noalert { client | server | general | snort_attack } \ -# drop { client | server | general | snort_attack } -# example: -# preprocessor bo: noalert { general server } drop { snort_attack } -# -# -# The Back Orifice detector uses Generator ID 105 and uses the -# following SIDS for that GID: -# SID Event description -# ----- ------------------- -# 1 Back Orifice traffic detected -# 2 Back Orifice Client Traffic Detected -# 3 Back Orifice Server Traffic Detected -# 4 Back Orifice Snort Buffer Attack
-preprocessor bo
-# ftp_telnet: FTP & Telnet normalizer, protocol enforcement and buff overflow -# --------------------------------------------------------------------------- -# This preprocessor normalizes telnet negotiation strings from telnet and -# ftp traffic. It looks for traffic that breaks the normal data stream -# of the protocol, replacing it with a normalized representation of that -# traffic so that the "content" pattern matching keyword can work without -# requiring modifications. -# -# It also performs protocol correctness checks for the FTP command channel, -# and identifies open FTP data transfers. -# -# FTPTelnet has numerous options available, please read -# README.ftptelnet for help configuring the options for the global -# telnet, ftp server, and ftp client sections for the protocol. +# path to dynamic rules libraries +# dynamicdetection directory /usr/lib/snort_dynamicrules + +################################################### +# Step #5: Configure preprocessors +# For more information, see the Snort Manual, Configuring Snort - Preprocessors +###################################################
-##### -# Per Step #2, set the following to load the ftptelnet preprocessor -# dynamicpreprocessor file <full path to libsf_ftptelnet_preproc.so> -# or use commandline option -# --dynamic-preprocessor-lib <full path to libsf_ftptelnet_preproc.so> +# Target-based IP defragmentation. For more inforation, see README.frag3 +preprocessor frag3_global: max_frags 65536 +preprocessor frag3_engine: policy windows timeout 180
-preprocessor ftp_telnet: global \ - encrypted_traffic yes \ - inspection_type stateful +# Target-Based stateful inspection/stream reassembly. For more inforation, see README.stream5 +preprocessor stream5_global: max_tcp 8192, track_tcp yes, track_udp no +preprocessor stream5_tcp: policy windows, use_static_footprint_sizes, ports client 21 22 23 25 42 53 79 80 109 110 111 113 119 135 136 137 139 143 110 111 161 445 513 514 691 1433 1521 2100 2301 3128 3306 6665 6666 6667 6668 6669 7000 8000 8080 8180 8888 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779, ports both 443 465 563 636 989 992 993 994 995 7801 7702 7900 7901 7902 7903 7904 7905 7906 6907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 +# preprocessor stream5_udp: ignore_any_rules
+# performance statistics. For more information, see the Snort Manual, Configuring Snort - Preprocessors - Performance Monitor +# preprocessor perfmonitor: time 300 file /var/snort/snort.stats pktcnt 10000 + +# HTTP normalization and anomaly detection. For more information, see README.http_inspect +preprocessor http_inspect: global iis_unicode_map unicode.map 1252 + +preprocessor http_inspect_server: server default \ + apache_whitespace no \ + ascii no \ + bare_byte no \ + chunk_length 500000 \ + flow_depth 1460 \ + directory no \ + double_decode no \ + iis_backslash no \ + iis_delimiter no \ + iis_unicode no \ + multi_slash no \ + non_strict \ + oversize_dir_length 500 \ + ports { 80 2301 3128 7777 7779 8000 8008 8028 8080 8180 8888 9999 } \ + u_encode yes \ + non_rfc_char { 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 } \ + webroot no + +# ONC-RPC normalization and anomaly detection. For more information, see the Snort Manual, Configuring Snort - Preprocessors - RPC Decode +preprocessor rpc_decode: 111 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 no_alert_multiple_requests no_alert_large_fragments no_alert_incomplete + +# Back Orifice detection. +preprocessor bo + +# FTP / Telnet normalization and anomaly detection. For more information, see README.ftptelnet +preprocessor ftp_telnet: global encrypted_traffic yes check_encrypted inspection_type stateful preprocessor ftp_telnet_protocol: telnet \ - normalize \ - ayt_attack_thresh 200 - -# This is consistent with the FTP rules as of 18 Sept 2004. -# CWD can have param length of 200 -# MODE has an additional mode of Z (compressed) -# Check for string formats in USER & PASS commands -# Check nDTM commands that set modification time on the file. + ayt_attack_thresh 20 \ + normalize ports { 23 } \ + detect_anomalies preprocessor ftp_telnet_protocol: ftp server default \ - def_max_param_len 100 \ - alt_max_param_len 200 { CWD } \ - cmd_validity MODE < char ASBCZ > \ - cmd_validity MDTM < [ date nnnnnnnnnnnnnn[.n[n[n]]] ] string > \ - chk_str_fmt { USER PASS RNFR RNTO SITE MKD } \ - telnet_cmds yes \ - data_chan - + def_max_param_len 100 \ + ports { 21 2100 } \ + ftp_cmds { USER PASS ACCT CWD SDUP SMNT QUIT REIN PORT PASV TYPE STRU MODE } \ + ftp_cmds { RETR STOR STOU APPE ALLO REST RNFR RNTO ABOR DELE RMD MKD PWD } \ + ftp_cmds { LIST NLST SITE SYST STAT HELP NOOP } \ + ftp_cmds { AUTH ADAT PROT PBSZ CONF ENC } \ + ftp_cmds { FEAT OPTS CEL CMD MACB } \ + ftp_cmds { MDTM REST SIZE MLST MLSD } \ + ftp_cmds { XPWD XCWD XCUP XMKD XRMD TEST CLNT } \ + alt_max_param_len 0 { CDUP QUIT REIN PASV STOU ABOR PWD SYST NOOP } \ + alt_max_param_len 100 { MDTM CEL XCWD SITE USER PASS REST DELE RMD SYST TEST STAT MACB EPSV CLNT LPRT } \ + alt_max_param_len 200 { XMKD NLST ALLO STOU APPE RETR STOR CMD RNFR HELP } \ + alt_max_param_len 256 { RNTO CWD } \ + alt_max_param_len 400 { PORT } \ + alt_max_param_len 512 { SIZE } \ + chk_str_fmt { USER PASS ACCT CWD SDUP SMNT PORT TYPE STRU MODE } \ + chk_str_fmt { RETR STOR STOU APPE ALLO REST RNFR RNTO DELE RMD MKD } \ + chk_str_fmt { LIST NLST SITE SYST STAT HELP } \ + chk_str_fmt { AUTH ADAT PROT PBSZ CONF ENC } \ + chk_str_fmt { FEAT OPTS CEL CMD } \ + chk_str_fmt { MDTM REST SIZE MLST MLSD } \ + chk_str_fmt { XPWD XCWD XCUP XMKD XRMD TEST CLNT } \ + cmd_validity MODE < char ASBCZ > \ + cmd_validity STRU < char FRP > \ + cmd_validity ALLO < int [ char R int ] > \ + cmd_validity TYPE < { char AE [ char NTC ] | char I | char L [ number ] } > \ + cmd_validity MDTM < [ date nnnnnnnnnnnnnn[.n[n[n]]] ] string > \ + cmd_validity PORT < host_port > preprocessor ftp_telnet_protocol: ftp client default \ - max_resp_len 256 \ - bounce yes \ - telnet_cmds yes - -# smtp: SMTP normalizer, protocol enforcement and buffer overflow -# --------------------------------------------------------------------------- -# This preprocessor normalizes SMTP commands by removing extraneous spaces. -# It looks for overly long command lines, response lines, and data header lines. -# It can alert on invalid commands, or specific valid commands. It can optionally -# ignore mail data, and can ignore TLS encrypted data. -# -# SMTP has numerous options available, please read README.SMTP for help -# configuring options. + max_resp_len 256 \ + bounce yes \ + telnet_cmds no
-##### -# Per Step #2, set the following to load the smtp preprocessor -# dynamicpreprocessor file <full path to libsf_smtp_preproc.so> -# or use commandline option -# --dynamic-preprocessor-lib <full path to libsf_smtp_preproc.so>
-preprocessor smtp: \ - ports { 25 587 691 } \ +# SMTP normalization and anomaly detection. For more information, see README.SMTP +preprocessor smtp: ports { 25 587 691 } \ inspection_type stateful \ normalize cmds \ normalize_cmds { EXPN VRFY RCPT } \ @@ -444,425 +245,65 @@ preprocessor smtp: \ alt_max_command_line_len 500 { HELP HELO ETRN } \ alt_max_command_line_len 255 { EXPN VRFY }
-# sfPortscan -# ---------- -# Portscan detection module. Detects various types of portscans and -# portsweeps. For more information on detection philosophy, alert types, -# and detailed portscan information, please refer to the README.sfportscan. -# -# -configuration options- -# proto { tcp udp icmp ip all } -# The arguments to the proto option are the types of protocol scans that -# the user wants to detect. Arguments should be separated by spaces and -# not commas. -# scan_type { portscan portsweep decoy_portscan distributed_portscan all } -# The arguments to the scan_type option are the scan types that the -# user wants to detect. Arguments should be separated by spaces and not -# commas. -# sense_level { low|medium|high } -# There is only one argument to this option and it is the level of -# sensitivity in which to detect portscans. The 'low' sensitivity -# detects scans by the common method of looking for response errors, such -# as TCP RSTs or ICMP unreachables. This level requires the least -# tuning. The 'medium' sensitivity level detects portscans and -# filtered portscans (portscans that receive no response). This -# sensitivity level usually requires tuning out scan events from NATed -# IPs, DNS cache servers, etc. The 'high' sensitivity level has -# lower thresholds for portscan detection and a longer time window than -# the 'medium' sensitivity level. Requires more tuning and may be noisy -# on very active networks. However, this sensitivity levels catches the -# most scans. -# memcap { positive integer } -# The maximum number of bytes to allocate for portscan detection. The -# higher this number the more nodes that can be tracked. -# logfile { filename } -# This option specifies the file to log portscan and detailed portscan -# values to. If there is not a leading /, then snort logs to the -# configured log directory. Refer to README.sfportscan for details on -# the logged values in the logfile. -# watch_ip { Snort IP List } -# ignore_scanners { Snort IP List } -# ignore_scanned { Snort IP List } -# These options take a snort IP list as the argument. The 'watch_ip' -# option specifies the IP(s) to watch for portscan. The -# 'ignore_scanners' option specifies the IP(s) to ignore as scanners. -# Note that these hosts are still watched as scanned hosts. The -# 'ignore_scanners' option is used to tune alerts from very active -# hosts such as NAT, nessus hosts, etc. The 'ignore_scanned' option -# specifies the IP(s) to ignore as scanned hosts. Note that these hosts -# are still watched as scanner hosts. The 'ignore_scanned' option is -# used to tune alerts from very active hosts such as syslog servers, etc. -# detect_ack_scans -# This option will include sessions picked up in midstream by the stream -# module, which is necessary to detect ACK scans. However, this can lead to -# false alerts, especially under heavy load with dropped packets; which is why -# the option is off by default. -# -preprocessor sfportscan: proto { all } \ - memcap { 10000000 } \ - sense_level { medium } - -# arpspoof -#---------------------------------------- -# Experimental ARP detection code from Jeff Nathan, detects ARP attacks, -# unicast ARP requests, and specific ARP mapping monitoring. To make use of -# this preprocessor you must specify the IP and hardware address of hosts on -# the same layer 2 segment as you. Specify one host IP MAC combo per line. -# Also takes a "-unicast" option to turn on unicast ARP request detection. -# Arpspoof uses Generator ID 112 and uses the following SIDS for that GID: - -# SID Event description -# ----- ------------------- -# 1 Unicast ARP request -# 2 Etherframe ARP mismatch (src) -# 3 Etherframe ARP mismatch (dst) -# 4 ARP cache overwrite attack - -#preprocessor arpspoof -#preprocessor arpspoof_detect_host: 192.168.40.1 f0:0f:00:f0:0f:00 - -# ssh -#---------------------------------------- -# EXPERIMENTAL CODE!!! -# -# THIS CODE IS STILL EXPERIMENTAL AND MAY OR MAY NOT BE STABLE! -# USE AT YOUR OWN RISK! DO NOT USE IN PRODUCTION ENVIRONMENTS. -# YOU HAVE BEEN WARNED. -# -# The SSH preprocessor detects the following exploits: Gobbles, CRC 32, -# Secure CRT, and the Protocol Mismatch exploit. -# -# Both Gobbles and CRC 32 attacks occur after the key exchange, and are -# therefore encrypted. Both attacks involve sending a large payload -# (20kb+) to the server immediately after the authentication challenge. -# To detect the attacks, the SSH preprocessor counts the number of bytes -# transmitted to the server. If those bytes exceed a pre-defined limit -# within a pre-define number of packets, an alert is generated. Since -# Gobbles only effects SSHv2 and CRC 32 only effects SSHv1, the SSH -# version string exchange is used to distinguish the attacks. -# -# The Secure CRT and protocol mismatch exploits are observable before -# the key exchange. -# -# SSH has numerous options available, please read README.ssh for help -# configuring options. - -##### -# Per Step #2, set the following to load the ssh preprocessor -# dynamicpreprocessor file <full path to libsf_ssh_preproc.so> -# or use commandline option -# --dynamic-preprocessor-lib <full path to libsf_ssh_preproc.so> -# -#preprocessor ssh: server_ports { 22 } \ -# max_client_bytes 19600 \ -# max_encrypted_packets 20 +# Portscan detection. For more information, see README.sfportscan + preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { medium }
-# DCE/RPC -#---------------------------------------- -# -# The dcerpc preprocessor detects and decodes SMB and DCE/RPC traffic. -# It is primarily interested in DCE/RPC data, and only decodes SMB -# to get at the DCE/RPC data carried by the SMB layer. -# -# Currently, the preprocessor only handles reassembly of fragmentation -# at both the SMB and DCE/RPC layer. Snort rules can be evaded by -# using both types of fragmentation; with the preprocessor enabled -# the rules are given a buffer with a reassembled SMB or DCE/RPC -# packet to examine. -# -# At the SMB layer, only fragmentation using WriteAndX is currently -# reassembled. Other methods will be handled in future versions of -# the preprocessor. -# -# Autodetection of SMB is done by looking for "\xFFSMB" at the start of -# the SMB data, as well as checking the NetBIOS header (which is always -# present for SMB) for the type "SMB Session". -# -# Autodetection of DCE/RPC is not as reliable. Currently, two bytes are -# checked in the packet. Assuming that the data is a DCE/RPC header, -# one byte is checked for DCE/RPC version (5) and another for the type -# "DCE/RPC Request". If both match, the preprocessor proceeds with that -# assumption that it is looking at DCE/RPC data. If subsequent checks -# are nonsensical, it ends processing. -# -# DCERPC has numerous options available, please read README.dcerpc for help -# configuring options. - -##### -# Per Step #2, set the following to load the dcerpc preprocessor -# dynamicpreprocessor file <full path to libsf_dcerpc_preproc.so> -# or use commandline option -# --dynamic-preprocessor-lib <full path to libsf_dcerpc_preproc.so> -# -#preprocessor dcerpc: \ -# autodetect \ -# max_frag_size 3000 \ -# memcap 100000 +# ARP spoof detection. For more information, see the Snort Manual - Configuring Snort - Preprocessors - ARP Spoof Preprocessor +# preprocessor arpspoof +# preprocessor arpspoof_detect_host: 192.168.40.1 f0:0f:00:f0:0f:00
+# SSH anomaly detection. For more information, see README.ssh +preprocessor ssh: server_ports { 22 222 } \ + max_client_bytes 19600 \ + max_encrypted_packets 20 \ + enable_respoverflow enable_ssh1crc32 \ + enable_srvoverflow enable_protomismatch
-# DCE/RPC 2 -#---------------------------------------- -# See doc/README.dcerpc2 for explanations of what the -# preprocessor does and how to configure it. -# -preprocessor dcerpc2 -preprocessor dcerpc2_server: default +# SMB / DCE-RPC normalization and anomaly detection. For more information, see README.dcerpc2 +preprocessor dcerpc2: memcap 102400, events [co ] +preprocessor dcerpc2_server: default, policy WinXP, \ + detect [smb [139,445], tcp 135, udp 135, rpc-over-http-server 593], \ + autodetect [tcp 1025:, udp 1025:, rpc-over-http-server 1025:], \ + smb_max_chain 3
+# DNS anomaly detection. For more information, see README.dns +preprocessor dns: ports { 53 } enable_rdata_overflow
-# DNS -#---------------------------------------- -# The dns preprocessor (currently) decodes DNS Response traffic -# and detects a few vulnerabilities. -# -# DNS has a few options available, please read README.dns for -# help configuring options. - -##### -# Per Step #2, set the following to load the dns preprocessor -# dynamicpreprocessor file <full path to libsf_dns_preproc.so> -# or use commandline option -# --dynamic-preprocessor-lib <full path to libsf_dns_preproc.so> - -preprocessor dns: \ - ports { 53 } \ - enable_rdata_overflow - -# SSL -#---------------------------------------- -# Encrypted traffic should be ignored by Snort for both performance reasons -# and to reduce false positives. The SSL Dynamic Preprocessor (SSLPP) -# inspects SSL traffic and optionally determines if and when to stop -# inspection of it. -# -# Typically, SSL is used over port 443 as HTTPS. By enabling the SSLPP to -# inspect port 443, only the SSL handshake of each connection will be -# inspected. Once the traffic is determined to be encrypted, no further -# inspection of the data on the connection is made. -# -# If you don't necessarily trust all of the SSL capable servers on your -# network, you should remove the "trustservers" option from the configuration. -# -# Important note: Stream5 should be explicitly told to reassemble -# traffic on the ports that you intend to inspect SSL -# encrypted traffic on. -# -# To add reassembly on port 443 to Stream5, use 'port both 443' in the -# Stream5 configuration. +# SSL anomaly detection and traffic bypass. For more information, see README.ssl +preprocessor ssl: ports { 443 444 465 563 636 989 992 993 994 995 7801 7702 7900 7901 7902 7903 7904 7905 7906 6907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 }, trustservers, noinspect_encrypted
-preprocessor ssl: noinspect_encrypted, trustservers
+################################################### +# Step #6: Configure output plugins +# For more information, see Snort Manual, Configuring Snort - Output Modules +###################################################
-#################################################################### -# Step #4: Configure output plugins -# -# Uncomment and configure the output plugins you decide to use. General -# configuration for output plugins is of the form: -# -# output <name_of_plugin>: <configuration_options> -# -# alert_syslog: log alerts to syslog -# ---------------------------------- -# Use one or more syslog facilities as arguments. Win32 can also optionally -# specify a particular hostname/port. Under Win32, the default hostname is -# '127.0.0.1', and the default port is 514. -# -# [Unix flavours should use this format...] -# output alert_syslog: LOG_AUTH LOG_ALERT -# -# [Win32 can use any of these formats...] +# syslog # output alert_syslog: LOG_AUTH LOG_ALERT -# output alert_syslog: host=hostname, LOG_AUTH LOG_ALERT -# output alert_syslog: host=hostname:port, LOG_AUTH LOG_ALERT
-# log_tcpdump: log packets in binary tcpdump format -# ------------------------------------------------- -# The only argument is the output file name. -# +# pcap # output log_tcpdump: tcpdump.log
-# database: log to a variety of databases -# --------------------------------------- -# See the README.database file for more information about configuring -# and using this plugin. -# -# output database: log, mysql, user=root password=test dbname=db host=localhost -# output database: alert, postgresql, user=snort dbname=snort -# output database: log, odbc, user=snort dbname=snort -# output database: log, mssql, dbname=snort user=snort password=test -# output database: log, oracle, dbname=snort user=snort password=test - -# unified: Snort unified binary format alerting and logging -# ------------------------------------------------------------- -# The unified output plugin provides two new formats for logging and generating -# alerts from Snort, the "unified" format. The unified format is a straight -# binary format for logging data out of Snort that is designed to be fast and -# efficient. Used with barnyard (the new alert/log processor), most of the -# overhead for logging and alerting to various slow storage mechanisms such as -# databases or the network can now be avoided. -# -# Check out the spo_unified.h file for the data formats. -# -# Two arguments are supported. -# filename - base filename to write to (current time_t is appended) -# limit - maximum size of spool file in MB (default: 128) -# +# database +# output database: alert, <db_type>, user=<username> password=<password> test dbname=<name> host=<hostname> +# output database: log, <db_type>, user=<username> password=<password> test dbname=<name> host=<hostname> + +# unified # output alert_unified: filename snort.alert, limit 128 # output log_unified: filename snort.log, limit 128
- -# prelude: log to the Prelude Hybrid IDS system -# --------------------------------------------- -# -# profile = Name of the Prelude profile to use (default is snort). -# -# Snort priority to IDMEF severity mappings: -# high < medium < low < info -# -# These are the default mapped from classification.config: -# info = 4 -# low = 3 -# medium = 2 -# high = anything below medium -# +# prelude # output alert_prelude -# output alert_prelude: profile=snort-profile-name - - -# You can optionally define new rule types and associate one or more output -# plugins specifically to that type. -# -# This example will create a type that will log to just tcpdump. -# ruletype suspicious -# { -# type log -# output log_tcpdump: suspicious.log -# } -# -# EXAMPLE RULE FOR SUSPICIOUS RULETYPE: -# suspicious tcp $HOME_NET any -> $HOME_NET 6667 (msg:"Internal IRC Server";) -# -# This example will create a rule type that will log to syslog and a mysql -# database: -# ruletype redalert -# { -# type alert -# output alert_syslog: LOG_AUTH LOG_ALERT -# output database: log, mysql, user=snort dbname=snort host=localhost -# } -# -# EXAMPLE RULE FOR REDALERT RULETYPE: -# redalert tcp $HOME_NET any -> $EXTERNAL_NET 31337 \ -# (msg:"Someone is being LEET"; flags:A+;) - -# -# Include classification & priority settings -# Note for Windows users: You are advised to make this an absolute path, -# such as: c:\snort\etc\classification.config -#
+# metadata reference data. do not modify these lines include /etc/snort/rules/classification.config - -# -# Include reference systems -# Note for Windows users: You are advised to make this an absolute path, -# such as: c:\snort\etc\reference.config -# - include /etc/snort/rules/reference.config
-#################################################################### -# Step #5: Configure snort with config statements -# -# See the snort manual for a full set of configuration references -# -# config flowbits_size: 64 -# -# New global ignore_ports config option from Andy Mullican -# -# config ignore_ports: <tcp|udp> <list of ports separated by whitespace> -# config ignore_ports: tcp 21 6667:6671 1356 -# config ignore_ports: udp 1:17 53
+################################################### +# Step #7: Customize your rule set +# For more information, see Snort Manual, Writing Snort Rules +###################################################
-#################################################################### -# Step #6: Customize your rule set -# -# Up to date snort rules are available at http://www.snort.org -# -# The snort web site has documentation about how to write your own custom snort -# rules. +# site specific rules
-#========================================= -# Include all relevant rulesets here -# -# The following rulesets are disabled by default: -# -# web-attacks, backdoor, shellcode, policy, porn, info, icmp-info, virus, -# chat, multimedia, and p2p -# -# These rules are either site policy specific or require tuning in order to not -# generate false positive alerts in most enviornments. -# -# Please read the specific include file for more information and -# README.alert_order for how rule ordering affects how alerts are triggered. -#========================================= - -#include $RULE_PATH/local.rules -#include $RULE_PATH/bad-traffic.rules -#include $RULE_PATH/exploit.rules -#include $RULE_PATH/scan.rules -#include $RULE_PATH/finger.rules -#include $RULE_PATH/ftp.rules -#include $RULE_PATH/telnet.rules -#include $RULE_PATH/rpc.rules -#include $RULE_PATH/rservices.rules -#include $RULE_PATH/dos.rules -#include $RULE_PATH/ddos.rules -#include $RULE_PATH/dns.rules -#include $RULE_PATH/tftp.rules -#include $RULE_PATH/web-cgi.rules -#include $RULE_PATH/web-coldfusion.rules -#include $RULE_PATH/web-iis.rules -#include $RULE_PATH/web-frontpage.rules -#include $RULE_PATH/web-misc.rules -#include $RULE_PATH/web-client.rules -#include $RULE_PATH/web-php.rules -#include $RULE_PATH/sql.rules -#include $RULE_PATH/x11.rules -#include $RULE_PATH/icmp.rules -#include $RULE_PATH/netbios.rules -#include $RULE_PATH/misc.rules -#include $RULE_PATH/attack-responses.rules -#include $RULE_PATH/oracle.rules -#include $RULE_PATH/mysql.rules -#include $RULE_PATH/snmp.rules -#include $RULE_PATH/smtp.rules -#include $RULE_PATH/imap.rules -#include $RULE_PATH/pop2.rules -#include $RULE_PATH/pop3.rules -#include $RULE_PATH/nntp.rules -#include $RULE_PATH/other-ids.rules -# include $RULE_PATH/web-attacks.rules -# include $RULE_PATH/backdoor.rules -# include $RULE_PATH/shellcode.rules -# include $RULE_PATH/policy.rules -# include $RULE_PATH/porn.rules -# include $RULE_PATH/info.rules -# include $RULE_PATH/icmp-info.rules -# include $RULE_PATH/virus.rules -# include $RULE_PATH/chat.rules -# include $RULE_PATH/multimedia.rules -# include $RULE_PATH/p2p.rules -# include $RULE_PATH/spyware-put.rules -# include $RULE_PATH/specific-threats.rules -#include $RULE_PATH/experimental.rules -# include $PREPROC_RULE_PATH/preprocessor.rules -# include $PREPROC_RULE_PATH/decoder.rules - -# Include any thresholding or suppression commands. See threshold.conf in the -# <snort src>/etc directory for details. Commands don't necessarily need to be -# contained in this conf, but a separate conf makes it easier to maintain them. -# Note for Windows users: You are advised to make this an absolute path, -# such as: c:\snort\etc\threshold.conf -# Uncomment if needed. -# include threshold.conf diff --git a/config/squidclamav/squidclamav.conf b/config/squidclamav/squidclamav.conf index de8e13f..19bffa0 100644 --- a/config/squidclamav/squidclamav.conf +++ b/config/squidclamav/squidclamav.conf @@ -2,7 +2,7 @@ #squid_port 3128 proxy none # -logfile /var/log/squidclamav.log +logfile /var/log/squid/squidclamav.log redirect http://127.0.0.1:81/clwarn.cgi # debug 0 diff --git a/config/syslinux/syslinux.cfg b/config/syslinux/syslinux.cfg index 15af66e..361a316 100644 --- a/config/syslinux/syslinux.cfg +++ b/config/syslinux/syslinux.cfg @@ -4,16 +4,16 @@ PROMPT 1 F1 boot.msg F2 options.msg DEFAULT vmlinuz - APPEND ide=nodma initrd=instroot root=/dev/ram0 ramdisk_size=16384 vga=791 splash=silent ro + APPEND ide=nodma initrd=instroot vga=791 splash=silent ro LABEL novga KERNEL vmlinuz - APPEND ide=nodma initrd=instroot root=/dev/ram0 ramdisk_size=16384 ro + APPEND ide=nodma initrd=instroot ro LABEL dma KERNEL vmlinuz - APPEND initrd=instroot root=/dev/ram0 ramdisk_size=16384 vga=791 splash=silent ro + APPEND initrd=instroot vga=791 splash=silent ro LABEL unattended KERNEL vmlinuz - APPEND ide=nodma initrd=instroot root=/dev/ram0 ramdisk_size=16384 vga=791 splash=silent unattended ro + APPEND ide=nodma initrd=instroot vga=791 splash=silent unattended ro LABEL memtest KERNEL memtest APPEND - diff --git a/config/udev/blacklist b/config/udev/blacklist index 1085bf4..5e470a9 100644 --- a/config/udev/blacklist +++ b/config/udev/blacklist @@ -1,30 +1,2 @@ -blacklist hisax -blacklist hisax_fcpcipnp -blacklist hisax_isac blacklist crc_ccitt -blacklist isdn blacklist slhc -blacklist capi -blacklist capifs -blacklist kernelcapi -blacklist kernel_capi -blacklist avmfritz -blacklist hfcmulti -blacklist mISDN_core -blacklist mISDN_l1 -blacklist mISDN_l2 -blacklist l3udss1 -blacklist mISDN_capi -blacklist mISDN_isac -blacklist hfcsusb -blacklist hfcpci -blacklist hfcsmini -blacklist l1oip -blacklist mISDN_dsp -blacklist netjetpci -blacklist sedlfax -blacklist w6692pci -blacklist xhfc -blacklist mISDNinfineon -blacklist avmfritz -blacklist speedfax diff --git a/doc/packages-list.txt b/doc/packages-list.txt index ae5cd45..f0b0afc 100644 --- a/doc/packages-list.txt +++ b/doc/packages-list.txt @@ -1,4 +1,4 @@ -== List of softwares used to build IPFire Version: 2.6 == +== List of softwares used to build IPFire Version: 2.7 == * Archive-Tar-1.29 * Archive-Zip-1.16 * BerkeleyDB-0.27 @@ -27,16 +27,17 @@ * MailTools-1.74 * Net-DNS-0.47 * Net-IPv4Addr-0.10 -* Net-SSLeay-1.35 +* Net-SSLeay-1.36 * Net-Server-0.97 -* Python-2.4.3 +* Pound-2.5 +* Python-2.7 * SDL-1.2.11 * Text-Tabs+Wrap-2005.0824 * URI-1.35 * Unix-Syslog-0.100 * XML-Parser-2.34 -* alsa-lib-1.0.22 -* alsa-lib-1.0.22-kmod-2.6.32.10-ipfire +* alsa-lib-1.0.23 +* alsa-lib-1.0.23-kmod-2.6.32.15-ipfire * amavisd-new-2.5.2 * apcupsd-3.14.4 * applejuice-0.31 @@ -64,34 +65,40 @@ * ccache-3.0pre0 * cdrtools-2.01.01 * centerim-4.22.1 -* clamav-0.95.3 +* clamav-0.96.1 * cmake-2.4.8 * collectd-4.9.1 +* compat-wireless-2.6.34.1-kmod-2.6.32.15-ipfire +* compat-wireless-2.6.34.1-kmod-2.6.32.15-ipfire-xen * coreutils-5.96 -* cpio-2.6 +* cpio-2.11 * cpufrequtils-007 -* cryptodev-20091126-kmod-2.6.32.10-ipfire -* cryptodev-20091126-kmod-2.6.32.10-ipfire-xen +* cryptodev-20091126-kmod-2.6.32.15-ipfire +* cryptodev-20091126-kmod-2.6.32.15-ipfire-xen * cups-1.4.2 * curl-7.19.5 * cyrus-imapd-2.2.12 * cyrus-sasl-2.1.21 * dahdi-2.2.1 -* dahdi-2.2.1-kmod-2.6.32.10-ipfire -* dahdi-2.2.1-kmod-2.6.32.10-ipfire-xen +* dahdi-2.2.1-kmod-2.6.32.15-ipfire +* dahdi-2.2.1-kmod-2.6.32.15-ipfire-xen * db-4.4.20 * dbus-1.0.3 +* ddrescue-1.12 * dhcp-3.1.0 * dhcpcd-5.1.3 * diffutils-2.8.1 * dnsmasq-2.45 -* dosfstools-2.11 -* e2fsprogs-1.39 +* dosfstools-3.0.9 +* e1000-8.0.19-kmod-2.6.32.15-ipfire +* e1000-8.0.19-kmod-2.6.32.15-ipfire-xen +* e1000e-1.1.19-kmod-2.6.32.15-ipfire +* e1000e-1.1.19-kmod-2.6.32.15-ipfire-xen +* e2fsprogs-1.41.11 * ebtables-v2.0.8-2 * ed-0.2 * eject-2.1.5 -* elinks-0.11.6 -* esniper-2-19-0 +* elinks-0.11.7 * espgs-8.15.1 * etherwake-1.09 * ethtool-3 @@ -101,7 +108,7 @@ * fbset-2.1 * fcron-3.0.4 * feedparser-4.1 -* fetchmail-6.3.11 +* fetchmail-6.3.16 * ffmpeg-export-2008-04-13 * file-4.17 * findutils-4.2.27 @@ -131,7 +138,7 @@ * gzip-1.3.5 * hddtemp-0.3-beta14 * hdparm-8.9 -* hostapd-0.7.1 +* hostapd-0.7.2 * hplip-2.7.10 * htop-0.8.1 * httpd-2.2.15 @@ -156,18 +163,20 @@ * jpegsrc.v6b * kbd-1.12 * klibc-1.5.14 -* kqemu-1.4.0pre1-kmod-2.6.32.10-ipfire -* kqemu-1.4.0pre1-kmod-2.6.32.10-ipfire-xen +* kqemu-1.4.0pre1-kmod-2.6.32.15-ipfire +* kqemu-1.4.0pre1-kmod-2.6.32.15-ipfire-xen * kudzu-1.2.64 +* kvm-kmod-2.6.33.1-kmod-2.6.32.15-ipfire * l7-protocols-2009-05-10 * lame-3.97 * lcd4linux-0.10.1-RC2 -* lcr_20090906 +* lcr-20100601 * less-394 * libaal-1.0.5 * libart_lgpl-2.3.17 * libcap-1.10 * libdvbpsi5-0.1.6 +* libevent-1.4.14b-stable * libid3tag-0.15.1b * libidn-0.6.14 * libmad-0.15.1b @@ -177,7 +186,7 @@ * libogg-1.1.4 * liboping-1.3.4 * libpcap-1.0.0 -* libpng-1.2.12 +* libpng-1.2.44 * libpri-1.4.10.2 * libsafe_2.0-16 * libshout-2.2.2 @@ -190,8 +199,8 @@ * libwww-perl-5.803 * libxml2-2.6.26 * libxslt-1.1.17 -* linux-2.6.32.10-ipfire -* linux-2.6.32.10-ipfire-xen +* linux-2.6.32.15-ipfire +* linux-2.6.32.15-ipfire-xen * linux-atm-2.4.1 * linux-firmware-20100318 * linux-libc-headers-2.6.12.0 @@ -202,19 +211,22 @@ * lynis-1.2.9 * lzo-2.02 * m4-1.4.4 -* mISDNuser_20090906 -* madwifi-hal-0.10.5.6-r4119-20100201-kmod-2.6.32.10-ipfire -* madwifi-hal-0.10.5.6-r4119-20100201-kmod-2.6.32.10-ipfire-xen +* mISDN-20100525-kmod-2.6.32.15-ipfire +* mISDN-20100525-kmod-2.6.32.15-ipfire-xen +* mISDNuser-20100525 +* madwifi-hal-0.10.5.6-r4119-20100201-kmod-2.6.32.15-ipfire +* madwifi-hal-0.10.5.6-r4119-20100201-kmod-2.6.32.15-ipfire-xen * make-3.81 * man-db-2.4.3 * man-pages-2.34 * mbr-1.1.8 -* mc-4.7.0 +* mc-4.7.3 * mdadm-3.1.1 * mechanize-0.1.8 * mediatomb-svn2020 -* memtest86+-4.00 +* memtest86+-4.10 * miau-0.6.5 +* minicom-2.4 * misc-progs * mkinitcpio-0.5.9 * mktemp-1.5 @@ -239,20 +251,20 @@ * netcat-0.7.1 * netpbm-10.26.46 * newt-0.51.6 -* nfs-utils-1.1.1 +* nfs-utils-1.2.2 * nmap-5.20 * noip_updater_v1.6 * ntfs-3g-2009.4.4 * ntp-4.2.4p7 -* nut-2.4.1 +* nut-2.4.3 * ocaml-3.09.2 * oinkmaster-2.0 -* open-vm-tools-2009.05.22-167859 +* open-vm-tools-8.4.2-261024 * openldap-2.3.20 * openmailadmin-1.0.0 * openssh-5.4p1 -* openssl-0.9.8n -* openvpn-2.1_rc20 +* openssl-0.9.8o +* openvpn-2.1.1 * p7zip_4.65 * pam_mysql-0.7RC1 * patch-2.5.4 @@ -266,44 +278,49 @@ * pkg-config-0.20 * popt-1.10.4 * portmap_6.0 -* postfix-2.6.2 -* ppp-2.4.4 +* postfix-2.6.5 +* ppp-2.4.5 * pptp-1.7.2 * procps-3.2.6 * psmisc-22.2 -* qemu-0.11.0-kqemu -* qemu-0.12.2 +* qemu-0.11.1-kqemu +* qemu-0.12.3 +* r8101-1.016.00-kmod-2.6.32.15-ipfire +* r8101-1.016.00-kmod-2.6.32.15-ipfire-xen +* r8168-8.018.00-kmod-2.6.32.15-ipfire +* r8168-8.018.00-kmod-2.6.32.15-ipfire-xen +* r8169-6.013.00-kmod-2.6.32.15-ipfire +* r8169-6.013.00-kmod-2.6.32.15-ipfire-xen * readline-5.1 -* reiser4progs-1.0.5 -* reiserfsprogs-3.6.19 -* rp-pppoe-3.8 +* reiser4progs-1.0.6 +* reiserfsprogs-3.6.21 * rrdtool-1.2.30 * rssdler-0.4.0a * rsync-3.0.7 * rtorrent-0.8.6 -* samba-3.5.1 +* samba-3.5.4 * sane-1.0.19 * screen-4.0.3 * sdparm-1.01 * sed-4.1.5 * setserial-2.17 -* setuptools-0.6c8 +* setuptools-0.6c11 * shadow-4.0.15 * slang-1.4.9 -* smartmontools-5.39 -* snort-2.8.4 +* smartmontools-5.39.1 +* snort-2.8.6 * sox-12.18.1 * spandsp-0.0.6pre12 * splix-2.0.0-rc2 * sqlite-3.6.10 * squashfs-lzma-cvs20100214 -* squid-2.7.STABLE7 +* squid-2.7.STABLE9 * squidGuard-1.4.1 -* squidclamav-5.2 +* squidclamav-5.3 * sshfs-fuse-2.2 * sslh-1.7a * streamripper-1.63.5 -* strongswan-4.3.6 +* strongswan-4.4.0 * sudo-1.6.8p12 * sysfsutils-1.3.0 * sysklogd-1.5 @@ -314,11 +331,10 @@ * tar-1.22 * tcp_wrappers_7.6 * tcpdump-4.0.0 -* tcptrack-1.3.0 * teamspeak-2.0.24.1 * texinfo-4.8 * tftp-hpa-0.48 -* tiff-3.8.2 +* tiff-3.9.4 * traceroute-2.0.12 * tripwire-2.4.1.2 * tunctl @@ -326,13 +342,13 @@ * udev-096-klibc * unzip552 * urlgrabber-3.1.0 -* usb_modeswitch-1.0.6 +* usb-modeswitch-1.1.2 * usbutils-0.72 * util-linux-2.12r -* v4l-dvb-690055993011-kmod-2.6.32.10-ipfire -* v4l-dvb-690055993011-kmod-2.6.32.10-ipfire-xen +* v4l-dvb-b576509ea6d2-kmod-2.6.32.15-ipfire +* v4l-dvb-b576509ea6d2-kmod-2.6.32.15-ipfire-xen * vdr-1.6.0 -* vdradmin-am-3.6.5 +* vdradmin-am-3.6.7 * vim-7.0 * vlan.1.9 * vlc-0.8.6i @@ -340,7 +356,7 @@ * vnstati-beta3 * vsftpd-2.1.2 * w_scan-20080105 -* watchdog-5.6 +* watchdog-5.9 * wget-1.10.2 * whatmask-1.2 * which-2.16 diff --git a/html/cgi-bin/connections.cgi b/html/cgi-bin/connections.cgi index b370d12..7b53c00 100644 --- a/html/cgi-bin/connections.cgi +++ b/html/cgi-bin/connections.cgi @@ -57,7 +57,7 @@ if (open(IP, "${General::swroot}/red/local-ipaddress")) { push(@colour, ${Header::colourfw} ); }
-my @vpn = `grep "rightsubnet=" /etc/ipsec.conf | cut -f2 -d"=" | sed "s|/| |g"`; +my @vpn = `/usr/local/bin/ipsecctrl I|grep erouted|cut -d"]" -f3|cut -d"=" -f4|cut -d";" -f1| sed "s|/| |g"`; foreach my $route (@vpn) { chomp($route); my @temp = split(/[\t ]+/, $route); diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi index 29f1a28..cde6065 100644 --- a/html/cgi-bin/dhcp.cgi +++ b/html/cgi-bin/dhcp.cgi @@ -1199,6 +1199,7 @@ sub buildconf { $key++; } } + print FILE "include "${General::swroot}/dhcp/dhcpd.conf.local";\n"; close FILE; if ( $dhcpsettings{"ENABLE_GREEN"} eq 'on' || $dhcpsettings{"ENABLE_BLUE"} eq 'on' ) {system '/usr/local/bin/dhcpctrl enable >/dev/null 2>&1';} else {system '/usr/local/bin/dhcpctrl disable >/dev/null 2>&1';} diff --git a/html/cgi-bin/extrahd.cgi b/html/cgi-bin/extrahd.cgi index d46956e..741cba6 100644 --- a/html/cgi-bin/extrahd.cgi +++ b/html/cgi-bin/extrahd.cgi @@ -164,7 +164,7 @@ END
&Header::closebox();
-&Header::openbox('100%', 'center', $Lang::tr{'extrahd founded drives'}); +&Header::openbox('100%', 'center', $Lang::tr{'extrahd detected drives'}); print <<END <table border='0' width='600' cellspacing="0"> END diff --git a/html/cgi-bin/ids.cgi b/html/cgi-bin/ids.cgi index 0118783..4d66d22 100644 --- a/html/cgi-bin/ids.cgi +++ b/html/cgi-bin/ids.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2005-2010 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -19,20 +19,21 @@ # # ###############################################################################
- -use LWP::UserAgent; -use File::Copy; -use File::Temp qw/ tempfile tempdir /; use strict;
# enable only the following on debugging purpose #use warnings; #use CGI::Carp 'fatalsToBrowser'; +use File::Copy;
require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl";
+sub refreshpage{&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'pagerefresh'}</font></center>";&Header::closebox();} + +$a = new CGI; + my %color = (); my %mainsettings = (); &General::readhash("${General::swroot}/main/settings", %mainsettings); @@ -43,8 +44,6 @@ my %checked=(); my %selected=(); my %netsettings=(); our $errormessage = ''; -our $md5 = '0';# not '' to avoid displaying the wrong message when INSTALLMD5 not set -our $realmd5 = ''; our $results = ''; our $tempdir = ''; our $url=''; @@ -69,7 +68,8 @@ $snortsettings{'ACTION2'} = ''; $snortsettings{'RULES'} = ''; $snortsettings{'OINKCODE'} = ''; $snortsettings{'INSTALLDATE'} = ''; -$snortsettings{'INSTALLMD5'} = ''; +$snortsettings{'FILE'} = ''; +$snortsettings{'UPLOAD'} = '';
&Header::getcgihash(%snortsettings, {'wantfile' => 1, 'filevar' => 'FH'});
@@ -146,7 +146,7 @@ if (-e "/etc/snort/snort.conf") { # If see more than one dashed line, (start to) create rule file description if ($dashlinecnt > 1) { # Check for a line starting with a # - if ($ruleline =~ /^#/) { + if ($ruleline =~ /^#/ and $ruleline !~ /^#alert/) { # Create tempruleline my $tempruleline = $ruleline;
@@ -263,13 +263,15 @@ if (-e "/etc/snort/snort.conf") { ####################### End added for snort rules control #################################
if ($snortsettings{'RULES'} eq 'subscripted') { - $url="http://dl.snort.org/sub-rules/snortrules-snapshot-2.8_s.tar.gz?oink_code=$sn..."; + #$url="http://dl.snort.org/sub-rules/snortrules-snapshot-2.8_s.tar.gz?oink_code=$sn..."; + $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2860_s.tar.gz/$snortsetti..."; #$url="http://www.snort.org/pub-bin/oinkmaster.cgi/$snortsettings%7B%27OINKCODE%27%..."; } elsif ($snortsettings{'RULES'} eq 'registered') { - $url="http://dl.snort.org/reg-rules/snortrules-snapshot-2.8.tar.gz?oink_code=$snor..."; + #$url="http://dl.snort.org/reg-rules/snortrules-snapshot-2.8.tar.gz?oink_code=$snor..."; + $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2860.tar.gz/$snortsetting..."; #$url="http://www.snort.org/pub-bin/oinkmaster.cgi/$snortsettings%7B%27OINKCODE%27%..."; } else { - $url="http://www.snort.org/pub-bin/downloads.cgi/Download/comm_rules/Community-Rul..."; + $url="http://www.emergingthreats.net/rules/emerging.rules.tar.gz"; }
if ($snortsettings{'ACTION'} eq $Lang::tr{'save'} && $snortsettings{'ACTION2'} eq "snort" ) @@ -319,8 +321,14 @@ if ($snortsettings{'ACTION'} eq $Lang::tr{'save'} && $snortsettings{'ACTION2'} e system('/usr/local/bin/snortctrl restart >/dev/null');
} elsif ($snortsettings{'ACTION'} eq $Lang::tr{'save'} && $snortsettings{'ACTION2'} eq "guardian" ){ + foreach my $key (keys %snortsettings){ + if ( $key !~ /^GUARDIAN/ ){ + delete $snortsettings{$key}; + } + } + &General::writehashpart("${General::swroot}/snort/settings", %snortsettings); open(IGNOREFILE, ">$snortsettings{'GUARDIAN_IGNOREFILE'}") or die "Unable to write guardian ignore file $snortsettings{'GUARDIAN_IGNOREFILE'}"; - print IGNOREFILE $snortsettings{'IGNOREFILE_CONTENT'}; + print IGNOREFILE $snortsettings{'GUARDIAN_IGNOREFILE_CONTENT'}; close(IGNOREFILE); open(GUARDIAN, ">/var/ipfire/guardian/guardian.conf") or die "Unable to write guardian conf /var/ipfire/guardian/guardian.conf"; print GUARDIAN <<END @@ -339,24 +347,43 @@ END # INSTALLMD5 is not in the form, so not retrieved by getcgihash &General::readhash("${General::swroot}/snort/settings", %snortsettings);
-if ($snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'}) { - $md5 = &getmd5; - if (($snortsettings{'INSTALLMD5'} ne $md5) && defined $md5 ) { - chomp($md5); - my $filename = &downloadrulesfile(); - if (defined $filename) { - # Check MD5sum - $realmd5 = `/usr/bin/md5sum $filename`; - chomp ($realmd5); - $realmd5 =~ s/^(\w+)\s.*$/$1/; - if ( $md5 ne $realmd5 ) { - $errormessage = "$Lang::tr{'invalid md5sum'} - $md5 - $realmd5"; +if ($snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} || $snortsettings{'ACTION'} eq $Lang::tr{'upload new ruleset'}) { + + my @df = `/bin/df -B M /var`; + foreach my $line (@df) { + next if $line =~ m/^Filesystem/; + my $return; + + if ($line =~ m/dev/ ) { + $line =~ m/^.* (\d+)M.*$/; + my @temp = split(/ +/,$line); + if ($1<300) { + $errormessage = "$Lang::tr{'not enough disk space'} < 300MB, /var $1MB"; } else { - $results = "<b>$Lang::tr{'installed updates'}</b>\n<pre>"; - $results .=`/usr/local/bin/oinkmaster.pl -s -u file://$filename -C /var/ipfire/snort/oinkmaster.conf -o /etc/snort/rules 2>&1`; - $results .= "</pre>"; + + if ( $snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} ){ + + &downloadrulesfile(); + sleep(3); + $return = `cat /var/tmp/log 2>/dev/null`; + + } elsif ( $snortsettings{'ACTION'} eq $Lang::tr{'upload new ruleset'} ) { + my $upload = $a->param("UPLOAD"); + open UPLOADFILE, ">/var/tmp/snortrules.tar.gz"; + binmode $upload; + while ( <$upload> ) { + print UPLOADFILE; + } + close UPLOADFILE; + } + + if ($return =~ "ERROR"){ + $errormessage = "<br /><pre>".$return."</pre>"; + } else { + system("/usr/local/bin/oinkmaster.pl -v -s -u file:///var/tmp/snortrules.tar.gz -C /var/ipfire/snort/oinkmaster.conf -o /etc/snort/rules >>/var/tmp/log 2>&1 &"); + sleep(2); + } } - unlink ($filename); } } } @@ -412,6 +439,19 @@ END
&Header::openbigbox('100%', 'left', '', $errormessage);
+############### +# DEBUG DEBUG +# &Header::openbox('100%', 'left', 'DEBUG'); +# my $debugCount = 0; +# foreach my $line (sort keys %snortsettings) { +# print "$line = $snortsettings{$line}<br />\n"; +# $debugCount++; +# } +# print " Count: $debugCount\n"; +# &Header::closebox(); +# DEBUG DEBUG +############### + if ($errormessage) { &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); print "<class name='base'>$errormessage\n"; @@ -419,6 +459,37 @@ if ($errormessage) { &Header::closebox(); }
+my $return = `pidof oinkmaster.pl -x`; +chomp($return); +if ($return) { + &Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='10;'>" ); + print <<END; + <table> + <tr><td> + <img src='/images/indicator.gif' alt='$Lang::tr{'aktiv'}' /> + <td> + $Lang::tr{'snort working'} + <tr><td colspan='2' align='center'> + <form method='post' action='$ENV{'SCRIPT_NAME'}'> + <input type='image' alt='$Lang::tr{'reload'}' src='/images/view-refresh.png' /> + </form> + <tr><td colspan='2' align='left'><pre> +END + my @output = `tail -20 /var/tmp/log`; + foreach (@output) { + print "$_"; + } + print <<END; + </pre> + </table> +END + &Header::closebox(); + &Header::closebigbox(); + &Header::closepage(); + exit; + refreshpage(); +} + &Header::openbox('100%', 'left', $Lang::tr{'intrusion detection system2'}); print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'><table width='100%'> @@ -467,16 +538,12 @@ print <<END END ;
-if ($snortsettings{'INSTALLMD5'} eq $md5) { - print " $Lang::tr{'rules already up to date'}</td>"; -} else { - if ( $snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} && $md5 eq $realmd5 ) { - $snortsettings{'INSTALLMD5'} = $realmd5; - $snortsettings{'INSTALLDATE'} = `/bin/date +'%Y-%m-%d'`; - &General::writehash("${General::swroot}/snort/settings", %snortsettings); - } - print " $Lang::tr{'updates installed'}: $snortsettings{'INSTALLDATE'}</td>"; +if ( $snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} ) { + $snortsettings{'INSTALLDATE'} = `/bin/date +'%Y-%m-%d'`; + &General::writehash("${General::swroot}/snort/settings", %snortsettings); } +print " $Lang::tr{'updates installed'}: $snortsettings{'INSTALLDATE'}</td>"; + print <<END </tr> </table> @@ -501,11 +568,11 @@ if ( -e "/var/ipfire/guardian/guardian.conf" ) { &Header::openbox('100%', 'LEFT', $Lang::tr{'guardian configuration'}); print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'><table width='100%'> -<tr><td align='left' width='40%'>$Lang::tr{'guardian interface'}</td><td align='left'><input type='text' name='INTERFACE' value='$snortsettings{'GUARDIAN_INTERFACE'}' size="30" /></td></tr> -<tr><td align='left' width='40%'>$Lang::tr{'guardian timelimit'}</td><td align='left'><input type='text' name='TIMELIMIT' value='$snortsettings{'GUARDIAN_TIMELIMIT'}' size="30" /></td></tr> -<tr><td align='left' width='40%'>$Lang::tr{'guardian logfile'}</td><td align='left'><input type='text' name='LOGFILE' value='$snortsettings{'GUARDIAN_LOGFILE'}' size="30" /></td></tr> -<tr><td align='left' width='40%'>$Lang::tr{'guardian alertfile'}</td><td align='left'><input type='text' name='ALERTFILE' value='$snortsettings{'GUARDIAN_ALERTFILE'}' size="30" /></td></tr> -<tr><td align='left' width='40%'>$Lang::tr{'guardian ignorefile'}</td><td align='left'><textarea name='IGNOREFILE_CONTENT' cols='32' rows='6' wrap='off'> +<tr><td align='left' width='40%'>$Lang::tr{'guardian interface'}</td><td align='left'><input type='text' name='GUARDIAN_INTERFACE' value='$snortsettings{'GUARDIAN_INTERFACE'}' size="30" /></td></tr> +<tr><td align='left' width='40%'>$Lang::tr{'guardian timelimit'}</td><td align='left'><input type='text' name='GUARDIAN_TIMELIMIT' value='$snortsettings{'GUARDIAN_TIMELIMIT'}' size="30" /></td></tr> +<tr><td align='left' width='40%'>$Lang::tr{'guardian logfile'}</td><td align='left'><input type='text' name='GUARDIAN_LOGFILE' value='$snortsettings{'GUARDIAN_LOGFILE'}' size="30" /></td></tr> +<tr><td align='left' width='40%'>$Lang::tr{'guardian alertfile'}</td><td align='left'><input type='text' name='GUARDIAN_ALERTFILE' value='$snortsettings{'GUARDIAN_ALERTFILE'}' size="30" /></td></tr> +<tr><td align='left' width='40%'>$Lang::tr{'guardian ignorefile'}</td><td align='left'><textarea name='GUARDIAN_IGNOREFILE_CONTENT' cols='32' rows='6' wrap='off'> END ; print `cat /var/ipfire/guardian/guardian.ignore`; @@ -540,6 +607,11 @@ if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable foreach my $rulefile (sort keys(%snortrules)) { my $rulechecked = '';
+ # Hide inkompatible Block rules + if ($rulefile =~'-BLOCK.rules') { + next; + } + # Check if reached half-way through rule file rules to start new column if ($ruledisplaycnt > $rulecnt) { print "</TABLE></TD><TD VALIGN='TOP'><TABLE>"; @@ -676,82 +748,27 @@ END &Header::closebigbox(); &Header::closepage();
-sub getmd5 { - # Retrieve MD5 sum from $url.md5 file - - my $md5buf; - if ($snortsettings{'RULES'} eq 'subscripted') { - $md5buf = &geturl("http://dl.snort.org/reg-rules/snortrules-snapshot-2.8_s.tar.gz.md5?oink_code..."); - } elsif ($snortsettings{'RULES'} eq 'registered') { - $md5buf = &geturl("http://dl.snort.org/reg-rules/snortrules-snapshot-2.8.tar.gz.md5?oink_code=$..."); - } else { - $md5buf = &geturl("http://www.snort.org/pub-bin/downloads.cgi/Download/comm_rules/Community-Rul..."); - } - - return undef unless $md5buf; - - if (0) { # 1 to debug - my $filename=''; - my $fh=''; - ($fh, $filename) = tempfile('/var/tmp/XXXXXXXX',SUFFIX => '.md5' ); - binmode ($fh); - syswrite ($fh, $md5buf->content); - close($fh); - } - - return $md5buf->content; -} sub downloadrulesfile { - my $return = &geturl($url); - return undef unless $return; - - if (index($return->content, "\037\213") == -1 ) { # \037\213 is .gz beginning - $errormessage = $Lang::tr{'invalid loaded file'}; - return undef; - } - - my $filename=''; - my $fh=''; - ($fh, $filename) = tempfile('/var/tmp/XXXXXXXX',SUFFIX => '.tar.gz' );#oinkmaster work only with this extension - binmode ($fh); - syswrite ($fh, $return->content); - close($fh); - return $filename; -} + my $peer; + my $peerport;
-sub geturl ($) { - my $url=$_[0]; + unlink("/var/tmp/log");
unless (-e "${General::swroot}/red/active") { $errormessage = $Lang::tr{'could not download latest updates'}; return undef; }
- my $downloader = LWP::UserAgent->new; - $downloader->timeout(5); - my %proxysettings=(); &General::readhash("${General::swroot}/proxy/settings", %proxysettings);
if ($_=$proxysettings{'UPSTREAM_PROXY'}) { - my ($peer, $peerport) = (/^(?:[a-zA-Z ]+://)?(?:[A-Za-z0-9_.-]*?(?::[A-Za-z0-9_.-]*?)?@)?([a-zA-Z0-9._-]*?)(?::([0-9]{1,5}))?(?:/.*?)?$/); - if ($proxysettings{'UPSTREAM_USER'}) { - $downloader->proxy("http","http://$proxysettings%7B%27UPSTREAM_USER%27%7D:$proxysettings%7B%27UPSTREAM_..."); - } else { - $downloader->proxy("http","http://$peer:$peerport/"); - } + ($peer, $peerport) = (/^(?:[a-zA-Z ]+://)?(?:[A-Za-z0-9_.-]*?(?::[A-Za-z0-9_.-]*?)?@)?([a-zA-Z0-9._-]*?)(?::([0-9]{1,5}))?(?:/.*?)?$/); }
- my $return = $downloader->get($url,'Cache-Control','no-cache'); - - if ($return->code == 403) { - $errormessage = $Lang::tr{'access refused with this oinkcode'}; - return undef; - } elsif (!$return->is_success()) { - $errormessage = $Lang::tr{'could not download latest updates'}; - return undef; + if ($peer) { + system("wget -r --proxy=on --proxy-user=$proxysettings{'UPSTREAM_USER'} --proxy-passwd=$proxysettings{'UPSTREAM_PASSWORD'} -e http_proxy=http://$peer:$peerport/ -o /var/tmp/log --no-check-certificate --output-document=/var/tmp/snortrules.tar.gz $url"); + } else { + system("wget -r --no-check-certificate -o /var/tmp/log --output-document=/var/tmp/snortrules.tar.gz $url"); } - - return $return; - } diff --git a/html/cgi-bin/iptables.cgi b/html/cgi-bin/iptables.cgi index 080371b..886330d 100644 --- a/html/cgi-bin/iptables.cgi +++ b/html/cgi-bin/iptables.cgi @@ -106,8 +106,9 @@ END }
$lines++; - + } + $chains{$chainname."end"} = $lines-1; close (FILE);
# now the chain hash is extracted to get the correct name of the chain @@ -119,7 +120,7 @@ END # colored gui
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n<select name='selectedchain' style='width: 250px'>\n"; - foreach (keys(%chains)){ + foreach (sort(keys(%chains))){
if ( $_ =~ /end$/ ){ next; @@ -229,6 +230,7 @@ END $manlines++; } + $chainsman{$chainname."end"} = $manlines-1; close (FILE);
# now the chain hash is extracted to get the correct name of the chain @@ -240,7 +242,7 @@ END # colored gui
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n<select name='selectedchain' style='width: 250px'>\n"; - foreach (keys(%chainsman)){ + foreach (sort(keys(%chainsman))){
if ( $_ =~ /end$/ ){ next; @@ -355,6 +357,7 @@ END $natlines++; } + $chainsnat{$chainname."end"} = $natlines-1; close (FILE);
# now the chain hash is extracted to get the correct name of the chain @@ -366,7 +369,7 @@ END # colored gui
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n<select name='selectedchain' style='width: 250px'>\n"; - foreach (keys(%chainsnat)){ + foreach (sort(keys(%chainsnat))){
if ( $_ =~ /end$/ ){ next; diff --git a/html/cgi-bin/outgoingfw.cgi b/html/cgi-bin/outgoingfw.cgi index c5db16b..b746a8e 100644 --- a/html/cgi-bin/outgoingfw.cgi +++ b/html/cgi-bin/outgoingfw.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 Michael Tremer & Christian Schmidt # +# Copyright (C) 2005-2010 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -41,6 +41,7 @@ my @p2ps = (); my @p2pline = ();
my $configfile = "/var/ipfire/outgoing/rules"; +my $configpath = "/var/ipfire/outgoing/groups/"; my $p2pfile = "/var/ipfire/outgoing/p2protocols"; my $servicefile = "/var/ipfire/outgoing/defaultservices";
@@ -145,7 +146,7 @@ if ( $outfwsettings{'TIME_MON'} eq "" && $outfwsettings{'TIME_SUN'} = "on"; }
-&Header::openpage('Ausgehende Firewall', 1, ''); +&Header::openpage($Lang::tr{'outgoing firewall'}, 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage);
############################################################################################################################ @@ -464,14 +465,14 @@ END unless ($outfwsettings{'SIP'}) { $outfwsettings{'DISPLAY_SIP'} = 'ALL'; } else { $outfwsettings{'DISPLAY_SIP'} = $outfwsettings{'SIP'}; } unless ($outfwsettings{'SMAC'}) { $outfwsettings{'DISPLAY_SMAC'} = 'ALL'; } else { $outfwsettings{'DISPLAY_SMAC'} = $outfwsettings{'SMAC'}; } print <<END - <tr><td width='14%' align='right'>$Lang::tr{'source ip'}: + <tr><td width='14%' align='right'>$Lang::tr{'source ip or net'}: <td width='14%' align='left'>$outfwsettings{'DISPLAY_SIP'} <td width='44%' colspan='2' align='center'> END ; } print <<END - <tr><td width='14%' align='right'>$Lang::tr{'time'} - </td> + <tr><td width='14%' align='right'>$Lang::tr{'time'} - </td> <td width='14%' align='left'> END ; @@ -558,13 +559,13 @@ END if ($p2pline[2] eq 'on') { print <<END <input type='hidden' name='ACTION' value='disable' /> - <input type='image' name='submit' src='/images/stock_ok.png' alt='' /> + <input type='image' name='submit' src='/images/stock_ok.png' alt='$Lang::tr{'outgoingfw p2p allow'}' title='$Lang::tr{'outgoingfw p2p allow'}'/> END ; } else { print <<END <input type='hidden' name='ACTION' value='enable' /> - <input type='image' name='submit' src='/images/stock_stop.png' alt='' /> + <input type='image' name='submit' src='/images/stock_stop.png' alt='$Lang::tr{'outgoingfw p2p deny'}' title='$Lang::tr{'outgoingfw p2p deny'}' /> END ; } @@ -575,7 +576,7 @@ END } print <<END </table> - <br />$Lang::tr{'outgoingfw p2p description'} + <br />$Lang::tr{'outgoingfw p2p description 1'} <img src='/images/stock_ok.png' align='absmiddle' alt='$Lang::tr{'outgoingfw p2p deny'}'> $Lang::tr{'outgoingfw p2p description 2'} <img src='/images/stock_stop.png' align='absmiddle' alt='$Lang::tr{'outgoingfw p2p deny'}'> $Lang::tr{'outgoingfw p2p description 3'} END ; &Header::closebox(); @@ -607,88 +608,123 @@ END ; &Header::closebox();
-&Header::closebigbox(); -&Header::closepage(); - ############################################################################################################################ ############################################################################################################################
sub addrule { - &Header::openbox('100%', 'center', 'Rules hinzufuegen'); + &Header::openbox('100%', 'center', $Lang::tr{'Add Rule'}); if ($outfwsettings{'EDIT'} eq 'no') { $selected{'ENABLED'} = 'checked'; } $selected{'TIME_FROM'}{$outfwsettings{'TIME_FROM'}} = "selected='selected'"; $selected{'TIME_TO'}{$outfwsettings{'TIME_TO'}} = "selected='selected'"; - print <<END +print <<END <form method='post' action='$ENV{'SCRIPT_NAME'}'> <table width='80%'> - <tr><td width='20%' align='right'>$Lang::tr{'description'}: <img src='/blob.gif' /> - <td width='30%' align='left'><input type='text' name='NAME' maxlength='30' value='$outfwsettings{'NAME'}' /> - <td width='20%' align='right' colspan='2'>$Lang::tr{'active'}: - <td width='30%' align='left' colspan='2'><input type='checkbox' name='ENABLED' $selected{'ENABLED'} /> - <tr><td width='20%' align='right'>$Lang::tr{'protocol'}: - <td width='30%' align='left'> - <select name='PROT'> - <option value='all' $selected{'PROT'}{'all'}>All</option> - <option value='tcp' $selected{'PROT'}{'tcp'}>TCP</option> - <option value='udp' $selected{'PROT'}{'udp'}>UDP</option> - <option value='gre' $selected{'PROT'}{'gre'}>GRE</option> - <option value='esp' $selected{'PROT'}{'esp'}>ESP</option> - </select> - <td width='20%' align='right' colspan='2'>$Lang::tr{'policy'}: - <td width='30%' align='left' colspan='2'> + <tr> + <td width='20%' align='right'>$Lang::tr{'description'}: <img src='/blob.gif' /></td> + <td width='30%' align='left'><input type='text' name='NAME' maxlength='30' value='$outfwsettings{'NAME'}' /></td> + <td width='20%' align='right' colspan='2'>$Lang::tr{'active'}:</td> + <td width='30%' align='left' colspan='2'><input type='checkbox' name='ENABLED' $selected{'ENABLED'} /></td> + </tr> + <tr> + <td width='20%' align='right'>$Lang::tr{'protocol'}:</td> + <td width='30%' align='left'> + <select name='PROT'> + <option value='all' $selected{'PROT'}{'all'}>All</option> + <option value='tcp' $selected{'PROT'}{'tcp'}>TCP</option> + <option value='udp' $selected{'PROT'}{'udp'}>UDP</option> + <option value='gre' $selected{'PROT'}{'gre'}>GRE</option> + <option value='esp' $selected{'PROT'}{'esp'}>ESP</option> + </select> + </td> + <td width='20%' align='right' colspan='2'>$Lang::tr{'policy'}:</td> + <td width='30%' align='left' colspan='2'> END ; if ($outfwsettings{'POLICY'} eq 'MODE1'){ - print "\t\t\tALLOW<input type='hidden' name='STATE' value='ALLOW' />\n"; + print "\t\t\t\tALLOW<input type='hidden' name='STATE' value='ALLOW' />\n"; } elsif ($outfwsettings{'POLICY'} eq 'MODE2'){ - print "\t\t\tDENY<input type='hidden' name='STATE' value='DENY' />\n"; + print "\t\t\t\tDENY<input type='hidden' name='STATE' value='DENY' />\n"; } print <<END - <tr><td width='20%' align='right'>$Lang::tr{'source net'}: - <td width='30%' align='left'><select name='SNET'> - <option value='all' $selected{'SNET'}{'ALL'}>$Lang::tr{'all'}</option> - <option value='ip' $selected{'SNET'}{'ip'}>$Lang::tr{'source ip'}</option> - <option value='red' $selected{'SNET'}{'red'}>$Lang::tr{'red'} IP</option> - <option value='green' $selected{'SNET'}{'green'}>$Lang::tr{'green'}</option> + </td> + </tr> + <tr> + <td width='20%' align='right'>$Lang::tr{'source'}:</td> + <td width='30%' align='left'> + <select name='SNET'> + <optgroup label='---'> + <option value='all' $selected{'SNET'}{'ALL'}>$Lang::tr{'all'}</option> + <optgroup label='$Lang::tr{'ip address'}'> + <option value='ip' $selected{'SNET'}{'ip'}>$Lang::tr{'source ip or net'}</option> + <option value='red' $selected{'SNET'}{'red'}>$Lang::tr{'red'} IP</option> + </optgroup> + <optgroup label='$Lang::tr{'alt vpn'}'> + <option value='ovpn' $selected{'SNET'}{'ovpn'}>OpenVPN $Lang::tr{'interface'}</option> + </optgroup> + <optgroup label='$Lang::tr{'network'}'> + <option value='green' $selected{'SNET'}{'green'}>$Lang::tr{'green'}</option> END ; if (&Header::blue_used()){ - print "\t\t\t<option value='blue' $selected{'SNET'}{'blue'}>$Lang::tr{'wireless'}</option>\n"; + print "\t\t\t\t\t<option value='blue' $selected{'SNET'}{'blue'}>$Lang::tr{'wireless'}</option>\n"; } if (&Header::orange_used()){ - print "\t\t\t<option value='orange' $selected{'SNET'}{'orange'}>$Lang::tr{'dmz'}</option>\n"; + print "\t\t\t\t\t<option value='orange' $selected{'SNET'}{'orange'}>$Lang::tr{'dmz'}</option>\n"; + } + print <<END + </optgroup> + <optgroup label='$Lang::tr{'advproxy NCSA group'}'> +END +; + my @ipgroups = qx(ls $configpath/ipgroups/); + foreach (sort @ipgroups){ + print "\t\t\t\t\t<option value='$_' $selected{'SNET'}{'$_'}>$_</option>\n"; } print <<END - </select> - <td width='20%' align='right' colspan='2'>$Lang::tr{'source ip'}: <img src='/blob.gif' /> - <td width='30%' align='left' colspan='2'><input type='text' name='SIP' maxlength='15' value='$outfwsettings{'SIP'}' /> - <tr><td width='20%' align='right'>$Lang::tr{'logging'}: - <td width='30%' align='left'><select name='LOG'> - <option value='$Lang::tr{'active'}' $selected{'LOG'}{$Lang::tr{'active'}}>$Lang::tr{'active'}</option> - <option value='$Lang::tr{'inactive'}' $selected{'LOG'}{$Lang::tr{'inactive'}}>$Lang::tr{'inactive'}</option> - </select></td> - <td width='20%' align='right' colspan='2' /> - <td width='30%' align='left' colspan='2' /> - <tr><td width='20%' align='right'>$Lang::tr{'destination ip'}: <img src='/blob.gif' /> - <td width='30%' align='left'><input type='text' name='DIP' maxlength='15' value='$outfwsettings{'DIP'}' /> - <td width='20%' align='right' colspan='2'>$Lang::tr{'destination port'}: <img src='/blob.gif' /> - <td width='30%' align='left' colspan='2'><input type='text' name='DPORT' maxlength='11' value='$outfwsettings{'DPORT'}' /> - <tr><td width='20%' align='right'>$Lang::tr{'time'}:</td> + </optgroup> + </select> + </td> + <td width='20%' align='right' colspan='2'>$Lang::tr{'source ip or net'}<img src='/blob.gif' /></td> + <td width='30%' align='left' colspan='2'><input type='text' name='SIP' value='$outfwsettings{'SIP'}' /></td> + </tr> + <tr> + <td width='20%' align='right'>$Lang::tr{'logging'}:</td> + <td width='30%' align='left'> + <select name='LOG'> + <option value='$Lang::tr{'active'}' $selected{'LOG'}{$Lang::tr{'active'}}>$Lang::tr{'active'}</option> + <option value='$Lang::tr{'inactive'}' $selected{'LOG'}{$Lang::tr{'inactive'}}>$Lang::tr{'inactive'}</option> + </select> + </td> + <td width='20%' align='right' colspan='2' /> + <td width='30%' align='left' colspan='2' /> + <tr> + <td width='20%' align='right'>$Lang::tr{'destination ip or net'}: <img src='/blob.gif' /></td> + <td width='30%' align='left'><input type='text' name='DIP' value='$outfwsettings{'DIP'}' /></td> + <td width='20%' align='right' colspan='2'>$Lang::tr{'destination port'}(s) <img src='/blob.gif' /></td> + <td width='30%' align='left' colspan='2'><input type='text' name='DPORT' value='$outfwsettings{'DPORT'}' /></td> + </tr> + <tr> + <td width='20%' align='right'>$Lang::tr{'time'}:</td> <td width='30%' align='left'>$Lang::tr{'advproxy monday'} $Lang::tr{'advproxy tuesday'} $Lang::tr{'advproxy wednesday'} $Lang::tr{'advproxy thursday'} $Lang::tr{'advproxy friday'} $Lang::tr{'advproxy saturday'} $Lang::tr{'advproxy sunday'}</td> <td width='20%' align='right' colspan='2' /> <td width='15%' align='left'>$Lang::tr{'advproxy from'}</td> - <td width='15%' align='left'>$Lang::tr{'advproxy to'}</td></tr> - <tr><td width='20%' align='right'></td> - <td width='30%' align='left'><input type='checkbox' name='TIME_MON' $checked{'TIME_MON'}{'on'} /> - <input type='checkbox' name='TIME_TUE' $checked{'TIME_TUE'}{'on'} /> - <input type='checkbox' name='TIME_WED' $checked{'TIME_WED'}{'on'} /> - <input type='checkbox' name='TIME_THU' $checked{'TIME_THU'}{'on'} /> - <input type='checkbox' name='TIME_FRI' $checked{'TIME_FRI'}{'on'} /> - <input type='checkbox' name='TIME_SAT' $checked{'TIME_SAT'}{'on'} /> - <input type='checkbox' name='TIME_SUN' $checked{'TIME_SUN'}{'on'} /></td> + <td width='15%' align='left'>$Lang::tr{'advproxy to'}</td> + </tr> + <tr> + <td width='20%' align='right'></td> + <td width='30%' align='left'> + <input type='checkbox' name='TIME_MON' $checked{'TIME_MON'}{'on'} /> + <input type='checkbox' name='TIME_TUE' $checked{'TIME_TUE'}{'on'} /> + <input type='checkbox' name='TIME_WED' $checked{'TIME_WED'}{'on'} /> + <input type='checkbox' name='TIME_THU' $checked{'TIME_THU'}{'on'} /> + <input type='checkbox' name='TIME_FRI' $checked{'TIME_FRI'}{'on'} /> + <input type='checkbox' name='TIME_SAT' $checked{'TIME_SAT'}{'on'} /> + <input type='checkbox' name='TIME_SUN' $checked{'TIME_SUN'}{'on'} /> + </td> <td width='20%' align='right' colspan='2' /> - <td width='15%' align='left'><select name='TIME_FROM'> + <td width='15%' align='left'> + <select name='TIME_FROM'> END ; for (my $i=0;$i<=23;$i++) { @@ -696,11 +732,12 @@ for (my $i=0;$i<=23;$i++) { for (my $j=0;$j<=45;$j+=15) { $j = sprintf("%02s",$j); my $time = $i.":".$j; - print "<option $selected{'TIME_FROM'}{$time}>$i:$j</option>\n"; + print "\t\t\t\t\t<option $selected{'TIME_FROM'}{$time}>$i:$j</option>\n"; } } print <<END - </select></td> + </select> + </td> <td width='15%' align='left'><select name='TIME_TO'> END ; @@ -709,14 +746,19 @@ for (my $i=0;$i<=23;$i++) { for (my $j=0;$j<=45;$j+=15) { $j = sprintf("%02s",$j); my $time = $i.":".$j; - print "<option $selected{'TIME_TO'}{$time}>$i:$j</option>\n"; + print "\t\t\t\t\t<option $selected{'TIME_TO'}{$time}>$i:$j</option>\n"; } } print <<END - </select></td></tr> - <tr><td colspan='6'> - <tr><td width='40%' align='right' colspan='2'><img src='/blob.gif' />$Lang::tr{'this field may be blank'} - <td width='60%' align='left' colspan='4'><input type='submit' name='ACTION' value=$Lang::tr{'add'} /> + </select> + </td> + </tr> + <tr> + <td colspan='6' /> + <tr> + <tr> + <td width='40%' align='right' colspan='2'><img src='/blob.gif' />$Lang::tr{'this field may be blank'}</td> + <td width='60%' align='left' colspan='4'><input type='submit' name='ACTION' value=$Lang::tr{'add'} /></td> </table></form> END ; @@ -763,4 +805,7 @@ END print "</table>"; &Header::closebox(); } -} \ No newline at end of file +} + +&Header::closebigbox(); +&Header::closepage(); \ No newline at end of file diff --git a/html/cgi-bin/outgoinggrp.cgi b/html/cgi-bin/outgoinggrp.cgi new file mode 100644 index 0000000..a94ac82 --- /dev/null +++ b/html/cgi-bin/outgoinggrp.cgi @@ -0,0 +1,212 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2005-2010 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +use strict; +# enable only the following on debugging purpose +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +my %outgrpsettings = (); +my %netsettings = (); +my %selected= () ; +my $errormessage = ""; + +my $configpath = "/var/ipfire/outgoing/groups/"; +my $servicefile = "/var/ipfire/outgoing/defaultservices"; + +my %color = (); +my %mainsettings = (); +&General::readhash("${General::swroot}/main/settings", %mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", %color); + +&General::readhash("${General::swroot}/ethernet/settings", %netsettings); + +&Header::showhttpheaders(); + +### Values that have to be initialized +$outgrpsettings{'ACTION'} = ''; +$outgrpsettings{'ipgroup'} = 'none'; +$outgrpsettings{'portgroup'} = 'none'; + +&Header::getcgihash(%outgrpsettings); +delete $outgrpsettings{'__CGI__'};delete $outgrpsettings{'x'};delete $outgrpsettings{'y'}; + +$selected{'ipgroup'}{$outgrpsettings{'ipgroup'}} = "selected='selected'"; +$selected{'portgroup'}{$outgrpsettings{'portgroup'}} = "selected='selected'"; + +&Header::openpage($Lang::tr{'outgoing firewall groups'}, 1, ''); +&Header::openbigbox('100%', 'left', '', $errormessage); + +############### +# DEBUG DEBUG +# &Header::openbox('100%', 'left', 'DEBUG'); +# my $debugCount = 0; +# foreach my $line (sort keys %outgrpsettings) { +# print "$line = $outgrpsettings{$line}<br />\n"; + # $debugCount++; +# } +# print " Count: $debugCount\n"; +# &Header::closebox(); +# DEBUG DEBUG +############### + +############################################################################################################################ +############################################################################################################################ + +if ($errormessage) +{ + &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); + print "<class name='base'>$errormessage\n"; + print " </class>\n"; + &Header::closebox(); +} + +if ($outgrpsettings{'ACTION'} eq 'newipgroup') +{ + &newipgroup(); +} elsif ($outgrpsettings{'ACTION'} eq 'deleteipgroup' ) { + unlink("$configpath/ipgroups/$outgrpsettings{'ipgroup'}"); +} elsif ($outgrpsettings{'ACTION'} eq 'addipgroup') { + open (FILE, ">$configpath/ipgroups/$outgrpsettings{'ipgroup'}") or die "Can't save $outgrpsettings{'ipgroup'} settings $!"; + flock (FILE, 2); + print FILE $outgrpsettings{'ipgroupcontent'}."\n"; + close FILE; +} + +############################################################################################################################ +############################################################################################################################ + +my @ipgroups = qx(ls $configpath/ipgroups/); +if ($outgrpsettings{'ipgroup'} eq "none" and $#ipgroups >= 0 ){ $outgrpsettings{'ipgroup'} = $ipgroups[0];} + +my $ipgroupcontent = `cat $configpath/ipgroups/$outgrpsettings{'ipgroup'} 2>/dev/null`; +$ipgroupcontent =~ s/\n/<br />/g; + +&Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall ip groups'}); + +print <<END +<br /> +<form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showipgroup'> +<table width='95%' cellspacing='0'> + <tr> + <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall ip groups'}</b></td> + </tr> + <tr> + <td colspan='3' align='left'><br /></td> + </tr> + <tr> + <td align='left' colspan='2'><select name='ipgroup' style="width: 200px"> +END +; +foreach my $member (@ipgroups) {chomp $member;print" <option value='$member' $selected{'ipgroup'}{$member}>$member</option>\n";} +print <<END + </select></td> + <td align='left'> + <input type='hidden' name='ACTION' value='showipgroup' /> + <input type='image' alt='$Lang::tr{'outgoing firewall view group'}' title='$Lang::tr{'outgoing firewall view group'}' src='/images/format-justify-fill.png' /> + </td> + </tr> + <tr> + <td colspan='3' align='left'><br /></td> + </tr> + <tr> + <td colspan='3' align='left'><font size=1>$ipgroupcontent</font></td> + </tr> + <tr> + <td colspan='3' align='left'><br /></td> + </tr> + <tr> + <td colspan='3' align='center'><font size=1>$Lang::tr{'outgoing firewall ip groups'} - $outgrpsettings{'ipgroup'}</font></td> + </tr> +</table> +</form> +<table width='10%' cellspacing='0'> +<tr> + <td align='center'> + <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showipgroup'> + <input type='hidden' name='ACTION' value='newipgroup' /> + <input type='image' alt='$Lang::tr{'new'}' title='$Lang::tr{'new'}' src='/images/list-add.png' /> + </form> + </td> + <td align='center'> + <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showipgroup'> + <input type='hidden' name='ACTION' value='saveipgroup' /> + <input type='hidden' name='ipgroup' value='$outgrpsettings{'ipgroup'}' /> + <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> + </form> + </td> + <td align='center'> + <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showipgroup'> + <input type='hidden' name='ACTION' value='deleteipgroup' /> + <input type='hidden' name='ipgroup' value='$outgrpsettings{'ipgroup'}' /> + <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' /> + </form> + </td> +</tr> +</table> + +END +; +&Header::closebox(); + +&Header::closebigbox(); +&Header::closepage(); + +sub newipgroup +{ + &Header::openbox('100%', 'center', $Lang::tr{'outgoing firewall add ip group'}); + +print <<END + <form method='post' action='$ENV{'SCRIPT_NAME'}#outgoing showipgroup'> + <table width='95%' cellspacing='0'> + <tr> + <td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'outgoing firewall add ip group'}</b></td> + </tr> + <tr> + <td colspan='3' align='left'><br /></td> + </tr> + <tr> + <td align='left' colspan='2'> + <input type='text' name='ipgroup' value='newgroup' size="30" /> + </td> + <td align='left'> + <input type='hidden' name='ACTION' value='addipgroup' /> + <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /> + </td> + </tr> + <tr> + <td align='left' colspan='3'> + <textarea name="ipgroupcontent" cols="20" rows="5" Wrap="off">192.168.1.0/24\n192.168.3.0/255.255.255.0\n192.168.0.1\n192.168.0.2\n</textarea> + </td> + </tr> + </table> + </form> +END +; + &Header::closebox(); + &Header::closebigbox(); + &Header::closepage(); + exit 0; +} diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index 3bbcf1c..fcaeb5c 100644 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -70,6 +70,8 @@ $cgiparams{'DHCP_DOMAIN'} = ''; $cgiparams{'DHCP_DNS'} = ''; $cgiparams{'DHCP_WINS'} = ''; $cgiparams{'DCOMPLZO'} = 'off'; +$cgiparams{'MSSFIX'} = ''; + &Header::getcgihash(%cgiparams, {'wantfile' => 1, 'filevar' => 'FH'});
# prepare openvpn config file @@ -332,6 +334,12 @@ sub writeserverconf { if ($sovpnsettings{CLIENT2CLIENT} eq 'on') { print CONF "client-to-client\n"; } + if ($sovpnsettings{MSSFIX} eq 'on') { + print CONF "mssfix\n"; + } + if ($sovpnsettings{FRAGMENT} ne '' && $sovpnsettings{'DPROTOCOL'} ne 'tcp') { + print CONF "fragment $sovpnsettings{'FRAGMENT'}\n"; + } if ($sovpnsettings{KEEPALIVE_1} > 0 && $sovpnsettings{KEEPALIVE_2} > 0) { print CONF "keepalive $sovpnsettings{'KEEPALIVE_1'} $sovpnsettings{'KEEPALIVE_2'}\n"; } @@ -358,8 +366,7 @@ sub writeserverconf {
if ($sovpnsettings{DHCP_WINS} eq '') { print CONF "max-clients 100\n"; - } - + } if ($sovpnsettings{DHCP_WINS} ne '') { print CONF "max-clients $sovpnsettings{MAX_CLIENTS}\n"; } @@ -449,6 +456,21 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save-adv-options'}) { $vpnsettings{'DHCP_DNS'} = $cgiparams{'DHCP_DNS'}; $vpnsettings{'DHCP_WINS'} = $cgiparams{'DHCP_WINS'};
+ if ($cgiparams{'FRAGMENT'} eq '') { + delete $vpnsettings{'FRAGMENT'}; + } else { + if ($cgiparams{'FRAGMENT'} !~ /^[0-9]+$/) { + $errormessage = "Incorrect value, please insert only numbers."; + goto ADV_ERROR; + } else { + $vpnsettings{'FRAGMENT'} = $cgiparams{'FRAGMENT'}; + } + } + if ($cgiparams{'MSSFIX'} ne 'on') { + delete $vpnsettings{'MSSFIX'}; + } else { + $vpnsettings{'MSSFIX'} = $cgiparams{'MSSFIX'}; + } if ($cgiparams{'DHCP_DOMAIN'} ne ''){ unless (&General::validfqdn($cgiparams{'DHCP_DOMAIN'}) || &General::validip($cgiparams{'DHCP_DOMAIN'})) { $errormessage = $Lang::tr{'invalid input for dhcp domain'}; @@ -1380,7 +1402,13 @@ END } print CLIENTCONF "verb 3\r\n"; print CLIENTCONF "ns-cert-type server\r\n"; - print CLIENTCONF "tls-remote $vpnsettings{ROOTCERT_HOSTNAME}\r\n"; + print CLIENTCONF "tls-remote $vpnsettings{ROOTCERT_HOSTNAME}\r\n"; + if ($vpnsettings{MSSFIX} eq 'on') { + print CLIENTCONF "mssfix\r\n"; + } + if ($vpnsettings{FRAGMENT} ne '' && $vpnsettings{DPROTOCOL} ne 'tcp' ) { + print CLIENTCONF "fragment $vpnsettings{'FRAGMENT'}\r\n"; + } close(CLIENTCONF); $zip->addFile( "$tempdir/$clientovpn", $clientovpn) or die "Can't add file $clientovpn\n"; my $status = $zip->writeToFileNamed($zippathname); @@ -1500,6 +1528,10 @@ ADV_ERROR: $checked{'REDIRECT_GW_DEF1'}{'off'} = ''; $checked{'REDIRECT_GW_DEF1'}{'on'} = ''; $checked{'REDIRECT_GW_DEF1'}{$cgiparams{'REDIRECT_GW_DEF1'}} = 'CHECKED'; + $selected{'ENGINES'}{$cgiparams{'ENGINES'}} = 'SELECTED'; + $checked{'MSSFIX'}{'off'} = ''; + $checked{'MSSFIX'}{'on'} = ''; + $checked{'MSSFIX'}{$cgiparams{'MSSFIX'}} = 'CHECKED'; $selected{'LOG_VERB'}{'1'} = ''; $selected{'LOG_VERB'}{'2'} = ''; $selected{'LOG_VERB'}{'3'} = ''; @@ -1513,6 +1545,8 @@ ADV_ERROR: $selected{'LOG_VERB'}{'11'} = ''; $selected{'LOG_VERB'}{'0'} = ''; $selected{'LOG_VERB'}{$cgiparams{'LOG_VERB'}} = 'SELECTED'; + +
&Header::showhttpheaders(); &Header::openpage($Lang::tr{'status ovpn'}, 1, ''); @@ -1552,7 +1586,7 @@ ADV_ERROR: <td class'base'><b>$Lang::tr{'misc-options'}</b></td> </tr> <tr> - <td width='25%'></td> <td width='20%'> </td><td width='25%'> </td><td width='30%'></td> + <td width='20%'></td> <td width='15%'> </td><td width='15%'> </td><td width='50%'></td> </tr> <tr> <td class='base'>Client-To-Client</td> @@ -1564,20 +1598,50 @@ ADV_ERROR: </tr> <tr> <td class='base'>Max-Clients</td> - <td><input type='text' name='MAX_CLIENTS' value='$cgiparams{'MAX_CLIENTS'}' size='30' /></td> + <td><input type='text' name='MAX_CLIENTS' value='$cgiparams{'MAX_CLIENTS'}' size='10' /></td> </tr> - <td class='base'>Keppalive (ping/ping-restart)</td> - <td><input type='TEXT' name='KEEPALIVE_1' value='$cgiparams{'KEEPALIVE_1'}' size='30' /></td> - <td><input type='TEXT' name='KEEPALIVE_2' value='$cgiparams{'KEEPALIVE_2'}' size='30' /></td> + <tr> + <td class='base'>Keppalive <br /> + (ping/ping-restart)</td> + <td><input type='TEXT' name='KEEPALIVE_1' value='$cgiparams{'KEEPALIVE_1'}' size='10' /></td> + <td><input type='TEXT' name='KEEPALIVE_2' value='$cgiparams{'KEEPALIVE_2'}' size='10' /></td> + </tr> + <tr> + <td class='base'>fragment <br></td> + <td><input type='TEXT' name='FRAGMENT' value='$cgiparams{'FRAGMENT'}' size='10' /></td> + <td>Default: <span class="base">1300</span></td> + </tr> + <tr> + <td class='base'>mssfix</td> + <td><input type='checkbox' name='MSSFIX' $checked{'MSSFIX'}{'on'} /></td> + <td>Default: on</td> + </tr> +</table> + +<!-- +<hr size='1'> + <table width='100%'> + <tr> + <td class'base'><b>Crypto-Engines</b></td> + </tr> + <tr> + <td width='15%'></td> <td width='30%'> </td><td width='25%'> </td><td width='30%'></td> </tr> + <tr><td class='base'>Engines:</td> + <td><select name='ENGINES'><option value="none" $selected{'ENGINES'}{'none'}>none</option> + <option value="cryptodev" $selected{'ENGINES'}{'cryptodev'}>cryptodev</option> + <option value="padlock" $selected{'ENGINES'}{'padlock'}>padlock</option> + </select> + </td> </table> +--> <hr size='1'> <table width='100%'> <tr> <td class'base'><b>$Lang::tr{'log-options'}</b></td> </tr> <tr> - <td width='25%'></td> <td width='20%'> </td><td width='25%'> </td><td width='30%'></td> + <td width='15%'></td> <td width='30%'> </td><td width='25%'> </td><td width='30%'></td> </tr> <tr><td class='base'>VERB</td> @@ -2604,7 +2668,8 @@ END <td class='boldbase' nowrap='nowrap' colspan='2'>$Lang::tr{'ovpn subnet'}<br /><input type='TEXT' name='DOVPN_SUBNET' value='$cgiparams{'DOVPN_SUBNET'}' size='30' /></td></tr> <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'ovpn device'}</td> <td><select name='DDEVICE' ><option value='tun' $selected{'DDEVICE'}{'tun'}>TUN</option> - <option value='tap' $selected{'DDEVICE'}{'tap'}>TAP</option></select></td> + <!-- this is still not working + <option value='tap' $selected{'DDEVICE'}{'tap'}>TAP</option></select>--> </td> <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'protocol'}</td> <td><select name='DPROTOCOL'><option value='udp' $selected{'DPROTOCOL'}{'udp'}>UDP</option> <option value='tcp' $selected{'DPROTOCOL'}{'tcp'}>TCP</option></select></td> diff --git a/html/cgi-bin/pppsetup.cgi b/html/cgi-bin/pppsetup.cgi index bb0b2cb..a39d4f7 100644 --- a/html/cgi-bin/pppsetup.cgi +++ b/html/cgi-bin/pppsetup.cgi @@ -394,7 +394,6 @@ $selected{'ENCAP'}{$pppsettings{'ENCAP'}} = "selected='selected'";
$checked{'METHOD'}{'STATIC'} = ''; $checked{'METHOD'}{'PPPOE'} = ''; -$checked{'METHOD'}{'PPPOE_PLUGIN'} = ''; $checked{'METHOD'}{'DHCP'} = ''; $checked{'METHOD'}{$pppsettings{'METHOD'}} = "checked='checked'";
@@ -765,13 +764,13 @@ print <<END <td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'pppoe settings'}</b></td> </tr> <tr> - <td width='25%'><input type='radio' name='METHOD' value='PPPOE_PLUGIN' $checked{'METHOD'}{'PPPOE_PLUGIN'} />PPPoE plugin</td> - <td colspan='2' width='50%'>$Lang::tr{'service name'} <img src='/blob.gif' alt='*' /></td> + <td width='25%'>$Lang::tr{'service name'} <img src='/blob.gif' alt='*' /></td> + <td colspan='2' width='50%'></td> <td width='25%'><input type='text' name='SERVICENAME' value='$pppsettings{'SERVICENAME'}' /></td> </tr> <tr> - <td width='25%'><input type='radio' name='METHOD' value='PPPOE' $checked{'METHOD'}{'PPPOE'} />$Lang::tr{'pppoe'}</td> - <td colspan='2' width='50%'>$Lang::tr{'concentrator name'} <img src='/blob.gif' alt='*' /></td> + <td width='25%'>$Lang::tr{'concentrator name'} <img src='/blob.gif' alt='*' /></td> + <td colspan='2' width='50%'></td> <td width='25%'><input type='text' name='CONCENTRATORNAME' value='$pppsettings{'CONCENTRATORNAME'}' /></td> </tr> <tr> @@ -897,14 +896,8 @@ sub initprofile $pppsettings{'PPTP_PEER'} = '10.0.0.138'; $pppsettings{'PPTP_NICCFG'} = '10.0.0.140/24 broadcast 10.0.0.255'; $pppsettings{'PROTOCOL'} = 'RFC2364'; - $pppsettings{'METHOD'} = 'PPPOE_PLUGIN'; - if ( $pppsettings{'METHOD'} eq 'PPPOE_PLUGIN' ) { - $pppsettings{'MTU'} = '1492'; - $pppsettings{'MRU'} = '1492'; - } else { - $pppsettings{'MTU'} = '1452'; - $pppsettings{'MRU'} = '1452'; - } + $pppsettings{'MTU'} = '1492'; + $pppsettings{'MRU'} = '1492'; $pppsettings{'DIALMODE'} = 'T'; $pppsettings{'MAXRETRIES'} = 5; $pppsettings{'HOLDOFF'} = 30; diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi index 4d90914..712f085 100644 --- a/html/cgi-bin/samba.cgi +++ b/html/cgi-bin/samba.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2005-2010 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -77,7 +77,7 @@ my %servicenames = ('SMB Daemon' => 'smbd','NetBIOS Nameserver' => 'nmbd');
$sambasettings{'WORKGRP'} = 'homeip.net'; $sambasettings{'NETBIOSNAME'} = 'IPFire'; -$sambasettings{'SRVSTRING'} = 'Samba running on IPFire 2.5'; +$sambasettings{'SRVSTRING'} = 'Samba running on IPFire 2.7'; $sambasettings{'INTERFACES'} = ''; $sambasettings{'SECURITY'} = 'share'; $sambasettings{'OSLEVEL'} = '33'; @@ -620,7 +620,7 @@ if ($sambasettings{'SECURITY'} eq 'user') &Header::openbox('100%', 'center', $Lang::tr{'accounting user pdc'}); } print <<END - <a name="$Lang::tr{'accounting'}"</a> + <a name="$Lang::tr{'accounting'}"></a> <br /> <table width='95%' cellspacing='0'> <tr><td colspan='6' align='left'></td></tr> @@ -866,7 +866,7 @@ my %shares = config("${General::swroot}/samba/shares");
print <<END -<a name="$Lang::tr{'manage shares'}"</a> +<a name="$Lang::tr{'manage shares'}"></a> <br /> <table width='95%' cellspacing='0'> <tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'manage shares'}</b> @@ -1014,7 +1014,7 @@ if ( -e "/var/ipfire/cups/enable")
my @Printers = keys(%printer); print <<END -<a name="$Lang::tr{'manage printers'}"</a> +<a name="$Lang::tr{'manage printers'}"></a> <br /> <table width='95%' cellspacing='0'> <tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'manage printers'}</b> @@ -1154,7 +1154,7 @@ $Log=~s/\n/<br />/g; &Header::openbox('100%', 'center', $Lang::tr{'log'});
print <<END -<a name="$Lang::tr{'log view'}"</a> +<a name="$Lang::tr{'log view'}"></a> <br /> <form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'log view'}'> <table width='95%' cellspacing='0'> diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi index dcd306e..156db2d 100644 --- a/html/cgi-bin/services.cgi +++ b/html/cgi-bin/services.cgi @@ -59,6 +59,24 @@ my %servicenames =( 'OpenVPN' => 'openvpn' );
+my %link =( + $Lang::tr{'dhcp server'} => "<a href='dhcp.cgi'>$Lang::tr{'dhcp server'}</a>", + $Lang::tr{'web server'} => $Lang::tr{'web server'}, + $Lang::tr{'cron server'} => $Lang::tr{'cron server'}, + $Lang::tr{'dns proxy server'} => $Lang::tr{'dns proxy server'}, + $Lang::tr{'logging server'} => $Lang::tr{'logging server'}, + $Lang::tr{'kernel logging server'} => $Lang::tr{'kernel logging server'}, + $Lang::tr{'ntp server'} => "<a href='time.cgi'>$Lang::tr{'ntp server'}</a>", + $Lang::tr{'secure shell server'} => "<a href='remote.cgi'>$Lang::tr{'secure shell server'}</a>", + $Lang::tr{'vpn'} => "<a href='vpnmain.cgi'>$Lang::tr{'vpn'}</a>", + $Lang::tr{'web proxy'} => "<a href='proxy.cgi'>$Lang::tr{'web proxy'}</a>", + 'OpenVPN' => "<a href='ovpnmain.cgi'>OpenVPN</a>", + "$Lang::tr{'intrusion detection system'} (GREEN)" => "<a href='ids.cgi'>$Lang::tr{'intrusion detection system'} (GREEN)</a>", + "$Lang::tr{'intrusion detection system'} (RED)" => "<a href='ids.cgi'>$Lang::tr{'intrusion detection system'} (RED)</a>", + "$Lang::tr{'intrusion detection system'} (ORANGE)" => "<a href='ids.cgi'>$Lang::tr{'intrusion detection system'} (ORANGE)</a>", + "$Lang::tr{'intrusion detection system'} (BLUE)" => "<a href='ids.cgi'>$Lang::tr{'intrusion detection system'} (BLUE)</a>" +); + my $lines=0; # Used to count the outputlines to make different bgcolor
my $iface = ''; @@ -106,9 +124,13 @@ END foreach $key (sort keys %servicenames){ $lines++; if ($lines % 2){ - print "<tr bgcolor='$color{'color22'}'>\n<td align='left'>$key</td>\n"; + print "<tr bgcolor='$color{'color22'}'>\n<td align='left'>"; + print %link->{$key}; + print "</td>\n"; }else{ - print "<tr bgcolor='$color{'color20'}'>\n<td align='left'>$key</td>\n"; + print "<tr bgcolor='$color{'color20'}'>\n<td align='left'>"; + print %link->{$key}; + print "</td>\n"; }
my $shortname = $servicenames{$key}; diff --git a/html/cgi-bin/time.cgi b/html/cgi-bin/time.cgi index 988a148..c68eb99 100644 --- a/html/cgi-bin/time.cgi +++ b/html/cgi-bin/time.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2010 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -44,6 +44,7 @@ $timesettings{'UPDATE_METHOD'} = 'manually'; $timesettings{'UPDATE_VALUE'} = '0'; $timesettings{'UPDATE_PERIOD'} = ''; $timesettings{'ENABLECLNTP'} = 'off'; +$timesettings{'ENABLESETONBOOT'} = 'off';
&Header::getcgihash(%timesettings);
@@ -175,6 +176,7 @@ if ($timesettings{'VALID'} eq '') $timesettings{'UPDATE_PERIOD'} = 'daily'; $timesettings{'NTP_ADDR_1'} = 'de.pool.ntp.org'; $timesettings{'NTP_ADDR_2'} = 'pool.ntp.org'; + $timesettings{'ENABLESETONBOOT'} = 'off'; }
unless ($errormessage) { @@ -198,6 +200,10 @@ $checked{'ENABLECLNTP'}{'off'} = ''; $checked{'ENABLECLNTP'}{'on'} = ''; $checked{'ENABLECLNTP'}{$timesettings{'ENABLECLNTP'}} = "checked='checked'";
+$checked{'ENABLESETONBOOT'}{'off'} = ''; +$checked{'ENABLESETONBOOT'}{'on'} = ''; +$checked{'ENABLESETONBOOT'}{$timesettings{'ENABLESETONBOOT'}} = "checked='checked'"; + $checked{'UPDATE_METHOD'}{'manually'} = ''; $checked{'UPDATE_METHOD'}{'periodically'} = ''; $checked{'UPDATE_METHOD'}{$timesettings{'UPDATE_METHOD'}} = "checked='checked'"; @@ -231,6 +237,10 @@ print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n"; print <<END <table width='100%'> <tr> + <td colspan='2'><strong>$Lang::tr{'ntp common settings'}</strong></td> +</tr> + +<tr> <td><input type='checkbox' name='ENABLENTP' $checked{'ENABLENTP'}{'on'} /></td> <td width='100%' colspan='4' class='base'>$Lang::tr{'network time from'}</td> </tr> @@ -266,19 +276,19 @@ print <<END <td> </td> <td class='base' colspan='4'><input type='checkbox' name='ENABLECLNTP' $checked{'ENABLECLNTP'}{'on'} /> $Lang::tr{'clenabled'}</td> </tr> -</table> -<table width='100%'> <tr> - <td colspan='4'><hr /><b>$Lang::tr{'update time'}</b></td> + <td> </td> + <td class='base' colspan='4'><input type='checkbox' name='ENABLESETONBOOT' $checked{'ENABLESETONBOOT'}{'on'} /> $Lang::tr{'Set time on boot'}</td> </tr> +</table> +<table width='100%'> <tr> - <td> </td> - <td class='base' colspan='2'>$Lang::tr{'set time now help'}</td> + <td colspan='4'><hr /><strong>$Lang::tr{'ntp sync'}</strong></td> </tr> <tr> <td class='base'><input type='radio' name='UPDATE_METHOD' value='periodically' $checked{'UPDATE_METHOD'}{'periodically'} /></td> - <td width='15%'>$Lang::tr{'every'}: </td> - <td width='35%'><input type='text' name='UPDATE_VALUE' size='3' maxlength='3' value='$timesettings{'UPDATE_VALUE'}' /> + <td width='10%'>$Lang::tr{'every'}</td> + <td width='45%'><input type='text' name='UPDATE_VALUE' size='3' maxlength='3' value='$timesettings{'UPDATE_VALUE'}' /> <select name='UPDATE_PERIOD'> <option value='hourly' $selected{'UPDATE_PERIOD'}{'hourly'}>$Lang::tr{'hours'}</option> <option value='daily' $selected{'UPDATE_PERIOD'}{'daily'}>$Lang::tr{'days'}</option> @@ -291,6 +301,13 @@ print <<END <td class='base'><input type='radio' name='UPDATE_METHOD' value='manually' $checked{'UPDATE_METHOD'}{'manually'} /></td> <td colspan='2'>$Lang::tr{'manually'}</td> </tr> +<tr> + <td colspan='4'><hr /><strong>$Lang::tr{'update time'}</strong></td> +</tr> +<tr> + <td> </td> + <td class='base' colspan='3'>$Lang::tr{'set time now help'}</td> +</tr> END ;
diff --git a/html/cgi-bin/updatexlrator.cgi b/html/cgi-bin/updatexlrator.cgi index 65f6b26..04b7b8e 100644 --- a/html/cgi-bin/updatexlrator.cgi +++ b/html/cgi-bin/updatexlrator.cgi @@ -1,5 +1,4 @@ #!/usr/bin/perl -#!/usr/bin/perl # # This code is distributed under the terms of the GPL # @@ -12,7 +11,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 2005-2010 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -95,10 +94,6 @@ my @downloadfiles=();
my @metadata=();
-my $chk_cron_dly = "${General::swroot}/updatexlrator/autocheck/cron.daily"; -my $chk_cron_wly = "${General::swroot}/updatexlrator/autocheck/cron.weekly"; -my $chk_cron_mly = "${General::swroot}/updatexlrator/autocheck/cron.monthly"; - &General::readhash("${General::swroot}/ethernet/settings", %netsettings); &General::readhash("${General::swroot}/main/settings", %mainsettings); &General::readhash("${General::swroot}/proxy/settings", %proxysettings); @@ -549,40 +544,40 @@ END print "\t\t<td align='center' nowrap='nowrap'> "; if (&getPID("\s/usr/bin/wget\s.*\s".quotemeta($dlinfo{'SRCURL'})."$")) { - print "<img src='/images/updxl-led-blue.gif' alt='$Lang::tr{'updxlrtr condition download'}' /> </td>\n"; + print "<img src='/images/updbooster/updxl-led-blue.gif' alt='$Lang::tr{'updxlrtr condition download'}' /> </td>\n"; } else { - print "<img src='/images/updxl-led-gray.gif' alt='$Lang::tr{'updxlrtr condition suspended'}' /> </td>\n"; + print "<img src='/images/updbooster/updxl-led-gray.gif' alt='$Lang::tr{'updxlrtr condition suspended'}' /> </td>\n"; }
print "\t\t<td align='center' nowrap='nowrap'> "; if ($vendorid =~ /^Adobe$/i) { - print "<img src='/images/updxl-src-adobe.gif' alt='Adobe'}' /> </td>\n"; + print "<img src='/images/updbooster/updxl-src-adobe.gif' alt='Adobe'}' /> </td>\n"; } elsif ($vendorid =~ /^Microsoft$/i) { - print "<img src='/images/updxl-src-windows.gif' alt='Microsoft'}' /> </td>\n"; + print "<img src='/images/updbooster/updxl-src-windows.gif' alt='Microsoft'}' /> </td>\n"; } elsif ($vendorid =~ /^Symantec$/i) { - print "<img src='/images/updxl-src-symantec.gif' alt='Symantec'}' /> </td>\n"; + print "<img src='/images/updbooster/updxl-src-symantec.gif' alt='Symantec'}' /> </td>\n"; } elsif ($vendorid =~ /^Linux$/i) { - print "<img src='/images/updxl-src-linux.gif' alt='Linux'}' /> </td>\n"; + print "<img src='/images/updbooster/updxl-src-linux.gif' alt='Linux'}' /> </td>\n"; } elsif ($vendorid =~ /^TrendMicro$/i) { - print "<img src='/images/updxl-src-trendmicro.gif' alt='Trend Micro'}' /> </td>\n"; + print "<img src='/images/updbooster/updxl-src-trendmicro.gif' alt='Trend Micro'}' /> </td>\n"; } elsif ($vendorid =~ /^Apple$/i) { - print "<img src='/images/updxl-src-apple.gif' alt='Apple'}' /> </td>\n"; + print "<img src='/images/updbooster/updxl-src-apple.gif' alt='Apple'}' /> </td>\n"; } elsif ($vendorid =~ /^Avast$/i) { - print "<img src='/images/updxl-src-avast.gif' alt='Avast'}' /> </td>\n"; + print "<img src='/images/updbooster/updxl-src-avast.gif' alt='Avast'}' /> </td>\n"; } else { - if (-e "/home/httpd/html/images/updxl-src-" . $vendorid . ".gif") + if (-e "/home/httpd/html/images/updbooster/updxl-src-" . $vendorid . ".gif") { - print "<img src='/images/updxl-src-" . $vendorid . ".gif' alt='" . ucfirst $vendorid . "' /> </td>\n"; + print "<img src='/images/updbooster/updxl-src-" . $vendorid . ".gif' alt='" . ucfirst $vendorid . "' /> </td>\n"; } else { - print "<img src='/images/updxl-src-unknown.gif' alt='" . ucfirst $vendorid . "' /> </td>\n"; + print "<img src='/images/updbooster/updxl-src-unknown.gif' alt='" . ucfirst $vendorid . "' /> </td>\n"; } }
@@ -1496,27 +1491,18 @@ END
sub savesettings { - if (-e $chk_cron_dly) { unlink($chk_cron_dly); } - if (-e $chk_cron_wly) { unlink($chk_cron_wly); } - if (-e $chk_cron_mly) { unlink($chk_cron_mly); }
if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'daily')) { - symlink("../bin/checkup",$chk_cron_dly) - } else { - symlink("/bin/false",$chk_cron_dly) + system('/usr/local/bin/updxlratorctrl cron daily >/dev/null 2>&1'); } - if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'weekly')) + if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'weekly')) { - symlink("../bin/checkup",$chk_cron_wly) - } else { - symlink("/bin/false",$chk_cron_wly) + system('/usr/local/bin/updxlratorctrl cron weekly >/dev/null 2>&1'); } - if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'monthly')) + if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'monthly')) { - symlink("../bin/checkup",$chk_cron_mly) - } else { - symlink("/bin/false",$chk_cron_mly) + system('/usr/local/bin/updxlratorctrl cron monthly >/dev/null 2>&1'); }
# don't save those variable to the settings file, diff --git a/html/cgi-bin/urlfilter.cgi b/html/cgi-bin/urlfilter.cgi index 2d180e2..eea32bf 100644 --- a/html/cgi-bin/urlfilter.cgi +++ b/html/cgi-bin/urlfilter.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 Michael Tremer & Christian Schmidt # +# Copyright (C) 2005-2010 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -59,15 +59,12 @@ my $tcfile = "${General::swroot}/urlfilter/timeconst"; my $uqfile = "${General::swroot}/urlfilter/userquota"; my $dbdir = "${General::swroot}/urlfilter/blacklists"; my $editdir = "${General::swroot}/urlfilter/editor"; -my $repository = "/home/httpd/html/repository"; +my $repository = "/var/urlrepo"; my $hintcolour = '#FFFFCC';
my $sourceurlfile = "${General::swroot}/urlfilter/autoupdate/autoupdate.urls"; my $updconffile = "${General::swroot}/urlfilter/autoupdate/autoupdate.conf"; my $updflagfile = "${General::swroot}/urlfilter/blacklists/.autoupdate.last"; -my $upd_cron_dly = "${General::swroot}/urlfilter/autoupdate/cron.daily"; -my $upd_cron_wly = "${General::swroot}/urlfilter/autoupdate/cron.weekly"; -my $upd_cron_mly = "${General::swroot}/urlfilter/autoupdate/cron.monthly";
my $errormessage=''; my $updatemessage=''; @@ -965,29 +962,20 @@ if ($filtersettings{'ACTION'} eq $Lang::tr{'urlfilter save schedule'}) print FILE "CUSTOM_UPDATE_URL=$filtersettings{'CUSTOM_UPDATE_URL'}\n"; close FILE;
- if (-e $upd_cron_dly) { unlink($upd_cron_dly); } - if (-e $upd_cron_wly) { unlink($upd_cron_wly); } - if (-e $upd_cron_mly) { unlink($upd_cron_mly); }
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'daily')) { - symlink("../bin/autoupdate.pl",$upd_cron_dly) - } else { - symlink("/bin/false",$upd_cron_dly) + system('/usr/local/bin/urlfilterctrl cron daily >/dev/null 2>&1'); }
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'weekly')) { - symlink("../bin/autoupdate.pl",$upd_cron_wly) - } else { - symlink("/bin/false",$upd_cron_wly) + system('/usr/local/bin/urlfilterctrl cron weekly >/dev/null 2>&1'); }
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'monthly')) { - symlink("../bin/autoupdate.pl",$upd_cron_mly) - } else { - symlink("/bin/false",$upd_cron_mly) + system('/usr/local/bin/urlfilterctrl cron monthly >/dev/null 2>&1'); } } } diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index 280055e..8a74063 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2010 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -248,18 +248,18 @@ sub writeipsecfiles { foreach my $key (keys %lconfighash) { next if ($lconfighash{$key}[0] ne 'on'); $interfaces .= "%defaultroute " if ($interfaces !~ /defaultroute/ && $lconfighash{$key}[26] eq 'RED'); - #$interfaces .= "ipsec1=$netsettings{'GREEN_DEV'} " if ($interfaces !~ /ipsec1/ && $lconfighash{$key}[26] eq 'GREEN'); - #$interfaces .= "ipsec2=$netsettings{'BLUE_DEV'} " if ($interfaces !~ /ipsec2/ && $lconfighash{$key}[26] eq 'BLUE'); - #$interfaces .= "ipsec3=$netsettings{'ORANGE_DEV'} " if ($interfaces !~ /ipsec3/ && $lconfighash{$key}[26] eq 'ORANGE'); + $interfaces .= "$netsettings{'GREEN_DEV'} " if ($interfaces !~ /ipsec1/ && $lconfighash{$key}[26] eq 'GREEN'); + $interfaces .= "$netsettings{'BLUE_DEV'} " if ($interfaces !~ /ipsec2/ && $lconfighash{$key}[26] eq 'BLUE'); + $interfaces .= "$netsettings{'ORANGE_DEV'} " if ($interfaces !~ /ipsec3/ && $lconfighash{$key}[26] eq 'ORANGE'); } print CONF $interfaces . ""\n";
my $plutodebug = ''; # build debug list map ($plutodebug .= $lvpnsettings{$_} eq 'on' ? lc (substr($_,4)).' ' : '', ('DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL', - 'DBG_KLIPS','DBG_DNS','DBG_NAT_T')); + 'DBG_DNS')); $plutodebug = 'none' if $plutodebug eq ''; # if nothing selected, use 'none'. - print CONF "\tklipsdebug="none"\n"; + #print CONF "\tklipsdebug="none"\n"; print CONF "\tplutodebug="$plutodebug"\n"; # deprecated in ipsec.conf version 2 #print CONF "\tplutoload=%search\n"; @@ -289,6 +289,12 @@ sub writeipsecfiles { #print CONF "\tdisablearrivalcheck=no\n"; print CONF "\n";
+ # Add user includes to config file + print CONF "include /etc/ipsec.user.conf\n"; + print CONF "\n"; + + print SECRETS "include /etc/ipsec.user.secrets\n"; + if (-f "${General::swroot}/certs/hostkey.pem") { print SECRETS ": RSA ${General::swroot}/certs/hostkey.pem\n" } @@ -316,6 +322,7 @@ sub writeipsecfiles { print CONF "\tleftnexthop=%defaultroute\n" if ($lconfighash{$key}[26] eq 'RED' && $lvpnsettings{'VPN_IP'} ne '%defaultroute'); print CONF "\tleftsubnet=$lconfighash{$key}[8]\n"; print CONF "\tleftfirewall=yes\n"; + print CONF "\tlefthostaccess=yes\n";
print CONF "\tright=$lconfighash{$key}[10]\n"; if ($lconfighash{$key}[3] eq 'net') { @@ -381,9 +388,6 @@ sub writeipsecfiles { print CONF "\tikelifetime=$lconfighash{$key}[16]h\n" if ($lconfighash{$key}[16]); print CONF "\tkeylife=$lconfighash{$key}[17]h\n" if ($lconfighash{$key}[17]);
- # Aggresive mode - print CONF "\taggrmode=yes\n" if ($lconfighash{$key}[12] eq 'on'); - # Compression print CONF "\tcompress=yes\n" if ($lconfighash{$key}[13] eq 'on');
@@ -455,7 +459,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg
map ($vpnsettings{$_} = $cgiparams{$_}, ('ENABLED','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL', - 'DBG_KLIPS','DBG_DNS','DBG_NAT_T')); + 'DBG_DNS'));
$vpnsettings{'VPN_IP'} = $cgiparams{'VPN_IP'}; $vpnsettings{'VPN_DELAYED_START'} = $cgiparams{'VPN_DELAYED_START'}; @@ -581,6 +585,7 @@ END $cahash{$key}[0] = $cgiparams{'CA_NAME'}; $cahash{$key}[1] = &Header::cleanhtml(getsubjectfromcert ("${General::swroot}/ca/$cgiparams{'CA_NAME'}cert.pem")); &General::writehasharray("${General::swroot}/vpn/caconfig", %cahash); + system('/usr/local/bin/ipsecctrl', 'R'); sleep $sleepDelay;
@@ -1277,7 +1282,6 @@ END $cgiparams{'ESP_INTEGRITY'} = $confighash{$cgiparams{'KEY'}}[22]; $cgiparams{'ESP_GROUPTYPE'} = $confighash{$cgiparams{'KEY'}}[23]; $cgiparams{'ESP_KEYLIFE'} = $confighash{$cgiparams{'KEY'}}[17]; - $cgiparams{'AGGRMODE'} = $confighash{$cgiparams{'KEY'}}[12]; $cgiparams{'COMPRESSION'} = $confighash{$cgiparams{'KEY'}}[13]; $cgiparams{'ONLY_PROPOSED'} = $confighash{$cgiparams{'KEY'}}[24]; $cgiparams{'PFS'} = $confighash{$cgiparams{'KEY'}}[28]; @@ -1782,7 +1786,7 @@ END $confighash{$key}[22] = $cgiparams{'ESP_INTEGRITY'}; $confighash{$key}[23] = $cgiparams{'ESP_GROUPTYPE'}; $confighash{$key}[17] = $cgiparams{'ESP_KEYLIFE'}; - $confighash{$key}[12] = $cgiparams{'AGGRMODE'}; + $confighash{$key}[12] = 'off'; # $cgiparams{'AGGRMODE'}; $confighash{$key}[13] = $cgiparams{'COMPRESSION'}; $confighash{$key}[24] = $cgiparams{'ONLY_PROPOSED'}; $confighash{$key}[28] = $cgiparams{'PFS'}; @@ -1843,7 +1847,6 @@ END $cgiparams{'ESP_INTEGRITY'} = 'sha1|md5'; #[22]; $cgiparams{'ESP_GROUPTYPE'} = ''; #[23]; $cgiparams{'ESP_KEYLIFE'} = '8'; #[17]; - $cgiparams{'AGGRMODE'} = 'off'; #[12]; $cgiparams{'COMPRESSION'} = 'off'; #[13]; $cgiparams{'ONLY_PROPOSED'} = 'off'; #[24]; $cgiparams{'PFS'} = 'on'; #[28]; @@ -1906,7 +1909,6 @@ END <input type='hidden' name='ESP_INTEGRITY' value='$cgiparams{'ESP_INTEGRITY'}' /> <input type='hidden' name='ESP_GROUPTYPE' value='$cgiparams{'ESP_GROUPTYPE'}' /> <input type='hidden' name='ESP_KEYLIFE' value='$cgiparams{'ESP_KEYLIFE'}' /> - <input type='hidden' name='AGGRMODE' value='$cgiparams{'AGGRMODE'}' /> <input type='hidden' name='COMPRESSION' value='$cgiparams{'COMPRESSION'}' /> <input type='hidden' name='ONLY_PROPOSED' value='$cgiparams{'ONLY_PROPOSED'}' /> <input type='hidden' name='PFS' value='$cgiparams{'PFS'}' /> @@ -1952,10 +1954,9 @@ END <td class='boldbase' nowrap='nowrap'>$Lang::tr{'remote subnet'}</td> <td><input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' /></td> </tr><tr> - <td class='boldbase'>$Lang::tr{'vpn local id'}: <img src='/blob.gif' alt='*' /> - <br />($Lang::tr{'eg'} <tt>@xy.example.com</tt>)</td> + <td class='boldbase'>$Lang::tr{'vpn local id'}:<br />($Lang::tr{'eg'} <tt>@xy.example.com</tt>)</td> <td><input type='text' name='LOCAL_ID' value='$cgiparams{'LOCAL_ID'}' /></td> - <td class='boldbase'>$Lang::tr{'vpn remote id'}: <img src='/blob.gif' alt='*' /></td> + <td class='boldbase'>$Lang::tr{'vpn remote id'}:</td> <td><input type='text' name='REMOTE_ID' value='$cgiparams{'REMOTE_ID'}' /></td> </tr><tr> </tr><td><br /></td><tr> @@ -2123,7 +2124,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(768|1024|1536|2048|3072|4096|6144|8192)$/) { + if ($val !~ /^(1024|1536|2048|3072|4096|6144|8192)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2159,7 +2160,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || } } if ($cgiparams{'ESP_GROUPTYPE'} ne '' && - $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(768|1024|1536|2048|3072|4096)$/) { + $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(1024|1536|2048|3072|4096)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2174,7 +2175,6 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || }
if ( - ($cgiparams{'AGGRMODE'} !~ /^(|on|off)$/) || ($cgiparams{'COMPRESSION'} !~ /^(|on|off)$/) || ($cgiparams{'ONLY_PROPOSED'} !~ /^(|on|off)$/) || ($cgiparams{'PFS'} !~ /^(|on|off)$/) || @@ -2192,7 +2192,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $confighash{$cgiparams{'KEY'}}[22] = $cgiparams{'ESP_INTEGRITY'}; $confighash{$cgiparams{'KEY'}}[23] = $cgiparams{'ESP_GROUPTYPE'}; $confighash{$cgiparams{'KEY'}}[17] = $cgiparams{'ESP_KEYLIFE'}; - $confighash{$cgiparams{'KEY'}}[12] = $cgiparams{'AGGRMODE'}; + $confighash{$cgiparams{'KEY'}}[12] = 'off'; #$cgiparams{'AGGRMODE'}; $confighash{$cgiparams{'KEY'}}[13] = $cgiparams{'COMPRESSION'}; $confighash{$cgiparams{'KEY'}}[24] = $cgiparams{'ONLY_PROPOSED'}; $confighash{$cgiparams{'KEY'}}[28] = $cgiparams{'PFS'}; @@ -2213,7 +2213,6 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $cgiparams{'ESP_INTEGRITY'} = $confighash{$cgiparams{'KEY'}}[22]; $cgiparams{'ESP_GROUPTYPE'} = $confighash{$cgiparams{'KEY'}}[23]; $cgiparams{'ESP_KEYLIFE'} = $confighash{$cgiparams{'KEY'}}[17]; - $cgiparams{'AGGRMODE'} = $confighash{$cgiparams{'KEY'}}[12]; $cgiparams{'COMPRESSION'} = $confighash{$cgiparams{'KEY'}}[13]; $cgiparams{'ONLY_PROPOSED'} = $confighash{$cgiparams{'KEY'}}[24]; $cgiparams{'PFS'} = $confighash{$cgiparams{'KEY'}}[28]; @@ -2246,6 +2245,11 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $checked{'IKE_GROUPTYPE'}{'8192'} = ''; @temp = split('|', $cgiparams{'IKE_GROUPTYPE'}); foreach my $key (@temp) {$checked{'IKE_GROUPTYPE'}{$key} = "selected='selected'"; } + + # 768 is not supported by strongswan + $checked{'IKE_GROUPTYPE'}{'768'} = ''; + + $checked{'ESP_ENCRYPTION'}{'aes256'} = ''; $checked{'ESP_ENCRYPTION'}{'aes128'} = ''; $checked{'ESP_ENCRYPTION'}{'3des'} = ''; @@ -2259,7 +2263,6 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || foreach my $key (@temp) {$checked{'ESP_INTEGRITY'}{$key} = "selected='selected'"; } $checked{'ESP_GROUPTYPE'}{$cgiparams{'ESP_GROUPTYPE'}} = "selected='selected'";
- $checked{'AGGRMODE'} = $cgiparams{'AGGRMODE'} eq 'on' ? "checked='checked'" : '' ; $checked{'COMPRESSION'} = $cgiparams{'COMPRESSION'} eq 'on' ? "checked='checked'" : '' ; $checked{'ONLY_PROPOSED'} = $cgiparams{'ONLY_PROPOSED'} eq 'on' ? "checked='checked'" : '' ; $checked{'PFS'} = $cgiparams{'PFS'} eq 'on' ? "checked='checked'" : '' ; @@ -2312,7 +2315,6 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || <option value='2048' $checked{'IKE_GROUPTYPE'}{'2048'}>MODP-2048</option> <option value='1536' $checked{'IKE_GROUPTYPE'}{'1536'}>MODP-1536</option> <option value='1024' $checked{'IKE_GROUPTYPE'}{'1024'}>MODP-1024</option> - <option value='768' $checked{'IKE_GROUPTYPE'}{'768'}>MODP-768</option> </select></td> </tr><tr> <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike lifetime'}</td><td class='boldbase' valign='top'> @@ -2344,9 +2346,6 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || <td colspan='5'><input type='checkbox' name='ONLY_PROPOSED' $checked{'ONLY_PROPOSED'} /> IKE+ESP: $Lang::tr{'use only proposed settings'}</td> </tr><tr> - <td colspan='5'><input type='checkbox' name='AGGRMODE' $checked{'AGGRMODE'} /> - $Lang::tr{'vpn aggrmode'}</td> - </tr><tr> <td colspan='5'><input type='checkbox' name='PFS' $checked{'PFS'} /> $Lang::tr{'pfs yes no'}</td> <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td> @@ -2408,7 +2407,7 @@ EOF $checked{'VPN_WATCH'} = $cgiparams{'VPN_WATCH'} eq 'on' ? "checked='checked'" : '' ; map ($checked{$_} = $cgiparams{$_} eq 'on' ? "checked='checked'" : '', ('ENABLED','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL', - 'DBG_KLIPS','DBG_DNS','DBG_NAT_T')); + 'DBG_DNS'));
&Header::showhttpheaders(); @@ -2452,10 +2451,7 @@ crypt:<input type='checkbox' name='DBG_CRYPT' $checked{'DBG_CRYPT'} />, parsing:<input type='checkbox' name='DBG_PARSING' $checked{'DBG_PARSING'} />, emitting:<input type='checkbox' name='DBG_EMITTING' $checked{'DBG_EMITTING'} />, control:<input type='checkbox' name='DBG_CONTROL' $checked{'DBG_CONTROL'} />, -klips:<input type='checkbox' name='DBG_KLIPS' $checked{'DBG_KLIPS'} />, -dns:<input type='checkbox' name='DBG_DNS' $checked{'DBG_DNS'} />, -nat_t:<input type='checkbox' name='DBG_NAT_T' $checked{'DBG_NAT_T'} /></p> - +dns:<input type='checkbox' name='DBG_DNS' $checked{'DBG_DNS'} /> <hr /> <table width='100%'> <tr> diff --git a/html/cgi-bin/wireless.cgi b/html/cgi-bin/wireless.cgi index a1dcf71..ecff179 100644 --- a/html/cgi-bin/wireless.cgi +++ b/html/cgi-bin/wireless.cgi @@ -92,7 +92,7 @@ if ($cgiparams{'ACTION'} eq 'add') { $cgiparams{'SOURCE_IP'} = 'NONE'; } else { - unless(&General::validip($cgiparams{'SOURCE_IP'})) + unless(&General::validipormask($cgiparams{'SOURCE_IP'})) { $errormessage = $Lang::tr{'invalid fixed ip address'}; goto ADDERROR; diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index 5bbb0d1..2e12a65 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -307,13 +307,12 @@ if ( $wlan_card_status ne '' ){ print "<br />"; print "<table width='95%' cellspacing='0' border='0'>"; print "<tr align='center'>"; -print "<td colspan='4'><hr size='1'></td>"; print "</tr>"; print "<tr align='center'>"; print "<td width='40%'> </td>"; -print "<td width='20%'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='submit' name='ACTION' value='$Lang::tr{'start'}' /></form></td>"; -print "<td width='20%'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='submit' name='ACTION' value='$Lang::tr{'stop'}' /></form></td>"; -print "<td width='20%'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='submit' name='ACTION' value='$Lang::tr{'restart'}' /></form></td>"; +print "<td width='20%'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'start'}' /><input type='image' alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' /></form></td>"; +print "<td width='20%'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'stop'}' /><input type='image' alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' /></form></td>"; +print "<td width='20%'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'restart'}' /><input type='image' alt='$Lang::tr{'restart'}' title='$Lang::tr{'restart'}' src='/images/view-refresh.png' /></form></td>"; print "</tr>"; print "</table>"; }else{ @@ -424,9 +423,10 @@ END print <<END <br /> <table width='95%' cellspacing='0'> -<tr><td align='center'><hr size='1'> +<tr><td align='center'> <form method='post' action='$ENV{'SCRIPT_NAME'}'> - <input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></form></td> + <input type='hidden' name='ACTION' value=$Lang::tr{'save'} /> + <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></form></td> </tr> </table> END diff --git a/html/html/images/go-down.png b/html/html/images/go-down.png index 3dd7fcc..7234c29 100644 Binary files a/html/html/images/go-down.png and b/html/html/images/go-down.png differ diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 9af7380..c681f80 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -363,8 +363,8 @@ if ($settings{'SPEED'} ne 'off') { print <<END <br /> <b>$Lang::tr{'bandwidth usage'}:</b> - $Lang::tr{'incoming'}: <span id="rx_kbs"></span> - $Lang::tr{'outgoing'}: <span id="tx_kbs"></span> + $Lang::tr{'incoming'}: <span id="rx_kbs"></span> $Lang::tr{'outgoing'}: <span id="tx_kbs"></span> + END ; } diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index 52ba6a3..0394315 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -14,6 +14,7 @@ 'ConnSched add action' => 'Aktion hinzufÃŒgen', 'ConnSched change profile title' => 'Wechsle zu Profil:', 'ConnSched days' => 'Tage:', +'Set time on boot' => 'Erzwinge das Setzen der Systemzeit im Bootvorgang', 'ConnSched down' => 'Runter', 'ConnSched ipsecstart' => 'IPSec (neu)starten', 'ConnSched ipsecstop' => 'IPSec stop', @@ -482,7 +483,7 @@ 'clock last synchronized at' => 'Die Uhr wurde zuletzt synchronisiert um', 'comment' => 'Kommentar', 'common name' => 'Gemeinsamer Name', -'community rules' => 'Snort GPL Community Rules', +'community rules' => 'Emergingthreats.net Community Rules', 'comp-lzo' => 'LZO-Kompression', 'compression' => 'Kompression:', 'computer to modem rate' => 'Ãbertragungsrate zwischen Computer und Modem:', @@ -687,6 +688,7 @@ 'download certificate' => 'Zertifikate herunterladen', 'download host certificate' => 'Host Zertifikat herunterladen', 'download new ruleset' => 'Neuen Regelsatz herunterladen', +'upload new ruleset' => 'Neuen Regelsatz hochladen', 'download pkcs12 file' => 'PKCS12 Datei herunterladen', 'download root certificate' => 'Root Zertifikat herunterladen', 'dpd action' => 'Aktion fÃŒr Dead Peer Detection', @@ -759,7 +761,7 @@ 'esp integrity' => 'ESP IntegritÀt:', 'esp keylife' => 'Lebensdauer des ESP SchlÃŒssels:', 'esp keylife should be between 1 and 24 hours' => 'ESP SchlÃŒssel-Lebensdauer sollte zwischen 1 und 24 Stunden betragen.', -'every' => 'Jeden', +'every' => 'Alle', 'exampel' => 'Beispiel', 'exclude logfiles' => 'ohne Logdateien', 'excluding buffers and cache' => '-/+ Puffer/Zwischenspeicher', @@ -775,7 +777,7 @@ 'external access rule removed' => ' Regel fÃŒr externen Zugang entfernt; Starte Zugangskontroller neu', 'external aliases configuration' => 'Externe Alias-Konfiguration', 'extrahd' => 'ExtraHD', -'extrahd founded drives' => 'gefundene Laufwerke', +'extrahd detected drives' => 'gefundene Laufwerke', 'false classnumber' => 'Die Klassennummer passt nicht zum angegebenen Interface.', 'false max bandwith' => 'Maximalbandbreite ist ungÃŒltig.', 'false min bandwith' => 'Mindestbandbreite ist ungÃŒltig.', @@ -918,7 +920,7 @@ 'intrusion detection' => 'Einbruchdetektierung', 'intrusion detection system' => 'Intrusion Detection System', 'intrusion detection system log viewer' => 'Betrachter der IDS-Logfiles', -'intrusion detection system rules' => 'Ãntrusion Detection System Regeln', +'intrusion detection system rules' => 'Intrusion Detection System Regeln', 'intrusion detection system2' => 'Intrusion Detection System:', 'invalid broadcast ip' => 'UngÃŒltige Broadcast-IP', 'invalid cache size' => 'UngÃŒltige Cache-GröÃe.', @@ -956,7 +958,7 @@ 'invalid keep time' => 'Die Aufbewahrungszeit muss eine gÃŒltige Zahl sein', 'invalid key' => 'UngÃŒltiger SchlÃŒssel.', 'invalid loaded file' => 'UngÃŒltige geladene Datei', -'invalid local-remote id' => 'Falls verwendet, dÃŒrfen leftid und rightid nicht gleich sein, und mit einem "@"-Zeichen beginnen. Dies sind leftid und rightid in der OpenSwan-Terminologie.', +'invalid local-remote id' => 'Local-Id und Remote-Id dÃŒrfen nicht gleich sein, und mÃŒssen einem "@"-Zeichen beginnen. Dies sind leftid und rightid in der StrongSwan-Terminologie.', 'invalid logserver address' => 'UngÃŒltige syslogd server Adresse', 'invalid mac address' => 'UngÃŒltige MAC-Adresse', 'invalid max lease time' => 'UngÃŒltige max. Haltezeit.', @@ -1225,6 +1227,8 @@ 'not running' => 'nicht gestartet', 'not set' => 'nicht gesetzt', 'november' => 'November', +'ntp common settings' => 'Allgemeine Einstellungen', +'ntp sync' => 'Synchronisation', 'ntp configuration' => 'NTP-Konfiguration', 'ntp must be enabled to have clients' => 'Um Clients annehmen zu können, muà NTP vorher aktiviert sein.', 'ntp server' => 'NTP-Server', @@ -1268,11 +1272,19 @@ 'out' => 'Aus', 'outgoing' => 'ausgehend', 'outgoing firewall' => 'Ausgehende Firewall', +'outgoing firewall groups' => 'Firewall Gruppen', +'outgoing firewall add ip group' => 'IP Adressgruppen hinzufÃŒgen', +'outgoing firewall ip groups' => 'Ausgehende Firewall IP Adressgruppen', +'outgoing firewall view group' => 'Gruppe anzeigen', 'outgoing traffic in bytes per second' => 'Abgehender Verkehr', 'outgoingfw mode0' => 'In diesem Modus ist es allen Rechnern im Netzwerk uneingeschrÀnkt möglich Verbindungen ins Internet aufzubauen.', 'outgoingfw mode1' => 'In diesem Modus werden nur Verbindungen nach den oben definierten Regeln zugelassen.', 'outgoingfw mode2' => 'In diesem Modus werden sÀmtliche Verbindungen erlaubt, bis auf die oben definierten Block-Regeln.', -'outgoingfw p2p description' => 'Klicken Sie auf die Symbole um das entsprechende iptables P2P-Blockmodul zu (de-)aktivieren.', +'outgoingfw p2p description 1' => 'Das Symbol', +'outgoingfw p2p description 2' => 'bedeutet, dass das P2P-Protokoll erlaubt wird oder', +'outgoingfw p2p description 3' => 'das P2P-Protokoll gesperrt wird.', +'outgoingfw p2p deny' => 'P2P-Protokoll ist gesperrt!', +'outgoingfw p2p allow' => 'P2P-Protokoll ist erlaubt!', 'outgoingfw reset' => 'Alle Regeln löschen', 'override mtu' => 'Ãberschreibe Standard MTU', 'ovpn' => 'OpenVPN', @@ -1327,6 +1339,7 @@ 'pakfire update daily' => 'TÀglich nach Updates suchen:', 'pakfire updates' => 'Zur VerfÃŒgung stehende Updates:', 'pakfire working' => 'Pakfire fÃŒhrt gerade eine Aufgabe aus... Bitte warten sie, bis diese erfolgreich beendet wurde.', +'snort working' => 'Snort fÃŒhrt gerade eine Aufgabe aus... Bitte warten sie, bis diese erfolgreich beendet wurde.', 'pap or chap' => 'PAP oder CHAP', 'parentclass' => 'Parentklasse', 'password' => 'Passwort:', @@ -1694,7 +1707,7 @@ 'unknown' => 'Unbekannt', 'unnamed' => 'Unbenannt', 'update' => 'Aktualisieren', -'update accelerator' => 'Update-Booster', +'update accelerator' => 'Update-Accelerator', 'update time' => 'Aktualisiere die Uhrzeit:', 'update transcript' => 'Aktualisieren', 'updatedatabase' => 'Datenbank auf Stand der letzten Reports setzen', @@ -2067,7 +2080,7 @@ 'wlanap notifications' => 'Hinweise', 'wlanap warnings' => 'Warnungen', 'wlanap wlan status' => 'WLan Status', -'wlanap link wireless' => 'Wireless Lan Clients freischaten', +'wlanap link wireless' => 'Wireless Lan Clients freischalten', 'wlanap link dhcp' => 'Wireless Lan DHCP Einstellungen', 'wlanap invalid wpa' => 'UngÃŒltige LÀnge in WPA-Passphrase. Muss zwischen 8 und 63 Zeichen lang sein.', 'wlanap interface' => 'Interface ÃŒbernehmen', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 14d6cee..55d24c4 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -47,6 +47,7 @@ 'mpfire search' => 'MPFire Search', 'repeat' => 'Repeat', 'shuffle' => 'Shuffle', +'Set time on boot' => 'Force setting the system clock on boot', 'Port Rule' => 'Port-Rule', 'qos add subclass' => 'Add subclass', 'The source IP address is invalid.' => 'The source IP address is invalid.', @@ -506,7 +507,7 @@ 'clock last synchronized at' => 'Clock was last synchronized at', 'comment' => 'Description:', 'common name' => 'Common name', -'community rules' => 'Snort GPL Community Rules', +'community rules' => 'Emergingthreats.net Community Rules', 'comp-lzo' => 'LZO-Compression:', 'compression' => 'Compression:', 'computer to modem rate' => 'Computer to modem rate:', @@ -715,6 +716,7 @@ 'download certificate' => 'Download certificate', 'download host certificate' => 'Download host certificate', 'download new ruleset' => 'Download new ruleset', +'upload new ruleset' => 'Upload new ruleset', 'download pkcs12 file' => 'Download PKCS12 file', 'download root certificate' => 'Download root certificate', 'dpd action' => 'Dead Peer Detection action', @@ -803,7 +805,7 @@ 'external access rule removed' => ' External access rule removed; restarting access controller', 'external aliases configuration' => 'External aliases configuration', 'extrahd' => 'ExtraHD', -'extrahd founded drives' => 'founded drives', +'extrahd detected drives' => 'detected drives', 'false classnumber' => 'The Class-Number does not match the interface.', 'false max bandwith' => 'Maximum bandwith is false.', 'false min bandwith' => 'Minimum bandwith is false.', @@ -987,7 +989,7 @@ 'invalid keep time' => 'Keep time must be a valid number', 'invalid key' => 'Invalid key.', 'invalid loaded file' => 'Invalid loaded file', -'invalid local-remote id' => 'When used, local & remote id must not be equal and begin with a "@" sign. These are leftid and rightid in openswan terminology.', +'invalid local-remote id' => 'local & remote id must not be equal and begin with a "@" sign. These are leftid and rightid in strongswan terminology.', 'invalid logserver address' => 'Invalid syslogd server address', 'invalid mac address' => 'Invalid MAC address', 'invalid max lease time' => 'Invalid max lease time.', @@ -1013,7 +1015,7 @@ 'invalid vpi vpci' => 'Invalid VPI/VPCI settings', 'invalid wins address' => 'Invalid WINS server address.', 'invert' => 'Invert', -'ip address' => 'IP address:', +'ip address' => 'IP address', 'ip address in use' => 'IP address already in use', 'ip address outside subnets' => 'IP Address outside subnets', 'ip alias added' => 'External IP alias added', @@ -1254,6 +1256,8 @@ 'not set' => 'not set', 'notes' => 'Notes', 'november' => 'November', +'ntp common settings' => 'Common settings', +'ntp sync' => 'Synchronization', 'ntp configuration' => 'NTP configuration', 'ntp must be enabled to have clients' => 'NTP must be enabled to have clients.', 'ntp server' => 'NTP Server', @@ -1297,11 +1301,19 @@ 'out' => 'Out', 'outgoing' => 'outgoing', 'outgoing firewall' => 'Outgoing Firewall', +'outgoing firewall groups' => 'Firewall Groups', +'outgoing firewall add ip group' => 'Add IP Address Group', +'outgoing firewall ip groups' => 'Outgoing Firewall IP Adress Groups', +'outgoing firewall view group' => 'View group', 'outgoing traffic in bytes per second' => 'Outgoing Traffic', 'outgoingfw mode0' => 'Using this mode, all clients are able to access the internet without any restrictions.', 'outgoingfw mode1' => 'Using this mode, only connections based on the defined rules are allowed.', 'outgoingfw mode2' => 'Using this mode, all connections are allowed despited off the defined ones.', -'outgoingfw p2p description' => 'Press the corresponding button to enable/disable the iptables p2p block modul.', +'outgoingfw p2p description 1' => 'The button', +'outgoingfw p2p description 2' => 'means that the p2p protocol is allowed or', +'outgoingfw p2p description 3' => 'that the p2p protocol is denied.', +'outgoingfw p2p deny' => 'p2p protocol is denied', +'outgoingfw p2p allow' => 'p2p protocol is allowed', 'outgoingfw reset' => 'Reset all', 'override mtu' => 'Override default MTU', 'ovpn' => 'OpenVPN', @@ -1356,6 +1368,7 @@ 'pakfire update daily' => 'Search for updates daily:', 'pakfire updates' => 'Available Update:', 'pakfire working' => 'Pakfire is working ... Please wait until all operations have completed successfully.', +'snort working' => 'Snort is working ... Please wait until all operations have completed successfully.', 'pap or chap' => 'PAP or CHAP', 'parentclass' => 'Parentclass', 'password' => 'Password:', @@ -1727,7 +1740,7 @@ 'unknown' => 'UNKNOWN', 'unnamed' => 'Unnamed', 'update' => 'Update', -'update accelerator' => 'Update Booster', +'update accelerator' => 'Update Accelerator', 'update time' => 'Update the time:', 'update transcript' => 'Update transcript', 'updatedatabase' => 'Update Database with last report', diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl new file mode 100644 index 0000000..5edbade --- /dev/null +++ b/langs/es/cgi-bin/es.pl @@ -0,0 +1,2136 @@ +%tr = ( +%tr, + +'Act as' => 'Actuar Como:', +'Add Port Rule' => 'Añadir Regla de Puerto', +'Add Rule' => 'Añadir Regla', +'optional at cmd' => 'Comando AT Opcional', +'Choose Rule' => 'Seleccione <u>una</u> de las siguientes reglas.', +'Class' => 'Clase', +'Class was deleted' => 'con subclases potenciales fué eliminado', +'Client status and controlc' => 'Estado y control del cliente:', +'ConnSched action' => 'Acción:', +'ConnSched add action' => 'Añadir Acción', +'ConnSched change profile title' => 'Cambiar a perfil:', +'ConnSched days' => 'DÃas:', +'ConnSched down' => 'Abajo', +'ConnSched ipsecstart' => '(Re)iniciarIPSec', +'ConnSched ipsecstop' => 'Detener IPSec', +'ConnSched reconnect' => 'Reconectar', +'ConnSched scheduled actions' => 'Acciones planificadas', +'ConnSched scheduler' => 'Planificador', +'ConnSched select profile' => 'Elegir Perfil', +'modify' => 'Modificar', +'parentclass add' => 'Añadir clase parent', +'ConnSched time' => 'Tiempo:', +'ConnSched up' => 'Arriba', +'ConnSched weekdays' => 'DÃas de las semana:', +'core notice 1' => '<strong>NOTA:</strong> Existe una actualización de core de', +'core notice 2' => 'hacia', +'core notice 3' => 'disponible.', +'Enter TOS' => 'Activar o desactivar bits TOS<br /> y después presione <i>Guardar</i>', +'Existing Files' => 'Archivos en la base de datos', +'HDD temperature' => 'Temperatura de HDD', +'Level7 Protocol' => 'Protocolo Nivel 7', +'Level7 Rule' => 'Regla Nivel 7', +'Local VPN IP' => 'Red Interna (GREEN):', +'advproxy redirector children' => 'Número de procesos filtrados', +'advproxy invalid num of children' => 'Número de procesos filtrados inválido', +'MTU' => 'Tamaño de MTU', +'Number of IPs for the pie chart' => 'Número de IPS para la gráfica circular', +'Number of Ports for the pie chart' => 'Número de puerto para la gráfica circular', +'OVPN' => 'OpenVPN', +'OpenVPN' => 'OpenVPN', +'Pages' => 'Páginas', +'Ping' => 'Ping:', +'mpfire search' => 'Búsqueda MPFire', +'repeat' => 'Repetir', +'shuffle' => 'Al azar', +'Port Rule' => 'Regla de puerto', +'qos add subclass' => 'Añadir subclase', +'The source IP address is invalid.' => 'La IP de orÃgen es inválida', +'The destination IP address is invalid.' => 'la IP de destino es inválida', +'Add Level7 rule' => 'añadir regla de Nivel 7', +'Level7 rule' => 'Regla Nivel 7', +'TOS rule' => 'Regla TOS', +'The class number does not match the specified interface.' => 'El número de clase no coincide con la interfaz especificada', +'QoS not enabled' => 'Qos no está activado', +'Queuelenght' => 'Queuelenght', +'Remote IP' => 'IP Remota / Nombre de Host (DynDns):', +'Remote VPN IP' => 'Subred VPN (ej. 10.0.10.0/255.255.255.0):', +'Resolv' => 'Reintentos-Resolv:', +'Scan for Files' => 'Buscar archivos', +'Scan from Directory' => 'Buscar desde directorio', +'Subclass' => 'Subclase', +'TOS Bits' => 'Bits TOS', +'TOS Rule' => 'Regla TOS', +'Utilization on' => 'Utilizar en', +'Verbose' => 'Verbose:', +'WakeOnLan' => 'Wake on Lan', +'a ca certificate with this name already exists' => 'Ya existe un certificado CA con este nombre', +'a connection with this common name already exists' => 'Ya existe una conexión con este nombre común.', +'a connection with this name already exists' => 'Ya existe una conexión con este nombre.', +'abort' => 'abortar', +'access allowed' => 'Acceso permitido desde:', +'access refused with this oinkcode' => 'Acceso denegado con este Oink Code', +'accounting' => 'Cuentas', +'accounting user nonpdc' => 'Cuentas - Modo no-PDC', +'accounting user pdc' => 'Cuentas - Modo PDC', +'action' => 'Acción', +'activate' => 'Activar', +'activate user' => 'Activar usuario', +'active' => 'Activo', +'add' => 'Agregar', +'add a host' => 'Agregar un host:', +'add a new rule' => 'Agregar una regla nueva:', +'add cron' => 'Agregar cronjob', +'add device' => 'Agregar dispositivo', +'add network' => 'Agregar red', +'add new alias' => 'Agregar nuevo alias:', +'add new lease' => 'Agregar nueva concesión fija', +'add new ovpn' => 'Configuraciones de OpenVPN:', +'add printer' => 'Agregar impresora', +'add service' => 'Agregar servicio', +'add share' => 'Agregar recurso compartido', +'add subclass' => 'Agregar subclase', +'add user' => 'Agregar usuario', +'add xtaccess' => 'Agregar acceso externo', +'add-route' => 'Agregar push route', +'added from dhcp lease list' => 'Agregar desde lista de concesiones DHCP', +'admin user password has been changed' => 'El password del usuario Admin ha cambiado', +'admin users' => 'Usuario con niveles de superusuario (root)', +'administrator user password' => 'Contraseña del usuario Admin:', +'adsl settings' => 'Configuraciones ADSL', +'advanced' => 'Avanzadas', +'advanced server' => 'Opciones avanzadas de servidor', +'advproxy AUTH always required' => 'Se necesita autentificación para acceso irrestricto de direcciones de orÃgen', +'advproxy AUTH auth cache TTL' => 'Cache de autenticación TTL (en minutos)', +'advproxy AUTH global settings' => 'Configuración global de autenticación', +'advproxy AUTH limit of IP addresses' => 'LÃmite de direcciones IP por usuario', +'advproxy AUTH method' => 'Método de autenticación', +'advproxy AUTH method ident' => 'identd', +'advproxy AUTH method ldap' => 'LDAP', +'advproxy squidclamav' => 'SquidClamav', +'advproxy AUTH method ncsa' => 'Local', +'advproxy AUTH method none' => 'Ninguno', +'advproxy AUTH method ntlm' => 'Windows', +'advproxy AUTH method radius' => 'RADIUS', +'advproxy AUTH no auth' => 'Dominios sin autenticación (uno por lÃnea)', +'advproxy AUTH number of auth processes' => 'Número de proceso de autenticación', +'advproxy AUTH realm' => 'Medio del sistema de autenticación', +'advproxy AUTH user IP cache TTL' => 'Caché TTL de Usuario/IP (en minutos)', +'advproxy IDENT authorized users' => 'Usuarios autorizados (uno por lÃnea)', +'advproxy IDENT aware hosts' => 'Ident habilitador para los hosts (uno por lÃnea)', +'advproxy IDENT identd settings' => 'Configuraciones comunes para identd', +'advproxy IDENT required' => 'Autenticación identd requerida', +'advproxy IDENT timeout' => 'Tiempo de espera de identd (en segundos)', +'advproxy IDENT unauthorized users' => 'Usuarios no autorizados (uno por lÃnea)', +'advproxy IDENT use negative access list' => 'Control de acceso negativo', +'advproxy IDENT use positive access list' => 'Control de acceso positivo', +'advproxy IDENT user based access restrictions' => 'Restricciones basadas en usuario', +'advproxy LDAP ADS' => 'Active Directory', +'advproxy LDAP NDS' => 'Novell eDirectory', +'advproxy LDAP V2' => 'LDAP version 2', +'advproxy LDAP V3' => 'LDAP version 3', +'advproxy LDAP auth' => 'LDAP authentication', +'advproxy LDAP basedn' => 'DN', +'advproxy LDAP binddn password' => 'Contraseña de Bind DN', +'advproxy LDAP binddn settings' => 'Configuraciones de Bind DN', +'advproxy LDAP binddn username' => 'Nombre de usuario de Bind DN', +'advproxy LDAP common settings' => 'Configuraciones comunes de LDAP', +'advproxy LDAP group access control' => 'Acceso basado en grupo', +'advproxy LDAP group required' => 'Grupo requerido', +'advproxy LDAP port' => 'Puerto', +'advproxy LDAP server' => 'Servidor LDAP', +'advproxy LDAP type' => 'Tipo de LDAP', +'advproxy MIME block types' => 'Bloquear estos tipos MIME (uno por lÃnea)', +'advproxy MIME filter' => 'Filtro de tipos MIME', +'advproxy NCSA auth' => 'Autenticación de usuario local', +'advproxy NCSA create user' => 'Crear Usuario', +'advproxy NCSA group' => 'Grupo', +'advproxy NCSA group membership' => 'MembresÃa de grupo', +'advproxy NCSA grp disabled' => 'Desactivado', +'advproxy NCSA grp extended' => 'Extendido', +'advproxy NCSA grp standard' => 'Estándar', +'advproxy NCSA min password length' => 'Longitud de password mÃnima', +'advproxy NCSA no accounts' => 'No hay cuentas de usuario disponibles', +'advproxy NCSA password' => 'Contraseña', +'advproxy NCSA password confirm' => 'contraseña(confirmar)', +'advproxy NCSA redirector bypass' => 'Omitir la redirección para miembros del grupo', +'advproxy NCSA update user' => 'Actualizar usuario', +'advproxy NCSA user accounts' => 'Cuentas de usuario', +'advproxy NCSA user management' => 'Manejo de usuario', +'advproxy NCSA username' => 'Nombre de Usuario', +'advproxy NTLM BDC hostname' => 'Nombre de host BDC', +'advproxy NTLM PDC hostname' => 'Nombre de host PDC', +'advproxy NTLM auth' => 'Autenticación Windows NT/2003', +'advproxy NTLM auth mode' => 'Modo de autenticación', +'advproxy NTLM authorized users' => 'Dominios autorizados (uno por lÃnea)', +'advproxy NTLM domain' => 'Dominio', +'advproxy NTLM domain settings' => 'Configuración comunes de dominio.', +'advproxy NTLM unauthorized users' => 'Usuario de dominio NO autorizados (uno por lÃnea)', +'advproxy NTLM use integrated auth' => 'Activar autenticación integrada de Windows', +'advproxy NTLM use negative access list' => 'Usar control de acceso negativo', +'advproxy NTLM use positive access list' => 'Usar control de acceso positivo', +'advproxy NTLM user based access restrictions' => 'Restricciones de acceso basadas en usuario', +'advproxy RADIUS authorized users' => 'Usuarios autorizados (uno por lÃnea)', +'advproxy RADIUS identifier' => 'Identificador', +'advproxy RADIUS port' => 'Puerto', +'advproxy RADIUS radius settings' => 'Configuraciones comunes de RADIUS', +'advproxy RADIUS secret' => 'Secreto Compartido', +'advproxy RADIUS server' => 'Servidor RADIUS', +'advproxy RADIUS unauthorized users' => 'Usuarios no autorizados (uno por lÃnea)', +'advproxy RADIUS use negative access list' => 'Usar control de acceso negativo', +'advproxy RADIUS use positive access list' => 'Usar control de acceso positivo', +'advproxy RADIUS user based access restrictions' => 'Restricciones de acceso basadas en usuario', +'advproxy UA enable filter' => 'Permitir chequeo de navegador', +'advproxy access' => 'Acceso', +'advproxy admin mail' => 'Administrador del caché de e-mail', +'advproxy advanced proxy' => 'Proxy Avanzado', +'advproxy advanced web proxy' => 'Proxy Web Avanzado', +'advproxy advanced web proxy configuration' => 'Configuración de Proxy Web Avanzado', +'advproxy allowed subnets' => 'Subredes permitidas (una por lÃnea)', +'advproxy allowed web browsers' => 'Clientes permitidos para acceso web', +'advproxy back to main page' => 'Volver a página principal', +'advproxy banned ip clients' => 'Direcciones ip prohibidas (una por lÃnea)', +'advproxy banned mac clients' => 'Direcciones MAC prohibidas (una por lÃnea)', +'advproxy cache management' => 'Administración del caché', +'advproxy cache replacement policy' => 'Póliza de reemplazo de caché', +'advproxy chgwebpwd ERROR' => 'E R R O R :', +'advproxy chgwebpwd SUCCESS' => 'E X I T O :', +'advproxy chgwebpwd change password' => 'Cambiar contraseña', +'advproxy chgwebpwd change web password' => 'C a m b i o   d e   l a   c o n t r a s e ñ a   d e   a c c e s o', +'advproxy chgwebpwd new password' => 'Nueva contraseña', +'advproxy chgwebpwd new password confirm' => 'Nueva contraseña(confirmar', +'advproxy chgwebpwd old password' => 'Contraseña actual', +'advproxy chgwebpwd username' => 'Nombre de Usuario', +'advproxy classroom extensions' => 'Extensiones de Salón de clases', +'advproxy clear cache' => 'Limpiar Caché', +'advproxy client IP forwarding' => 'ReenvÃo de dirección IP de cliente', +'advproxy common settings' => 'Configuraciones comunes', +'advproxy content based throttling' => 'Activar control de velocidad basado en contenido', +'advproxy cre disabled' => 'La interface de manejo ha sido desactivada por el administrador', +'advproxy cre group definitions' => 'Definiciones de grupos de Salón de Clase', +'advproxy cre supervisors' => 'Direcciones IP de supervisores (una por lÃnea)', +'advproxy destination ports' => 'Puertos de destino', +'advproxy download throttling' => 'Control de velocidad de descargas', +'advproxy enabled' => 'Activado', +'advproxy enabled on' => 'Activado en', +'advproxy errmsg acl cannot be empty' => 'La lista de control de acceso no puede estar vacÃa', +'advproxy errmsg auth cache ttl' => 'Valor no válido para caché de autenticación TTL', +'advproxy errmsg auth children' => 'Número invádo de proceso de autenticación', +'advproxy errmsg auth ipcache may not be null' => 'El caché de autenticación TTL no puede ser 0 cuando se esten utilizando lÃmites de dirección IP', +'advproxy errmsg auth ipcache ttl' => 'Valor no válido para el caché TTL de usuario/IP', +'advproxy errmsg change fail' => 'La contraseña no se pudo cambiar', +'advproxy errmsg change success' => 'La contraseña para el acceso web ha sido cambiada exitosamente', +'advproxy errmsg hdd cache size' => 'Valor inválido para el tamaño de caché de disco', +'advproxy errmsg ident timeout' => 'Tiempo de espera de ident no válido', +'advproxy errmsg invalid bdc' => 'Nombre de host no válido para controlador de dominio de respaldo', +'advproxy errmsg invalid destination port' => 'Puerto destni inválido', +'advproxy errmsg invalid ip or mask' => 'Dirección IP o máscara de red no válida', +'advproxy errmsg invalid mac' => 'Dirección MAC no válida', +'advproxy errmsg invalid pdc' => 'Nombre host no válido para control de dominio primario', +'advproxy errmsg invalid proxy port' => 'Puerto de proxy no válido', +'advproxy errmsg invalid upstream proxy username or password setting' => 'Nombre de usuario o configuración de contraseña no válido para proxy de subida', +'advproxy errmsg invalid user' => 'Nombre de usuario no existe', +'advproxy errmsg ldap base dn' => 'Se requiere base DN para LDAP', +'advproxy errmsg ldap bind dn' => 'Nombre de usuario del DN de conexión LDAP requerido', +'advproxy errmsg ldap port' => 'Número de puerto LDAP no válido', +'advproxy errmsg ldap server' => 'Direción IP no válida ara servidor LDAP', +'advproxy errmsg max userip' => 'Número inválido de direcciones IP por usuario', +'advproxy errmsg mem cache size' => 'Numero no válido para el tamaño de memoria caché', +'advproxy errmsg no browser' => 'Cuando menos un cliente o navegador debe seleccionarse para acceso web', +'advproxy errmsg no password' => 'Contraseña no puede estar vacÃa', +'advproxy errmsg no username' => 'Nombre usuario no puede estar vacÃo', +'advproxy errmsg non-transparent proxy required' => 'El servidor proxy debe estar corriendo en modo no-transparente para usar la autenticación', +'advproxy errmsg ntlm domain' => 'Nombre de dominio Windows requerido', +'advproxy errmsg ntlm pdc' => 'Nombre de host para el controlador de dominio primario es requerido', +'advproxy errmsg password incorrect' => 'Contraseña incorrecta', +'advproxy errmsg password length' => 'Valor no válido para longitud de contraseña', +'advproxy errmsg password length 1' => 'La contraseña debe tener por lo menos', +'advproxy errmsg password length 2' => 'caracteres', +'advproxy errmsg passwords different' => 'Las contraseñas no son idénticas', +'advproxy errmsg radius port' => 'Número de puerto de RADIUS no válido', +'advproxy errmsg radius secret' => 'Secreto Compartido RADIUS requerido', +'advproxy errmsg radius server' => 'Dirección IP no válida para servidor RADIUS', +'advproxy errmsg time restriction' => 'Restricción de tiempo no válida', +'advproxy error design' => 'Diseño de mensajes de error', +'advproxy error language' => 'Idioma de Mensajes de error', +'advproxy fake referer' => 'Referer falso enviado a sitios externos', +'advproxy fake useragent' => 'Useragent falso enviado a sitios externos', +'advproxy friday' => 'Vie', +'advproxy from' => 'De', +'advproxy hdd cache size' => 'Tamaño del caché en disco duro (MB)', +'advproxy log enabled' => 'Log activado', +'advproxy log query' => 'Registrar términos de petición', +'advproxy log settings' => 'Configuraciones de Log', +'advproxy log useragent' => 'Registrar useragents', +'advproxy max download size' => 'Tamaño máximo de la descarga (KB)', +'advproxy max size' => 'Tamaño máximo del objeto(KB)', +'advproxy max upload size' => 'Tamaño máximo de la subida (KB)', +'advproxy memory replacement policy' => 'Póliza de reemplazo memoria', +'advproxy min size' => 'Tamaño MÃnimo del objeto(KB)', +'advproxy mode allow' => 'permitir', +'advproxy mode deny' => 'negar', +'advproxy monday' => 'Lun', +'advproxy network based access' => 'Control de acceso basado en red', +'advproxy no cache sites' => 'No meter a cache los siguientes dominios (uno por lÃnea)', +'advproxy no clients defined' => 'No hay clientes definidos', +'advproxy no connection auth' => 'No redireccionar configuraciones con autenticación', +'advproxy no cre groups' => 'No hay grupos de acceso disponibles', +'advproxy no internal proxy on blue' => 'Desacitvar proxy interno de BLUE a otras subredes', +'advproxy no internal proxy on green' => 'Desacitvar proxy interno de GREEN a otras subredes', +'advproxy number of L1 dirs' => 'Número de subdirectorios Nivel1', +'advproxy offline mode' => 'Activar modo fuera de lÃnea', +'advproxy privacy' => 'Privacidad', +'advproxy proxy port' => 'Puerto del proxy', +'advproxy ram cache size' => 'Tamaño de memoria caché', +'advproxy reset' => 'Reset', +'advproxy saturday' => 'Sab', +'advproxy save and restart' => 'Guardar y Reiniciar', +'advproxy squid version' => 'Version de Caché de Squid', +'advproxy ssadvanced proxy' => 'advanced proxy', +'advproxy ssl ports' => 'Puertos SSL permitidos (uno por lÃnea)', +'advproxy standard' => 'Estándar', +'advproxy standard ports' => 'Puertos Estándar permitidos (uno por lÃnea)', +'advproxy sunday' => 'Dom', +'advproxy supervisor password' => 'Contraseña de supervisor', +'advproxy suppress version' => 'Eliminar información de versión', +'advproxy throttle binary' => 'Archivos binarios', +'advproxy throttle dskimg' => 'Imágenes de CD/DVD', +'advproxy throttle mmedia' => 'Multimedia', +'advproxy throttling per host on' => 'Habilitar lÃmite por host', +'advproxy throttling total on' => 'Habilitar lÃmite total', +'advproxy throttling unlimited' => 'ilimitado', +'advproxy thursday' => 'Jue', +'advproxy time restrictions' => 'Restricciones de tiempo', +'advproxy to' => 'A', +'advproxy transfer limits' => 'LÃmites de transferencia', +'advproxy transparent on' => 'Transparente en', +'advproxy tuesday' => 'Mar', +'advproxy unknown' => 'Desconocido', +'advproxy unrestricted ip clients' => 'Direcciones IP sin restricciones (una por lÃnea)', +'advproxy unrestricted mac clients' => 'Direcciones MAC sin restricciones (una por lÃnea)', +'advproxy update accelerator' => 'Acelerador de actualizaciones.', +'advproxy update information' => '"Existe una versión actualizada disponible para descarga. Visite <a href=""http://www.advproxy.net"" target=""_blank"">http://www.advproxy.net</a> para mas información"', +'advproxy update notification' => '¡Notificación de actualización!', +'advproxy upstream password' => 'Contraseña de subida', +'advproxy upstream proxy' => 'proxy de subida', +'advproxy upstream proxy host:port' => 'proxy de subida(host:puerto)', +'advproxy upstream username' => 'Nombre de usuario de subida', +'advproxy url filter' => 'URL filter', +'advproxy username forwarding' => 'ReenvÃo de nombre de usuario', +'advproxy via forwarding' => 'ReenvÃo de dirección Proxy', +'advproxy visible hostname' => 'Nombre de host visible', +'advproxy web browser' => 'Navegador Web', +'advproxy wednesday' => 'Mie', +'advproxy on' => 'Proxy Encendido', +'advproxy off' => 'Proxy Apagado', +'again' => 'De nuevo:', +'aktiv' => 'Activo', +'album' => 'Album', +'alcatelusb help' => 'Para utilizar el modem Speedtouch330 o el Speedtouch USB debe cargar el firmware al servidor IPFire por favor descague el <b>', +'alcatelusb upload' => 'Subir Firmware de Speedtouch USB', +'alias ip' => 'IP alias', +'aliases' => 'Alias', +'aliases not active' => 'Los alias no estarán activos a menos que la interface RED sea ESTÃTICA', +'all' => 'Todos', +'all interfaces' => 'Todas las interfaces', +'all services' => 'Todos los servicios', +'all updates installed' => 'Todas las actualizaciones instaladas', +'allmsg' => 'mostrar todo', +'alt dialup' => 'Dialup', +'alt home' => 'Inicio', +'alt information' => 'Información', +'alt logs' => 'Logs', +'alt ovpn' => 'OpenVPN', +'alt proxy' => 'Proxy', +'alt services' => 'Servicios', +'alt system' => 'Sistema', +'alt vpn' => 'VPNs', +'and' => 'Y', +'ansi t1.483' => 'A REMOVER', +'apcupsd' => 'Estado APC-UPS', +'apply' => 'Aplicar ahora', +'april' => 'Abril', +'archive not exist' => 'Archivo de configuración no existe', +'are you sure' => '¿Esta seguro?', +'arp table entries' => 'Tabla de entradas ARP:', +'artist' => 'Artista', +'attemps' => 'Intentos', +'august' => 'Agosto', +'authentication' => 'Autenticación', +'automatic' => 'Automático', +'available updates' => 'Actualizaciones disponibles', +'average' => 'Promedio', +'avoid dod' => '¡No utilice esta opción con Marcado bajo demanda! Es usada principalmente si IPFire está detrás de un router. Su dirección IP RED debe estar dentro de los números de red reservados ej. 10/8, 172.16/12, 192.168/16', +'back' => 'ATRÃS', +'backup' => 'Respaldar', +'backup archive' => 'Archivo de Respaldo(.dat)', +'backup clear archive' => 'Limpiar archivo de respaldo (.gz)', +'backup config floppy' => 'Respaldar configuración (disco floppy)', +'backup configuration' => 'Respaldar configuración', +'backup erase key' => 'Borrar llave', +'backup explain key' => 'Los respaldos son encriptados usando una llave. Para evitar manipulaciones ilegales de los respaldos IPFire sólo restaurará desde un respaldo que esté encriptado con la llave que usted especifique aquÃ. Tiene tres opciones', +'backup explain key li1' => 'Dejar que IPFire haga una llave por ustes', +'backup explain key li2' => 'Importar una llave grabada (posiblemente protegida por contraseña)', +'backup explain key li3' => 'extraer una llave de un archivo de respaldo 1.4.10 no-encriptado solamente', +'backup explain key no1' => 'deberÃa guardar esta llave si planea restaurar nuevas máquinas, IPFire solo acepta la creación/importación de llaves una vez.', +'backup explain key no2' => 'Los respaldos en floppy heredados no están asociados con esta llave.', +'backup export key' => 'Exportar llave', +'backup extract key' => 'Extraer llave', +'backup from' => 'Respaldar de', +'backup generate key' => 'Generar llave', +'backup import dat file' => 'Importar un archivo de respaldo (.dat)', +'backup import key' => 'Importar llave', +'backup key' => 'Respaldar llave de encriptación', +'backup key file' => 'Respaldar archivo llave', +'backup key info' => 'Ipfire restringe el acceso al respaldo de llave, por lo tanto ud. debe conocer la contraseña root. Tiene la posibilidad de almacenar de proteger esta llave fuera Ipfire con una contraseña', +'backup media info' => 'Las unidades floppy o medios sin formatear podrÃan mostrar tamaños de partición extraños. En ese caso, seleccione el dispositivo completo. Recuerde montar el disco duro antes de remover un dispositivo. Nota: El floppy creado aquà no es utilizable con el programa de instalación de IPFire', +'backup missing key' => 'Es necesaria la llave de respaldo para restaurar un equipo', +'backup password' => 'Respaldar contraseña', +'backup protect key password' => 'Respaldar llave de contraseña', +'backup sets' => 'Respaldar juego', +'backup to floppy' => 'Respaldar a floppy', +'backupaddon' => 'Addon Backup', +'backupprofile' => 'En caso de fallo en la reconexión, cambie de perfil.', +'backups' => 'respaldos', +'backupwarning' => 'Por favor primer restaure su respaldo principal y después de eso el respaldo de los addons. Por favor mantenga el nombre original que recibió al descargarlos.', +'bad characters in' => 'Caracteres equivocados en', +'bad characters in script field' => 'Caracteres equivocados en el campo script', +'bad characters in the telephone number field' => 'Caracteres equivocados en el campo número telefónico.', +'bad destination range' => 'El rango de puerto destino tiene como primer valor un número que es igual o mayor que el valor final.', +'bad ignore filter' => 'El filtro ignorar no es correcto', +'bad return code' => 'El programa de ayuda regresó el código de error', +'bad source range' => 'El rango de puerto orÃgen tiene como primer valor un número que es igual o mayor que el valor final.', +'bandwidth usage' => 'uso de ancho de banda (externo)', +'bandwitherror' => 'No se pueden cambiar las configuraciones de ancho de banda cuando el servicio QoS está activado. Por favor primero desactive QoS.<p>', +'bandwithsettings' => 'Configuraciones de ancho de banda', +'basic options' => 'Opciones Básicas', +'beep when ppp connects or disconnects' => 'Sonar cuando IPFire se conecte o desconecte', +'behind a proxy' => 'Detrás de un proxy:', +'bewan adsl pci st' => 'A REMOVER', +'bewan adsl usb' => 'A REMOVER', +'bitrate' => 'Bitrate', +'bleeding rules' => 'Reglas Snort Bleeding Edge', +'blue' => 'BLUE', +'blue access' => 'Acceso a BLUE', +'blue access use hint' => 'Debe insertar la dirección MAC o la dirección IP para un dispositivo. También es posible introducir ambos', +'blue interface' => 'Interface BLUE', +'broadcast' => 'Broadcast', +'broken pipe' => 'Broken Pipe', +'buffered memory' => 'Memoria en Buffer', +'buffers' => 'Buffers', +'bytes per second' => 'Bytes por segundo', +'bytes received' => 'Bytes recibidos', +'bytes sent' => 'Bytes enviados', +'ca certificate' => 'Certificado CA', +'ca name' => 'Nombre CA', +'cache management' => 'Administración del caché', +'cache size' => 'Tamaño del caché (MB)', +'cached' => 'En caché', +'cached memory' => 'Memoria en caché', +'cached swap' => 'Swap en caché', +'calamaris available reports' => 'Reportes disponibles', +'calamaris byte unit' => 'Unidad de byte', +'calamaris create report' => 'Crear reporte', +'calamaris enable content report' => 'Activar reporte de contenido', +'calamaris enable distribution histogram' => 'Activar histograma de distribución', +'calamaris enable domain report' => 'Activar reporte de dominio', +'calamaris enable performance report' => 'Activar reporte de desempeño', +'calamaris enable requester report' => 'Activar reporte de solicitante', +'calamaris enable verbose reporting' => 'Activar reporte detallado (verbose)', +'calamaris high' => 'alto', +'calamaris histogram resolution' => 'Resolución de histograma', +'calamaris low' => 'bajo', +'calamaris medium' => 'Medios FÃsicos', +'calamaris no reports available' => 'No hay reportes disponibles', +'calamaris none' => 'ninguno', +'calamaris number of content types' => 'Número de tipos de contenido', +'calamaris number of domains' => 'Número de dominios', +'calamaris number of requested urls' => 'Número de URLs solicitadas', +'calamaris number of requesting hosts' => 'Número de hosts Solicitados', +'calamaris performance options' => 'Opciones de rendimiento', +'calamaris proxy reports' => 'Reporte de proxy', +'calamaris refresh list' => 'Refrescar lista', +'calamaris report interval (in minutes)' => 'Intervalo de reporte (en minutos)', +'calamaris report options' => 'Opciones de reporte', +'calamaris report period' => 'Periodo de reporte', +'calamaris run as background task' => 'Ejecutar como tarea en segundo plano', +'calamaris show usernames' => 'Mostrar nombres de usuario', +'calamaris skip archived logfiles' => 'Omitir registros archivados', +'calamaris unlimited' => 'ilimitado', +'calamaris view' => 'Ver', +'calamaris view report' => 'Ver reporte', +'calc traffic all x minutes' => 'Calcular todo el tráfico x minutos', +'cancel' => 'Cancelar', +'cancel-adv-options' => 'Cancelar', +'cannot enable both nat traversal and compression' => 'No es posibe activar compresión y NAT transversal', +'cannot enable ntp without specifying primary' => 'No se puede activar NTP', +'cannot specify secondary dns without specifying primary' => 'No se puede especÃficar un DNS secundario sin indicar DNS primario', +'cannot specify secondary ntp without specifying primary' => 'No se puede especÃficar un NTP secundario sin indicar NTP primario', +'cannot specify secondary wins without specifying primary' => 'No se puede especÃficar un WINS secundario sin indicar WINS primario', +'cant change certificates' => 'No se pueden cambiar los certificados', +'cant enable xtaccess' => 'La regla de reenvÃo de puertos está inactiva, por lo tanto no es posible establecer acceso externo para esta regla.', +'cant start openssl' => 'No se puede iniciar OpenSSL', +'caps all' => 'TODOS', +'capsclosed' => 'DESCONECTADO', +'capsinactive' => 'INACTIVO', +'capsopen' => 'CONECTADO', +'capswarning' => 'ADVERTENCIA', +'caption' => 'TÃtulo', +'cert' => 'Certificado', +'certificate' => 'Certificado', +'certificate authorities' => 'Autoridades de Certificado', +'certificate does not have a valid ca associated with it' => 'El certificado no tiene una CA válida asociada', +'certificate file move failed' => 'El certificado móvil ha fallado', +'cfg restart' => 'Se sugiere reiniciar despues de configurar el archivo.', +'chain' => 'Cadena', +'change passwords' => 'Cambiar contraseñas', +'change share' => 'Editar opciones de recurso compartido', +'check for net traffic update' => 'Buscar actualizaciones de Net-Traffic', +'check vpn lr' => 'Revisar', +'choose config' => 'Elegir configuración', +'choose media' => 'Elegir medio', +'cipher' => 'Encripción', +'city' => 'Ciudad', +'class in use' => 'La clase ya está en uso', +'clear cache' => 'Limpiar Caché', +'clear playlist' => 'Lista de reproducción vacÃa', +'clenabled' => 'Servidor de Hora para red local', +'click to disable' => 'Activado (click para desactivar)', +'click to enable' => 'Desactivado(click para activar)', +'client' => 'Nombre de estación de trabajo', +'clock has not been synchronized' => 'El reloj se ha sincronizado', +'clock last synchronized at' => 'El reloj se sincronizó por ultima vez en', +'comment' => 'Descripción:', +'common name' => 'Nombre común', +'community rules' => 'Reglas Snort GPL Community', +'comp-lzo' => 'Compresión LZO', +'compression' => 'Compresión:', +'computer to modem rate' => 'Relación Computadora-Modem', +'concentrator name' => 'Nombre del concentrador', +'confirmation' => 'confirmación', +'connect' => 'Iniciar/Conectar OVPN', +'connect the modem' => 'Conectar el modem', +'connect timeout' => 'Tiempo de espera de conexión:', +'connected' => 'Conectado', +'connecting' => 'ConectandoâŠ', +'connection' => 'Conexión', +'connection closed' => 'No conectadoâŠ', +'connection debugging' => 'Depurado de conexión', +'connection status and controlc' => 'Control y Status de conexión:', +'connection tracking' => 'Rastreo de conexión IPTables', +'connection type' => 'Tipo de conexión', +'connection type is invalid' => 'Tipo de conexión no es válido', +'connections' => 'Conexiones', +'connections are associated with this ca. deleting the ca will delete these connections as well.' => 'las conexiones son asociadas con este CA. Borar el CA borrará dichas conexiones también.', +'connscheduler' => 'Planificador de conexiones', +'could not be opened' => 'no se pudo abrir.', +'could not connect to' => 'No se pudo conectar a ', +'could not connect to www ipcop org' => 'No se pudo conectar a www.ipfire.org', +'could not connect to www ipfire org' => 'No se pudo conectar a www.ipfire.org', +'could not create directory' => 'No se pudo crear directorio.', +'could not download latest patch list' => 'No se pudo descargar la mas nueva lista de parches (no conectado)', +'could not download latest updates' => 'No se pudieron descargar las últimas actualizaciones', +'could not download the available updates list' => 'No se pudieron decargar las listas de actualizaciones disponibles.', +'could not open available updates file' => 'No se pudo abrir el archivo de actualización.', +'could not open installed updates file' => 'No se pudo abrir el archivo de actualizaciones instaladas.', +'could not open update information file' => 'No se pudo abrir el archivo de información de actualizaciones. El archivo de actualizaciones está dañado', +'could not retrieve common name from certificate' => 'No se pudo recuperar el nombre común del certificado.', +'country' => 'PaÃs', +'cpu idle usage' => 'Uso de CPU inactivo', +'cpu interrupt usage' => 'Uso de interrupción de CPU', +'cpu iowait usage' => 'CPU esperando IO', +'cpu irq usage' => 'Uso de IRQ del CPU', +'cpu nice usage' => 'Buen uso de CPU', +'cpu steal usage' => 'uso de CPU steal', +'cpu system usage' => 'Uso de CPU del sistema', +'cpu usage per' => 'Uso de CPU del sistema', +'cpu user usage' => 'Uso de CPU por usuario', +'create' => 'Crear', +'create mask' => 'Privilegios UNIX para archivos de nueva creación', +'create new backup' => 'Crear un nuevo paquete de respaldo', +'credits' => 'Creditos', +'crl' => 'Lista de revocación de certificados', +'cron server' => 'Servidor CRON', +'current' => 'Actual', +'current aliases' => 'Alias actuales', +'current class' => 'Clase actual', +'current devices' => 'Dispositivos actuales.', +'current dhcp leases on blue' => 'Cocesiones DHCP actuales en BLUE', +'current dynamic leases' => 'Concesiones dinámicas actuales', +'current fixed leases' => 'Concesiones fijas actuales.', +'current hosts' => 'Hosts actuales', +'current media' => 'Medios actuales', +'current ovpn' => 'Conexión OVPN activa', +'current playlist' => 'Lista de reproducción actual', +'current profile' => 'Perfil actual', +'current rules' => 'Reglas actuales', +'custom networks' => 'Redes personalizadas', +'custom services' => 'Servicios personalizados', +'daily firewallhits' => 'Hits diarios al firewall', +'dat without key' => 'Un archivo encriptado no puede ser restaurado sin la respectiva llave', +'date' => 'Fecha', +'date not in logs' => 'No existen (o sólo parcialmente) registros del dia solicitado', +'day' => 'DÃa', +'day after' => 'DÃa después', +'day before' => 'DÃa anterior', +'days' => 'dias.', +'donation' => 'Donación', +'donation-text' => '<strong>IPFire</strong> es desarrollado y mantenido por voluntarios en su tiempo libre. Para ayudar con los costos de operación de este proyecto si usted gusta ayudarnos. Nos serÃa muy útil una pequeña donación.', +'donation-link' => 'https://www.paypal.com/en_US/GB/i/btn/btn_donateCC_LG.gif', +'dbfile' => 'Dbfile', +'ddns help dnsmadeeasy' => '"En el campo nombre de host introduzca si ID (o una lista de Ids separados por ; )"', +'ddns help freedns' => 'En el campo nombre de usuario introduzca su cadena de conexión', +'ddns help plus' => '<b>+</b>Indica que es un campo obligatorio', +'ddns hostname added' => 'Nombre de host de DNS Dinámico añadido', +'ddns hostname modified' => 'Nombre de host de DNS Dinámico modificado', +'ddns hostname removed' => 'Nombre de host de DNS Dinámico removido', +'ddns minimize updates' => '"Minimizar actualizaciones: Antes de una actualización se compara la IP de DNS para el host ""[host.]domain"" con la IP en la interfaz RED"', +'ddns noip prefix' => 'Para usar no-ip en modo de grupo, haga un prefijo de nombre de host con <b>%<b>', +'deactivate' => 'desactivar', +'deactivate user' => 'desactivar usuario', +'debugme' => 'Aún no implementado', +'december' => 'Diciembre', +'deep scan directories' => 'Escaneo recursivo', +'def lease time' => 'Tiempo de concesión por defecto', +'default lease time' => 'Tiempo de concesión por defecto (mins):', +'default networks' => 'Redes por defecto', +'default renewal time' => 'Tiempo de renovación por defecto', +'default services' => 'Servicios por defecto', +'defaultwarning' => 'ADVERTENCIA- Sus configuraciones se perderán y serán reemplazadas por las configuraciones por defecto', +'delete' => 'Eliminar', +'delete cron' => 'Eliminar cronjob', +'delete pc' => 'Eliminar Estación de Trabajo', +'delete share' => 'Eliminar recurso compartido de red', +'delete user' => 'Eliminar usuario', +'demon login script' => 'Demon login script', +'description' => 'Descripción:', +'dest ip and port' => 'Puerto IP de destino:', +'destination' => 'Destino', +'destination ip' => 'IP destino', +'destination ip bad' => 'Dirección IP destino no válida', +'destination ip or net' => 'IP o red destino', +'destination net' => 'Red destino', +'destination port' => 'Puerto destino', +'destination port numbers' => 'El puerto destino debe ser un puerto o rango de puertos válido', +'destination port overlaps' => 'El rango de puertos se traslapa con un rango de puertos existente', +'detail level' => 'Nivel de detalle', +'device' => 'Dispositivo', +'devices on blue' => 'Dispositivos en BLUE', +'dhcp advopt add' => 'Añadir opción DHCP', +'dhcp advopt added' => 'Opción DHCP agregada', +'dhcp advopt blank value' => 'El valor de la Opción DHCP no puede ser vacÃo', +'dhcp advopt custom definition' => 'Su definición de opciones personalizada', +'dhcp advopt definition' => 'Definición', +'dhcp advopt definition exists' => 'La opción de definición ya existe. Solo puedce editar o eliminarla.', +'dhcp advopt edit' => 'Editar una opción DHCP', +'dhcp advopt help' => 'Lista de opciones', +'dhcp advopt list' => 'Opciones DHCP adicionales', +'dhcp advopt modified' => 'Opción DHCP modificada', +'dhcp advopt name' => 'Nombre de opción', +'dhcp advopt removed' => 'Opción DHCP eliminada', +'dhcp advopt scope' => 'Alcance de la opción', +'dhcp advopt scope global' => 'Global', +'dhcp advopt scope help' => 'Alcance global o limitar a las interfaces seleccionadas', +'dhcp advopt unknown' => 'El nombre de opción DHCP no es reconocido', +'dhcp advopt value' => 'Valor de la opción', +'dhcp allow bootp' => 'Permitir clientes bootp', +'dhcp base ip fixed lease' => 'Dirección IP base para crear concesiones fijas', +'dhcp bootp pxe data' => 'Introduzca datos adicionales de bootp pxe para esta concesión fija', +'dhcp configuration' => 'Configuración DHCP', +'dhcp create fixed leases' => 'Crear concesiones fijas', +'dhcp fixed lease err1' => 'Para una concesión por defecto debe introducir una dirección MAC o un nombre host, o ambos.', +'dhcp fixed lease help1' => 'Las direcciones IP deben ser introducidas como FQDN', +'dhcp mode' => 'DHCP', +'dhcp server' => 'Servidor DHCP', +'dhcp server disabled' => 'Servidor DHCP descativado. Detenido.', +'dhcp server disabled on blue interface' => 'Servidor DHCP desactivado en la interface BLUE', +'dhcp server enabled' => 'Servidor DHCP activado. Reiniciando', +'dhcp server enabled on blue interface' => 'Servidor DHCP activado en la interface BLUE', +'dhcp-options' => 'opciones DHCP', +'dial' => 'Conectar', +'dial profile' => 'Conectar con perfil', +'dial user password' => 'Contraseña de usuario de marcación:', +'dial user password has been changed' => 'La contraseña del usuario por marcación ha cambiado.', +'dialing mode' => 'Modo de marcado:', +'dialup red not ppp' => 'Los perfiles de dialup sólo pueden ser usados si <b>RED<b> está establecido para <b>Dialup PPP</b><BR>Revise su configuración de redes.', +'dialup settings' => 'Configuraciones de marcado (dialup)', +'directory mask' => 'Derechos de directorio UNIX', +'directory writeable' => 'Directorio escribible', +'disabled' => 'desactivado', +'disconnect' => 'Parar / Desconectar OVPN', +'disconnects' => 'Desconecta', +'disk access per' => 'Acceso a disco por', +'disk usage' => 'Uso de disco', +'display' => 'Mostrar', +'display charset' => 'Juego de caracteres a mostrar', +'display hostname in window title' => 'Mostrar el nombre del host en el tÃtulo de la ventana', +'display traffic at home' => 'Mostrar tráfico calculado en página de inicio', +'display webinterface effects' => 'Activar efectos', +'dl client arch' => 'Descargar paquete de cliente (zip)', +'dmz' => 'DMZ', +'dmz pinhole configuration' => 'Configuración de pinholes DMZ', +'dmz pinhole rule added' => '"Regla de pinhole DMZ añadida; reiniciando pinholes DMZ"', +'dmz pinhole rule removed' => '"Regla de pinhole DMZ removida; reiniciando pinholes DMZ"', +'dmzpinholes for same net not necessary' => 'Los pinholes DMZ no son necesarios para la misma red. Seleccione diferente red de orÃgen o destino.', +'dns check failed' => 'Falló la revisión de DNS', +'dns proxy server' => 'Servidor DNS Proxy', +'dns server' => 'Servidor DNS', +'dns menu' => 'Asignar servidor DNS', +'dns title' => 'Sistema de Nombre de Dominios (DNS)', +'dns header' => 'Ãnicamente asignar direcciones de servidor DNS por DHCP para red0', +'dns saved' => 'Guardado exitosamente', +'dns saved txt' => 'Las dos direcciones DNS han sido guardadas exitosamente. <br />¡Es necesario reiniciar o reconectar para que los cambios tengan efecto!', +'dns address deleted' => 'Borrado exitosamente', +'dns address deleted txt' => 'Las direcciones de servidores DNS han sido borradas exitosamente.<br />¡Es necesario reiniciar o reconectar para que los cambios tengan efecto!', +'dns error 1' => '¡La dirección del servidor DNS <strong>secundario</strong> no es válida, por favor verifique sus datos!<br /> La dirección del servidor DNS <strong>primario</strong> es válida.', +'dns error 0' => '¡La dirección del servidor DNS <strong>primario</strong> no es válida, por favor verifique sus datos!<br /> La dirección del servidor DNS <strong>secundario</strong> es válida.', +'dns error 01' => '¡Las direcciones IP de los servidores <strong>primario</strong> y <strong>secundario</strong> no son válidas. Por favor revise sus datos!', +'dns desc' => 'Si la interfaz red0 obtiene su información IP via DHCP del proveedor, los servidores DNS se guardarán automáticamente. Ahora es posible cambiar esos servidores DNS por las direcciones IP de sus propios servidores.', +'dns list' => 'Lista de servidores DNS públicos', +'dns new 0' => 'Nueva dirección IP de DNS <strong>primario</strong>', +'dns new 1' => 'Nueva dirección IP de DNS <strong>secundario</strong>', +'dns address recon' => '¡Intentando reconectar!', +'dns address done' => 'Las configuraciones de dirección del servidor DNS serán guardadas', +'do not log this port list' => 'Desechar esta lista de puertos antes de ser registrados en los logs (reduce el tamaño del archivo de registro)', +'dod' => 'Marcado bajo demanda', +'dod for dns' => 'Marcado bajo demanda para DNS', +'dod not compatible with ddns' => 'Marcado bajo demanda no es compatible con servicios de DNS dinámico', +'dod waiting' => 'Esperando marcado bajo demanda', +'domain' => 'Dominio', +'domain master' => 'Domain Master', +'domain name' => 'Nombre de domino', +'domain name suffix' => 'Sufijo de nombre de dominio:', +'domain not set' => 'Dominio no establecido.', +'done' => 'Hecho', +'dos charset' => 'Juego de caracteres DOS', +'down and up speed' => 'Introduzca la velocidad de enlace de subida/bajada <br /> y después presione <i>Guardar</i>', +'downlink speed' => 'Velocidad de enlace de descarga (kbit/seg)', +'downlink std class' => 'Clase estándar de descarga', +'download' => 'descargar', +'download ca certificate' => 'Descargar certificado CA', +'download certificate' => 'Descargar certificado', +'download host certificate' => 'Descargar certificado de host', +'download new ruleset' => 'Descargar nuevo grupo de reglas', +'upload new ruleset' => 'Subir nuevo grupo de reglas', +'download pkcs12 file' => 'Descargar archivo PKCS12', +'download root certificate' => 'Descargar certificado root', +'dpd action' => 'Acción al detectar Dead Peer', +'driver' => 'Driver', +'drop input' => 'Registrar paquetes descartados', +'drop newnotsyn' => 'Registrar nuevos paquetes not syn descartados', +'drop output' => 'Registrar paquetes de salida descartados', +'drop portscan' => 'Registrar paquetes de escaneo de puertos descartados', +'drop proxy' => 'Descartar todos los paquetes que no estén direccionados al proxy', +'drop samba' => 'Descartar todos los puertos de Microsoft 135,137,138,139,445,1025', +'drop wirelessforward' => 'Registrar los paquetes de reenvÃo inalámbrico descartados.', +'drop wirelessinput' => 'Registrar los paquetes de entrada inalámbricos descartados.', +'dst port' => 'Puerto Dst', +'dstprt range overlaps' => 'Rango de puertos destino se traslapa con un puerto ya definido', +'dstprt within existing' => 'El puerto destino está dentro de un rango ya definido', +'duplicate ip' => 'Dirección IP duplicada', +'duplicate ip bold' => 'Las direcciones duplicadas están en <b>negritas</b>', +'duplicate mac' => 'Direccion MAC duplicada', +'duplicate name' => 'Ese nombre ya está en uso, por favor elija otro', +'dyn dns source choice' => 'Los proveedores de DNS dinámico recibirán una dirección IP de este servidor IPFire desde:', +'dynamic dns' => 'DNS dinámico', +'dynamic dns client' => 'Cliente de DNS dinámico', +'e-mail address too long' => '"La dirección de e-mail es demasiado larga; No debe exceder los 40 caracteres"', +'eciadsl help' => 'Para utilizar un módem ECI ADSL debe cargar un archivo <B>synch.bin</B> en su servidor IPFire. Por favor descárguelo del sitio web ECIADSL y luego cárguelo en IPFire mediante el formulario que sigue.', +'eciadsl upload' => 'Subir archivo synch.bin ECI ADSL', +'edit' => 'Editar', +'edit a rule' => 'Editar una regla existente:', +'edit advanced settings when done' => 'Editar opciones avanzadas al terminar.', +'edit an existing alias' => 'Editar un alias existente', +'edit an existing host' => 'Editar un host existente', +'edit an existing lease' => 'Editar una concesión', +'edit device' => 'Editar dispositivo', +'edit hosts' => 'Editar Hosts', +'edit network' => 'Editar Red', +'edit printer' => 'Editar Impresora', +'edit service' => 'Editar Servicio', +'edit share' => 'Editar Recurso compartido', +'editor' => 'Editor', +'eg' => 'ej.:', +'email server can not be empty' => 'El servidor de e-mail no puede estar vacÃo', +'emailreportlevel' => 'NÃvel de reporte de email', +'empty' => 'Este campo puede ir vacÃo', +'empty profile' => 'vacÃo', +'enable ignore filter' => 'Activar filtro ignorar', +'enable javascript' => 'Activar Javascript', +'enable wildcards' => 'Activar comodines', +'enabled' => 'Activado:', +'enabled on' => 'Activado en', +'enabledtitle' => 'Activado', +'encapsulation' => 'Encapsulamiento', +'encrypted' => 'Encriptado', +'end address' => 'Dirección final:', +'enter ack class' => 'Introduzcla la clase ACL <br />y después presione <i>Guardar</i>.', +'enter data' => 'Introduzca sus configuraciones <br /> y después presione <i>Guardar</i>', +'err bk 1' => 'Error creando el archivo', +'err bk 10 password' => 'Error con el password de respaldo', +'err bk 2 key' => 'Error creando la llave', +'err bk 3 tar' => 'Error anexando archivos al paquete', +'err bk 4 gz' => 'Error comprimiendo archivos', +'err bk 5 encrypt' => 'Error encriptando archivo', +'err rs 1' => 'Error restaurando archivo', +'err rs 6 decrypt' => 'Error desencriptando archivo', +'err rs 7 untartst' => 'Archivo desencriptado no válido', +'err rs 8 untar' => 'Error descomprimiendo el archivo', +'error config' => '¡No se pudo abrir /var/ipfire/ovpn/config/ZERINA.ovpn !', +'error external access' => 'No se pudo abrir /var/ipfire/xtaccess/config (no se logró obtener acceso externo)', +'error messages' => 'Mensajes de error:', +'esp encryption' => 'Encriptación ESP:', +'esp grouptype' => 'Tipo de grupo ESP', +'esp integrity' => 'Integridad ESP:', +'esp keylife' => 'Duración de clave ESP', +'esp keylife should be between 1 and 24 hours' => 'LA duración de la clave ESP debe de ser entre 1 y 24 horas', +'every' => 'Cada', +'exampel' => 'ejemplo', +'exclude logfiles' => 'Excluir archivos de registro', +'excluding buffers and cache' => '-/+ buffers/cache', +'expected' => 'Esperado', +'expertoptions' => 'Opciones expertas', +'expires' => 'Expira', +'export' => 'Exportar', +'exportkey' => 'Exportar PSK', +'external access' => 'Acceso exteno', +'external access configuration' => 'Configuración de acceso externo', +'external access rule added' => '"Reglas de acceso externo añadidas; reiniciando controlador de acceso"', +'external access rule changed' => '"Reglas de acceso externo han cambiado; reiniciando controlador de acceso"', +'external access rule removed' => '"Reglas de acceso externo eliminadas; reiniciando controlador de acceso"', +'external aliases configuration' => 'Configuración de Alias externo', +'extrahd' => 'Disco duro Adicional', +'extrahd detected drives' => 'Unidades encontradas', +'false classnumber' => 'El número de clase no coincide con la interfaz', +'false max bandwith' => 'El ancho de banda máximo es falso', +'false min bandwith' => 'El ancho de banda mÃnimo es falso', +'february' => 'FEB', +'fetch ip from' => 'Encontrar la dirección IP pública real con la ayuda de un servidor externo', +'filename' => 'Nombre de archivo', +'filesystem full' => 'Sistema de archivos lleno', +'firewall' => 'Firewall', +'firewall graphs' => 'Gráficas de Firewall', +'firewall hits' => 'Número total de HITS al firewall', +'firewall hits per' => 'Hits al firewall por', +'firewall log' => 'Log del Firewall', +'firewall log viewer' => 'Visor de log del Firewall', +'firewall logs' => 'Logs de Firewall', +'firewall logs ip' => 'Fw-Logdgraphs (IP)', +'firewall logs port' => 'Fw-Loggraphs (Port)', +'firewallhits' => 'Hits al Firewall', +'firmware' => 'Firmware', +'firmware upload' => 'Subir Firmware/drivers', +'fixed ip lease added' => 'Concesión de IP Fija añadida', +'fixed ip lease modified' => 'Concesión de IP Fija modificada', +'fixed ip lease removed' => 'Concesión de IP Fija removida', +'force update' => 'Forzar actualización', +'force user' => 'Forzar todo archivo nuevo al usuario', +'forwarding rule added' => '"Regla de reenvÃo agregada; reiniciando el reenviador"', +'forwarding rule removed' => '"Regla de reenvÃo eliminada; reiniciando el reenviador"', +'forwarding rule updated' => '"Regla de reenvÃo actualizada; reiniciando el reenviador"', +'free' => 'Libre', +'free memory' => 'Memoria libre', +'free swap' => 'Swap Libre', +'frequency' => 'Frecuencia', +'friday' => 'Vie', +'fritzdsl help' => 'Para utilizar uno de los módems Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb, debe cargar un paquete en su equipo IPFire. Por favor descargue el archivo .tgz correspondiente a su versión desde el Sitio Web de IPFire y luego cargue el archivo <b>fcdsl-(su_versión).tgz</b> usando el formulario siguiente.', +'fritzdsl upload' => 'Agregar driver de Fritz!DSL', +'from' => 'De', +'from email adr' => 'De dirección de email', +'from email pw' => 'de contraseña de email', +'from email server' => 'De Servidor de correo', +'from email user' => 'de usuario de e-mail', +'from warn email bad' => 'dirección de e-mail no válida', +'fw blue' => 'Opciones de Firewall para la interfaz BLUE', +'fw logging' => 'Registros del firewall', +'g.dtm' => 'A REMOVER', +'g.lite' => 'A REMOVER', +'gateway' => 'Puerta de enlace (gateway)', +'gateway ip' => 'IP de la puerta de enlace', +'gen static key' => 'Generar una llave estática', +'generate' => 'Generar certificado root/host', +'generate a certificate' => 'Generar un certificado:', +'generate iso' => 'Generar ISO', +'generate root/host certificates' => 'Generar certificados root/host', +'generate tripwire keys and init' => 'Generar llaves tripwire e init', +'generatekeys' => 'Generar llaves', +'generatepolicy' => 'Generar nueva póliza', +'generatereport' => 'Generar nuevo reporte', +'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generar los certificador root y host puede tomar mucho tiempo. Puede durar varios minutos en equipos antiguos. Por favor sea paciente.', +'genkey' => 'Generar PSK', +'genre' => 'Género', +'global settings' => 'Configuraciones globales', +'graph' => 'Gráfico', +'graph per' => 'por', +'green' => 'Green', +'green interface' => 'Interfaz Green', +'guaranteed bandwith' => 'Ancho de banda garantizado', +'guardian alertfile' => 'Archivo de alerta', +'guardian configuration' => 'Configuración de Guardian', +'guardian ignorefile' => 'Archivo Ignorefile', +'guardian interface' => 'Interfaz', +'guardian logfile' => 'Archivo de registro', +'guardian timelimit' => 'LÃmite de tiempo', +'guest ok' => 'permitir acceso de invitado', +'gui settings' => 'Configuraciones de GUI', +'gz with key' => 'Esta máquina sólo se puede restaurar desde archivos encriptados', +'hangup' => 'Desconectar', +'hangup string' => 'Colgar:', +'harddisk temperature' => 'Temperatura de disco duro', +'harddisk temperature graphs' => 'gráficas de temperatura de dd', +'hardware graphs' => 'Gráficas de hardware', +'hdd temperature in' => 'temperatura de disco duro en', +'help' => 'Ayuda', +'high' => 'Alto', +'high memory usage' => 'Alto uso de memoria', +'hint' => 'Aviso:', +'holdoff' => 'Tiempo de espera (holdoff, en segundos)', +'host' => 'Host', +'host allow' => 'Lista de hosts permitidos', +'host certificate' => 'Certificado de host', +'host configuration' => 'configuración de host', +'host deny' => 'lista de hosts denegados', +'host ip' => 'Dirección IP de host', +'host to net vpn' => 'Red Privada virtual VPN Host-to-Net (Roadwarrior)', +'hostname' => 'Nombre de host', +'hostname and domain already in use' => 'Nombre host y dominio ya están en uso', +'hostname cant be empty' => 'El nombre de host no puede estar vacÃo', +'hostname not set' => 'Nombre de host no configurado', +'hosts config added' => 'Configuración de hosts agregada', +'hosts config changed' => 'Configuración de hosts ha cambiado', +'hour' => 'Hora', +'hours' => 'horas', +'hours2' => 'Horas', +'ibod for dual isdn only' => 'iBPD sólo puede usarse con ISDN dual', +'icmp selected but no type' => 'ICMP seleccionado como protocolo, pero no se ha seleccionado tipo de ICMP.', +'icmp type' => 'Tipo de ICMP', +'id' => 'ID', +'idle' => 'Inactivo', +'idle timeout' => '"Tiempo de espera inactivo (mins; 0 para desactivar)"', +'idle timeout not set' => 'No se ha establecido tiempo de espera inactivo ', +'ids log viewer' => 'Visor de registros IDS', +'ids logs' => 'Registros IDS', +'ids preprocessor' => 'Preprocesador IDS', +'ids rules license' => 'Para utilizar Reglas Certificadas Sourcefire VRT, es necesario registrase.', +'ids rules license1' => '.', +'ids rules license2' => 'Acepte la licencia, active su cuenta visitando la url que recibió via mail. Después vaya a', +'ids rules license3' => '"presione el botón ""Generate code"" y copie su Oinkcode de 40 caracteres en el siguiente campo."', +'ids rules update' => 'Actualización de reglas SNORT', +'iface' => 'Iface', +'ignore filter' => 'Filtro Ignorar', +'ike encryption' => 'Encriptación IKE:', +'ike grouptype' => 'Tipo de grupo IKE:', +'ike integrity' => 'Integridad IKE:', +'ike lifetime' => 'Tiempo de vida IKE:', +'ike lifetime should be between 1 and 8 hours' => 'Tiempo de vida IKE entre 1 y 8 horas.', +'import' => 'Importar', +'importkey' => 'Importar PSK', +'in' => 'En', +'inactive' => 'Inactivo', +'include logfiles' => 'Incluir archivos de registro', +'incoming' => 'entrante', +'incoming traffic in bytes per second' => 'Tráfico entrante', +'incorrect password' => 'Contraseña incorrecta', +'info' => 'Info', +'init string' => 'Init:', +'insert floppy' => 'Para respaldar a un floppy, inserte un floppy formateado en la unidad IPFire y haga click en el botón <i>respaldar a floppy</i> para respaldar la configuración de su sistema. Por favor examine el resultante muy cuidadosamente para asegurarse que el respaldo se completó exitosamente. Esto puede tomar un tiempo largo para completarse. Por favor sea paciente <p>', +'insert removable device' => 'Inserte un dispositivo removible', +'install' => 'Instalar', +'install new update' => 'Instalar nueva actualización:', +'installed' => 'Instalado', +'installed updates' => 'Actualizaciones instaladas:', +'instant update' => 'Actualización instantánea', +'interface' => 'Interface', +'interfaces' => 'Interfaces', +'internet' => 'INTERNET', +'intrusion detection' => 'Detección de Intrusiones', +'intrusion detection system' => 'Sistema de Detección de Intrusiones', +'intrusion detection system log viewer' => 'Visor de logs del sistema detector de intrusiones.', +'intrusion detection system rules' => 'Reglas del sistema de detección de intrusiones', +'intrusion detection system2' => 'Sistema de detección de intrusiones:', +'invalid broadcast ip' => 'IP de broadcast no válido', +'invalid cache size' => 'Tamaño de caché no válido', +'invalid characters found in pre-shared key' => 'Se encontraron caracteres no válidos en la llave pre-compartida.', +'invalid date entered' => 'Se introdujo una fecha no válida', +'invalid default lease time' => 'Se introdujo un tiempo de concesión no válido', +'invalid domain name' => 'Nombre de dominio no válido', +'invalid downlink speed' => 'Velocidad de enlace de descarga no válida.', +'invalid end address' => 'Dirección final no válida.', +'invalid fixed ip address' => 'Dirección IP fija no válida.', +'invalid fixed mac address' => 'Dirección MAC fija no válida.', +'invalid hostname' => 'Nombre de host no válido.', +'invalid input' => 'Entrada no válida', +'invalid input for authentication method' => 'Entrada no válida para método de autenticación.', +'invalid input for city' => 'Entrada no válida para ciudad.', +'invalid input for country' => 'Entrada no válida para paÃs.', +'invalid input for department' => 'Entrada no válida para departamento.', +'invalid input for dhcp dns' => 'Entrada no válida para DNS de DHCP', +'invalid input for dhcp domain' => 'Entrada no válida para dominio de DHCP', +'invalid input for dhcp wins' => 'Entrada no válida para WINS de DHCP', +'invalid input for e-mail address' => 'Entrada no válida para dirección de e-mail', +'invalid input for esp keylife' => 'Entrada no válida para Keylife ESP', +'invalid input for hostname' => 'Entrada no válida para nombre de host.', +'invalid input for ike lifetime' => 'Entrada no válida para tiempo de vida IKE', +'invalid input for keepalive 1' => 'Entrada no válida para ping Keepalive', +'invalid input for keepalive 1:2' => 'Entrada no válida para Keepalive, use por lo menos una relación 1:2', +'invalid input for keepalive 2' => 'Entrada no válida para reinicio de ping Keepalive', +'invalid input for max clients' => 'Entrada no válida para Máximo número de Clientes', +'invalid input for name' => 'Entrada no válida para nombre completo de usuario o nombre de host del sistema', +'invalid input for oink code' => 'Entrada no válida para código Oink', +'invalid input for organization' => 'Entrada no válida para organización', +'invalid input for remote host/ip' => 'Entrada no válida para host/ip remoto.', +'invalid input for state or province' => 'Entrada no válida para estado o provincia.', +'invalid ip' => 'Dirección IP no válida', +'invalid keep time' => 'El tiempo de almacenamiento debe ser un número válido', +'invalid key' => 'Llave inválida', +'invalid loaded file' => 'Archivo cargado no válido', +'invalid local-remote id' => '"Cuando se utilizan, Id local e Id remoto no pueden ser iguales, y deben comenzar con ""@"". Estos son id izquierdo e id derecho en terminologÃa Openswan."', +'invalid logserver address' => 'Dirección de servidor syslogd no válida', +'invalid mac address' => 'Dirección MAC no válida', +'invalid max lease time' => 'Tiempo máximo de concesión no válido', +'invalid maximum incoming size' => 'Tamaño máximo de llegada no válido.', +'invalid maximum object size' => 'Tamaño máximo de objeto no válido', +'invalid maximum outgoing size' => 'Tamaño máximo de salida no válido.', +'invalid md5sum' => 'Suma MD5 no válida.', +'invalid minimum object size' => 'Tamaño mÃnimo de objeto no válido.', +'invalid mtu input' => 'MTU no válido', +'invalid netmask' => 'Máscara de red no es válida', +'invalid port' => 'Puerto no válido. Debe usar un número de puerto válido.', +'invalid port list' => 'La sintaxis de puerto es: puerto[,puerto]⊠donde puerto está en /etc/services o un número', +'invalid primary dns' => 'Sevidor DNS Primario no válido', +'invalid primary ntp' => 'Dirección de servidor NTP Primario no válido', +'invalid secondary dns' => 'Servidor DNS Secundario no válido.', +'invalid secondary ntp' => 'Dirección de servidor NTP Secundario no válido', +'invalid start address' => 'Dirección de inicio no válida', +'invalid time entered' => 'Tiempo no válido', +'invalid time period' => 'Periodo de tiempo no válido', +'invalid uplink speed' => 'Velocidad de enlace de subida no válido', +'invalid upstream proxy username or password setting' => 'Nombre de usuario o contraseña no válido en configuraciones de proxy de subida', +'invalid users' => 'Lista de usuarios con acceso denegado', +'invalid vpi vpci' => 'Configuraciones VPI/VPCI no válidas', +'invalid wins address' => 'Dirección de servidor WINS no válida', +'invert' => 'Invertir', +'ip address' => 'Dirección IP:', +'ip address in use' => 'La dirección IP ya se encuentra en uso', +'ip address outside subnets' => 'La dirección IP se encuentra fuera de la subred', +'ip alias added' => 'Alias de dirección IP externa agregado', +'ip alias changed' => 'La dirección IP externa ha cambiado', +'ip alias removed' => 'Alias de dirección IP externa removido', +'ip info' => 'Información IP', +'ipfire has now rebooted' => 'IPFire está reiniciando.', +'ipfire has now shutdown' => 'IPFire se está apagando.', +'ipfire side' => 'Lado IPFire:', +'ipfire side is invalid' => 'El lado IPFire es inválido.', +'ipfires hostname' => 'Nombre de host de IPFire', +'ipinfo' => 'Información IP', +'iptable rules' => 'Reglas de IPTable', +'iptmangles' => 'IPTable Mangles', +'iptnats' => 'IPTables NAT', +'ipts' => 'IPTables', +'isdn' => 'ISDN', +'isdn settings' => 'Configuraciones adicionales ISDN:', +'isdn1' => 'ISDN simple', +'isdn2' => 'ISDN dual', +'january' => 'Enero', +'javascript menu error1' => 'Si los menús en cascada no funcionan, desactive javascript', +'javascript menu error2' => 'en la página.', +'july' => 'Julio', +'june' => 'Junio', +'kernel' => 'Kernel', +'kernel logging server' => 'Kernel Logging Server', +'kernel version' => 'Versión de Kernel', +'key stuff' => '2.- Llaves y certificados', +'keyreset' => 'Restablecer llaves', +'keys' => 'llaves', +'lan' => 'LAN', +'lang' => 'es', +'languagepurpose' => 'Elija el idioma en el que desea que IPFire se muestre:', +'last activity' => 'Ãltima actividad', +'lateprompting' => 'Lateprompting', +'lease expires' => 'Concesión fija expira', +'legend' => 'Leyenda', +'length' => 'Longitud', +'line' => 'LÃnea', +'linkq' => 'Link Quality', +'load printer' => 'Cargar impresora', +'loaded modules' => 'Módulos cargados:', +'local hard disk' => 'Disco duro', +'local master' => 'Master local', +'local ntp server specified but not enabled' => 'Servidor NTP establecido pero no activado', +'local subnet' => 'Subred local:', +'local subnet is invalid' => 'La subred local no es válida:', +'local vpn hostname/ip' => 'Nombre de host/IP para VPN local', +'localkey' => 'Llave local', +'localkeyfile' => 'archivo de llave local', +'log' => 'Registros:', +'log enabled' => 'Registros activados', +'log level' => 'Nivel de registros', +'log lines per page' => 'LÃneas por página', +'log server address' => 'Servidor syslog:', +'log settings' => 'Configuraciones de registros (logs)', +'log summaries' => 'Resúmenes de registros', +'log summary' => 'Resúmen de registros', +'log var messages' => 'Configuraciones para /var/log/messages:', +'log view' => 'Vista de registro', +'log viewer' => 'Visor de registro', +'log viewing options' => 'Opciones de visualización de de registros', +'log-options' => 'Opciones de archivos de registro', +'loged in at' => 'Conectado en', +'logging' => 'Conectando', +'logging server' => 'Servidor de conexión', +'loginlogout' => 'Login/Logout', +'logs' => 'registros', +'lookup failed' => 'Falló la búsqueda reversiva', +'loosedirectorychecking' => 'Chequeo de loosedirectory', +'low' => 'Bajo', +'ls_dhcpd' => 'Servidor DHCP:', +'ls_disk space' => 'Espacio en disco:', +'ls_free/swan' => 'VPN:', +'ls_httpd' => 'Servidor HTTP:', +'ls_init' => 'Init:', +'ls_kernel' => 'Kernel y Firewall', +'ls_modprobe' => 'Cargador de módulos', +'ls_pam_unix' => 'Logins de usuarios locales', +'ls_sshd' => 'Logins de usuario remotos:', +'ls_syslogd' => 'Syslogd:', +'mac address' => 'Dirección MAC', +'mac address menu' => 'Asignar dirección MAC', +'mac address in use' => 'Esa dirección MAC ya se encuentra en uso', +'mac address title' => 'Dirección MAC', +'mac address header' => 'Dirección MAC en red0', +'mac address error not valid' => '¡Dirección MAC no válida!', +'mac address error not 00' => 'La dirección MAC tiene que iniciar con 00', +'mac address saved' => '¡Guardado exitosamente!', +'mac address saved txt' => 'La dirección MAC ha sido guardada exitosamente, pero los cambios sólo tomarán efecto después de reiniciar o reconectar.', +'mac address deleted' => 'Borrado exitosamente', +'mac address deleted txt' => 'La dirección MAC ha sido borrada exitosamente. Los cambios sólo tomarán efecto después de <strong>reiniciar</strong>.', +'mac address recon' => '¡Intentando reconectar!', +'mac address done' => 'Las configuraciones de dirección MAC serán grabadas.', +'mac desc' => 'Aquà es posible cambiar la dirección MAC en red0. La dirección debe ser introducida en hexadecimal(0-9,a-f), Una entrada válida serÃa <br />e.g. 00-01-02-0e-b8-d6 o 00:01:02:0e:b8:d6.', +'mac new' => 'Nueva dirección MAC', +'mac1 new' => 'Nueva dirección MAC 1 (vdsl-inet)', +'mac2 new' => 'Nueva dirección MAC 2 (vdsl-iptv)', +'magic packet send to:' => 'Enviar Magic packet a:', +'mailmethod' => 'Método de email', +'mailprogramm' => 'Programa de email', +'main page' => 'Página principal', +'manage ovpn' => '5. Administración de túnel:', +'manage printers' => 'Administrar impresoras', +'manage shares' => 'Administrar recursos compartidos', +'manual' => 'Manual', +'manual control and status' => 'Control y status manual', +'manually' => 'Manualmente', +'map to guest' => 'Map to Guest', +'march' => 'Marzo', +'marked' => 'Marcado', +'max bandwith' => 'Ancho de banda Máximo', +'max incoming size' => 'Tamaño máximo entrante (KB)', +'max lease time' => 'Tiempo máximo de concesión (mins)', +'max outgoing size' => 'Tamaño máximo saliente (KB)', +'max reliability' => 'Máxima fiabilidad', +'max renewal time' => 'Tiempo máximo de renovación', +'max retries not set' => 'Número maximo de intentos no establecido', +'max size' => 'Tamaño máximo de objeto (KB)', +'max throughput' => 'Máximo rendimiento', +'maximal' => 'Máximo', +'maximum retries' => 'Máximo número de reintentos', +'may' => 'May', +'mbmon display' => 'Mostrar', +'mbmon fan' => 'Velocidad del ventilador', +'mbmon fan in' => 'Velocidad del ventilador en', +'mbmon graphs' => 'Gráficos mbmon', +'mbmon label' => 'Etiqueta', +'mbmon settings' => 'Configuraciones de mbmongraph', +'mbmon temp' => 'Temperatura', +'mbmon temp in' => 'Temperatura en', +'mbmon value' => 'Valor', +'mbmon volt' => 'Voltaje', +'meaning' => 'promedio', +'media' => 'Medios FÃsicos', +'media information' => 'información de medios', +'medium' => 'Medio', +'memory' => 'Memoria', +'memory information' => 'información de memoria', +'memory usage per' => 'Uso de memoria por', +'messages logging' => 'Configuraciones de registros para /var/log/messages', +'method' => 'Método', +'min costs' => 'Costo mÃnimo', +'min delay' => 'Retardo mÃnimo', +'min size' => 'Tamaño mÃnimo de objeto (KB):', +'minimal' => 'MÃnimo', +'minutes' => 'Minutos', +'misc-options' => 'Opciones Varias', +'missing dat' => 'Archivo encriptado no encontrado', +'missing gz' => 'Archivo desencriptado no encontrado', +'mode' => 'Modo', +'modem' => 'Modem', +'modem configuration' => 'Configuración de Modem', +'modem on com1' => 'Módem en COM1', +'modem on com2' => 'Módem en COM2', +'modem on com3' => 'Módem en COM3', +'modem on com4' => 'Módem en COM4', +'modem on com5' => 'Módem en COM5', +'modem settings have errors' => 'La configuración del módem tiene errores', +'modem speaker on' => 'Bocina del módem en:', +'modulation' => 'Modulación', +'monday' => 'Lun', +'month' => 'Mes', +'monthly firewallhits' => 'Hits al firewall mensuales', +'monthly start day bad' => 'Fecha de inicio mensual incorrecta', +'monthly traffic bad' => 'Volúmen mensual incorrecto', +'monthly volume' => 'Volúmen mensual', +'monthly volume start day' => 'Primer dÃa de periodo mensual', +'monthly volume start day short' => 'Primer dÃa de periodo mensual', +'months' => 'meses', +'more' => 'mas', +'mount' => 'Montar', +'mounted on' => 'Montado en', +'mpfire' => 'Media Player para IPFire', +'mpfire controls' => 'Control de MPFire', +'mpfire playlist' => 'Lista de reproducción de MPFire', +'mpfire scanning' => 'Analiza en busca de nuevos archivos', +'mpfire songs' => 'Lista de canciones de MPFire', +'mpfire webradio' => 'Webradio de MPFire', +'mtu QoS' => 'Esto no cambia el MTU global, solo establece MTU para QoS', +'my new share' => 'Mi nuevo recurso compartido', +'name' => 'Nombre', +'name is invalid' => 'El nombre no es válido', +'name must only contain characters' => 'El nombre solo puede contener caracteres', +'name too long' => 'Nombre de usuario o de host es demasiado largo', +'nat-traversal' => 'NAT Transversal:', +'net' => 'Red', +'net address' => 'dirección de red', +'net config' => 'Configuración de red', +'net config type' => 'tipo de configuración de red', +'net config type help' => 'GREEN es la red local, RED es el internet, BLUE es la WLAN y ORANGE es la DMZ.', +'net to net vpn' => 'Red privada virtual Net-to-Net', +'net traffic newversion' => 'Está disponible una nueva versión de Net-Traffic', +'net-traffic configuration' => 'Configuración de Net-Traffic.', +'netbios name' => 'Nombre Netbios', +'netmask' => 'Máscar de red', +'network' => 'Red', +'network added' => 'Red personalizada agregada', +'network configuration' => 'Configuración de red', +'network internal' => 'Red (interna)', +'network options' => 'Opciones de red', +'network other' => 'Opciones de red (otras)', +'network red' => 'Opciones de red (externas)', +'network removed' => 'Red personalizada removida', +'network status information' => 'Información de estado de red', +'network time' => 'Utilizar un servidor de tiempo de red:', +'network time from' => 'Obtener hora de un servidor de tiempo', +'network traffic graphs' => 'Gráficas de tráfico de red', +'network traffic graphs external' => 'Gráficas de Net-Traffic (externo)', +'network traffic graphs internal' => 'Gráficas de Net-Traffic (interno)', +'network traffic graphs others' => 'Red (otros)', +'network updated' => 'Red personalizada actualizada', +'networks settings' => 'Firewall - Configuraciones de red', +'new optionsfw later' => 'Sus modificaciones se activarán en el próximo reinicio', +'new optionsfw must boot' => 'Debe reiniciar IPFire', +'newer' => 'Mas nuevos', +'next' => 'siguiente', +'no' => 'No', +'no alcatelusb firmware' => 'No hay firmware USB Alcatel. Cargarlo por favor.', +'no cfg upload' => 'No se cargaron datos', +'no dhcp lease' => 'No se obtuvo concesión DHCP', +'no eciadsl synch.bin file' => 'No existe archi ECI ADSL synch.bin. Favor de cargarlo', +'no filter pass' => 'Introduzca la clase estándar para paquetes no filtrados.', +'no fritzdsl driver' => 'No hay drivers Fritz!DSL. Favor de cargarlos', +'no information available' => 'No hay información disponible', +'no log selected' => 'No ha seleccionado registro log', +'no modem selected' => 'No ha seleccionado módem', +'no set selected' => 'Ningún conjunto se ha seleccionado', +'no time limit' => 'tiempo ilimitado', +'none found' => 'no encontrado', +'nonetworkname' => 'No se introdujo nombre de red', +'noservicename' => 'No se introdujo nombre de servicio', +'not a valid ca certificate' => 'No hay certificado CA válido', +'not enough disk space' => 'No hay espacio en disco suficiente', +'not present' => '<b>No</b> presente', +'not running' => 'no está ejecutando', +'not set' => 'no configurado', +'notes' => 'Notas', +'november' => 'Noviembre', +'ntp common settings' => 'Configuraciones comunes', +'ntp sync' => 'Sincronización', +'ntp configuration' => 'Configuración NTP', +'ntp must be enabled to have clients' => 'NTP debe estar configurado para tener clientes', +'ntp server' => 'Servidor NTP', +'ntp syncro disabled' => 'Sincronización NTP desactivada', +'ntp syncro enabled' => 'Sincronización NTP activada', +'ntpd restarted' => 'ntpd reiniciado', +'number' => 'Número:', +'o-no' => 'Inactiv', +'o-yes' => 'Activ', +'october' => 'Octubre', +'off' => 'apagado', +'ok' => 'OK', +'older' => 'Antiguos', +'on' => 'Encendido', +'online help en' => 'Ayuda en-lÃnea (en inglés)', +'only digits allowed in holdoff field' => 'Sólo se permiten dÃgitos en el campo holdoff', +'only digits allowed in max retries field' => 'Sólo se permiten dÃgitos en el campo máximo número de reintentos', +'only digits allowed in the idle timeout' => 'Sólo se permiten dÃgitos en el campo de tiempo inactivo', +'only red' => 'Solo RED', +'open to all' => 'Sobreescribir acceso externo para TODOS', +'openssl produced an error' => 'OpenSSL produjo un error', +'openvpn client' => 'Client OpenVPN', +'openvpn log' => 'Registro de log de OpenVPN', +'openvpn server' => 'Sevidor OpenVPN', +'optional data' => '3. Configuraciones Opcionales:', +'options' => 'Opciones:', +'options fw' => 'Opciones del Firewall', +'optionsfw portlist hint' => 'La lista de puertos debe ser separada por comas (ej. 137,138). Puede especificar un máximo de 15 puertos por protocolo', +'optionsfw warning' => 'Modificar estas opciones implica reiniciar el firewall', +'or' => 'o', +'orange' => 'ORANGE', +'organization cant be empty' => 'Organización no puede estar vacÃo', +'organization name' => 'Nombre de organización', +'organization too long' => '"Orgranización es demasiado largo; no debe exceder los 60 caracteres"', +'original' => 'Original', +'os level' => 'Nivel OS', +'other countries' => 'Otros paises', +'other login script' => 'Otros script de login', +'otherip' => 'otra IP', +'otherport' => 'otro Puerto', +'out' => 'Out', +'outgoing' => 'salida', +'outgoing firewall' => 'Firewall de salida', +'outgoing traffic in bytes per second' => 'Tráfico de salida', +'outgoingfw mode0' => 'Usando este modo, todos los clientes tienen acceso al internet sin restricciones.', +'outgoingfw mode1' => 'Usando este modo, solamente las conexión basadas en las reglas definidas son permitidas.', +'outgoingfw mode2' => 'Usando este modo, todas las conexioens son permitidas sin importar las ya definidias.', +'outgoingfw p2p description' => 'Presiones el botón correspondiente para activar/desactivar el módulo de bloqueo P2P', +'outgoingfw reset' => 'Restablecer todo', +'override mtu' => 'Sobreescribir MTU por defecto', +'ovpn' => 'OpenVPN', +'ovpn con stat' => 'Estadisticas de conexión OpenVPN', +'ovpn config' => 'Configruación de OVPN', +'ovpn device' => 'Dispositivo OpenVPN', +'ovpn dl' => 'Configuración de descargas OVPN', +'ovpn log' => 'Registro de log de OVPN', +'ovpn on blue' => 'OpenVPN en BLUE', +'ovpn on orange' => 'OpenVPN en ORANGE', +'ovpn on red' => 'OpenVPN en RED', +'ovpn server status' => 'Status actual del servidor OpenVPN:', +'ovpn subnet' => 'Subred de OpenVPN (ej. 10.0.10.0/255.255.255.0', +'ovpn subnet is invalid' => 'Subred de OpenVPN no es válida.', +'ovpn subnet overlap' => 'La subred de OpenVPN se traslapa con:', +'ovpn_fastio' => 'Fast-IO', +'ovpn_fragment' => 'Tamaño de Fragmento', +'ovpn_mssfix' => 'Tamaño MSSFIX', +'ovpn_mtudisc' => 'MTU-Discovery', +'ovpn_processprio' => 'Prioridad de proceso', +'ovpn_processprioD' => 'Profundo', +'ovpn_processprioED' => 'Extremadamente profundo', +'ovpn_processprioEH' => 'Extremadamente alto', +'ovpn_processprioEN' => 'Mas alto de lo normal', +'ovpn_processprioH' => 'Alto', +'ovpn_processprioLN' => 'Mas profundo de lo normal', +'ovpn_processprioN' => 'Normal', +'ovpn_processprioVD' => 'Muy profundo', +'ovpn_processprioVH' => 'Muy alto', +'ovpnstatus log' => 'OVPN-Status-Log', +'ovpnsys log' => 'OVPN-System-Log', +'package failed to install' => 'Falló la instalación del paquete', +'pagerefresh' => 'La página se está actualiszando, por favor espere.', +'pakfire accept all' => '¿Desea instalar todos los paquetes?', +'pakfire available addons' => 'Addons disponibles:', +'pakfire configuration' => 'Configuración de Pakfire', +'pakfire core update auto' => 'Instalar actualizaciones de Core y de addons automáticamente', +'pakfire core update level' => 'Nivel de actualización del Core', +'pakfire health check' => 'Verificar disponibilidad del mirror (ping):', +'pakfire install description' => 'Por favor elija uno o más elementos de la siguiente lista y <br /> haga click en el signo + para instalar', +'pakfire install package' => 'Ud. desea instalar los siguientes paquetes:', +'pakfire installed addons' => 'Addons instalados:', +'pakfire last core list update' => 'Ãltima lista de actualización de core hecha', +'pakfire last package update' => 'Ãltima lista de actualización de paquetes hecha', +'pakfire last serverlist update' => 'Ãltima lista de actualización de servidor hecha', +'pakfire last update' => 'Ultima actualización realizada', +'pakfire possible dependency' => 'Puede haber paquetes con dependencias, aquà está una lista de paquetes que necesitan ser instalados.', +'pakfire register' => 'Registrar en el servidor pakfire:', +'pakfire system state' => 'Status del sistema', +'pakfire uninstall description' => 'Por favor elija uno o más elementos de la siguiente lista y <br /> haga click en el signo - para desinstalar', +'pakfire uninstall package' => 'Ud. desea desinstalar los siguientes paquetes:', +'pakfire update daily' => 'Buscar actualizaciones diariamente:', +'pakfire updates' => 'Actualización disponible:', +'pakfire working' => 'Pakfire está trabajando⊠Por favor espere hasta que todas las operaciones se hallan completado exitosamente.', +'snort working' => 'Snort está trabajando⊠Por favor espere hasta que todas las operaciones se hallan completado exitosamente.', +'pap or chap' => 'PAP o CHAP', +'parentclass' => 'Parentclass', +'password' => 'Contraseña', +'password contains illegal characters' => 'La contraseña contiene caracteres ilegales', +'password crypting key' => 'Encriptando la llave con contraseña', +'password not set' => 'Contraseña no establecida.', +'password too short' => 'La contraseña es muy corta.', +'passwords do not match' => 'Las contraseñas no coinciden.', +'passwords must be at least 6 characters in length' => 'La contraseña debe contener cuando menos 6 caracteres', +'path to directory' => 'ruta a compartir', +'pc' => 'Estación de trabajo', +'pc add' => 'Añadir estación de trabajo', +'pdc options' => 'Opciones PDC', +'percentage' => 'Porcentaje', +'persistent' => 'Persistente', +'pfs yes no' => 'Perfect Forward Secrecy (PFS)', +'phase1 group' => 'Grupo Fase 1', +'phonebook entry' => 'Entrada de libreta de teléfonos:', +'ping disabled' => 'Desactivar respuesta a ping', +'pkcs12 file password' => 'Archivo Contraseña PKCS12', +'play' => 'Reproducir', +'polfile' => 'Polfile', +'policy' => 'Póliza', +'port' => 'Puerto', +'port forwarding configuration' => 'Configuración de reenvÃo de puertos', +'ports' => 'Puertos', +'portscans' => 'Escáneo de puertos', +'pots' => 'Linea clásica analógica', +'ppp setup' => 'Configuración PPP', +'pppoe' => 'PPPoe', +'pppoe settings' => 'Configuraciones PPPoE adicionales', +'pptp settings' => 'Configuracion PPTP adicionales', +'pre-shared key is too short' => 'La clave pre-compartida es demasiado corta.', +'prefered master' => 'Master preferido', +'present' => 'Presente', +'prev' => 'Previo', +'primary dns' => 'DNS Primario:', +'primary ntp server' => 'Servidor NTP Primario', +'primary wins server address' => 'Dirección de servidor WINS Primario', +'printcap name' => 'Nombre printcap', +'printer' => 'Impresora', +'printername' => 'Nombre de Impresora', +'printing' => 'Impresión', +'printing options' => 'opciones de impresión', +'priority' => 'Prioridad', +'processes' => 'Procesos', +'profile' => 'Perfil', +'profile deleted' => 'Perfil eliminado:', +'profile has errors' => 'El perfil tiene errores', +'profile made current' => 'Perfil establecido como activo:', +'profile name' => 'Nombre de perfil:', +'profile name not given' => 'Nombre de perfil no especificado.', +'profile saved' => 'Perfil guardado:', +'profiles' => 'Perfiles:', +'proto' => 'Proto', +'protocol' => 'Protocolo:', +'proxy' => 'Proxy', +'proxy access graphs' => 'Gráficas de acceso al proxy', +'proxy log viewer' => 'Visor de registros del Proxy', +'proxy logs' => 'Logs de registro del Proxy', +'proxy no proxy extend' => 'o especifique una lista de destinos omitidos por el proxy', +'proxy no proxy local' => 'Desactivar proxy local en las redes BLUE/GREEN', +'proxy port' => 'Puerto de proxy', +'psk' => 'PSK', +'pulse' => 'Pulso', +'pulse dial' => 'Marcaro por pulsos:', +'qos graphs' => 'Gráficas de QoS', +'qos warning' => 'La regla <strong>debe</strong> debe ser grabada, de otra manera será ignoarada.', +'quick control' => 'Control rápido', +'quick playlist' => 'Lista de reproducción rápida.', +'ram' => 'RAM', +'read bytes' => 'Bytes leidos', +'read list' => 'lista con hosts de sólo lectura', +'real address' => 'Dirección Real', +'reboot' => 'Reiniciar', +'reboot ask' => '¿Reiniciar?', +'reboot sure' => '¿Está seguro que desea reiniciar?', +'reboot question' => 'Preguntar otra vez para reinicio y apagado', +'reboot schedule' => 'Reinicios planificados de IPFire', +'rebooting' => 'Reiniciando', +'rebooting ipfire' => 'Reiniciando IPFire', +'reconnect' => 'Reconectar', +'reconnection' => 'Reconexión', +'red' => 'Internet', +'references' => 'Referencias', +'refresh' => 'Actualizar', +'refresh index page while connected' => 'Actualizar la página index.cgi cuando esté conectado', +'refresh update list' => 'Recargar página de actualizaciones', +'registered user rules' => 'Reglas VRT sourcefire para usuarios registrados', +'released' => 'Liberado', +'reload' => 'recargar', +'remark' => 'Remarcar', +'remark title' => 'Remarcar:', +'remote access' => 'Acceso remoto', +'remote announce' => 'Anuncio remoto', +'remote browse sync' => 'Browse Sync Remoto', +'remote host/ip' => 'Host/IP remoto', +'remote logging' => 'Registro remoto', +'remote subnet' => 'Subred remota:', +'remote subnet is invalid' => 'Subred remota no válida', +'removable device advice' => 'Conecte un dispositivo, refresque, seleccione y monte antes de hacer uso. Desmonte después de remover', +'remove' => 'Remover', +'remove ca certificate' => 'Remover certifiado CA', +'remove x509' => 'Remover x509', +'reportfile' => 'Archivo de reporte', +'reportlevel' => 'Nivel reporte', +'requested data' => 'Configuraciones de conexión:', +'reserved dst port' => 'Puerto de destino está reservado para uso exclusivo de IPFire', +'reserved src port' => 'Puerto de orÃgen está reservado para uso exclusivo de IPFire:', +'reset' => 'Restablecer', +'reset shares' => 'Restablecer recurso compartido', +'resetglobals' => 'Restablecer configuraciones globales', +'resetpolicy' => 'Restablecer Póliza a valores por defecto', +'resetshares' => '¿Restablacer recursos compartidos?', +'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'El restablecer la configuración de VPN removerá el CA de root, el certificado de host y todas las conexiones basadas en certificados', +'restart' => 'Reiniciar', +'restart ovpn server' => 'Reiniciar servidor OpenVPN', +'restore' => 'Restaurar', +'restore defaults' => 'Restaurar valores por defecto', +'restore hardware settings' => 'Restaurar configuraciones de hardware', +'restore settings' => 'Restablecer configuraciones', +'reverse sort' => 'Ordenar por órden cronológico inverso', +'root' => 'Root', +'root certificate' => 'Certificado Root', +'root path' => 'Ruta Root', +'root user password' => 'Contraseña Root', +'route subnet is invalid' => 'La subred push route adicional no es válida', +'router ip' => 'Dirección IP del router:', +'routing table entries' => 'Entradas de Tablas Ruteo:', +'rsvd dst port overlap' => 'Rango de puertos destino se traslapa con un puerto reservado para IPFire:', +'rsvd src port overlap' => 'Rango de puertos orÃgen se traslapa con un puerto reservado para IPFire:', +'rules already up to date' => 'Las reglas ya están actualizadas', +'running' => 'EJECUTANDO', +'safe removal of umounted device' => 'Puede remover con seguridad el dispositivo desmontado', +'samba' => 'Samba', +'samba status' => 'Status de Samba', +'saturday' => 'Sábado', +'save' => 'Guardar', +'save config' => 'guardar configuraciones', +'save error' => 'Imposible grabar archivo de configuración', +'save settings' => 'Guardar configuraciones', +'save-adv-options' => 'Guardar configuraciones avanzadas', +'script name' => 'Nombre de Script:', +'secondary dns' => 'DNS Secundario:', +'secondary ntp server' => 'Servidor NTP Secundario', +'secondary wins server address' => 'Dirección de servidor WINS Secundario', +'seconds' => 'Segs', +'section' => 'Sección', +'secure shell server' => 'Servidor Secure Shell', +'security' => 'Seguridad', +'security options' => 'Opciones de seguridad', +'select' => 'Seleccionar', +'select dest net' => 'Seleccionar red de destino.', +'select media' => 'Seleccione medio <br /> solamente se soportan medios removibles FAT ', +'select source net' => 'Seleccione una red de orÃgen. Si no tiene red ORANGE o BLUE configuradas, no necesita pinholes DMZ', +'selecttraffic' => 'Seleccione visión integrada de utilización', +'send cr' => 'El proveedor de internet requiere Salto de Carro:', +'send email notification' => 'Activado, enviar e-mail de notificación', +'send test mail' => 'EnvÃar correo de prueba', +'september' => 'Septiembre', +'serial' => 'Serial', +'server reserved' => 'El nombre del servidor de conexión está reservado y no es permitido', +'server string' => 'Cadena Servidor', +'service' => 'Servicio', +'service added' => 'Servicio de red personalizado agregado', +'service name' => 'Nombre del servicio:', +'service removed' => 'Servicio de red personalizado removido', +'service updated' => 'Servicio de red personalizado actualizado', +'servicename' => 'Nombre del servicio', +'services' => 'Servicios', +'services settings' => 'Configuraciones de servicios del Firewall', +'set' => 'establecer', +'set time now' => 'Establecer hora en este momento', +'set time now help' => 'Para programar un evento de sincronización en cualquier momento (aún cuando se utilice una tarea repetitiva), presione el botón <i>Establecer hora en este momento>', +'settings' => 'Configuraciones', +'shaping add options' => 'Agregar servicio', +'shaping list options' => 'Servicios de catalogación de tráfico', +'shared' => 'compartido', +'sharename' => 'Nombre de recurso compartdo', +'shares' => 'Recursos compartidos', +'show ajax speedmeter in footer' => 'Mostrar velocÃmetro AJAX', +'show areas' => 'mostrar áreas', +'show ca certificate' => 'Mostrar certificado CA', +'show certificate' => 'Mostrar certificado', +'show crl' => 'Mostrar lista de revocación de certificados', +'show host certificate' => 'Mostrar certificado de host', +'show last x lines' => 'Mostrar últimas x lÃneas', +'show lines' => 'Mostrar lÃneas', +'show root certificate' => 'Mostrar certificado root', +'show share options' => 'Mostrar opciones de recursos compartidos', +'shutdown' => 'Apagar', +'shutdown ask' => '¿Apagar?', +'shutdown sure' => '¿Está seguro que desea apagar?', +'shutdown control' => 'Control de apagado', +'shutdown2' => 'Apagar:', +'shutting down' => 'Apagando', +'shutting down ipfire' => 'Apagando IPFire', +'since' => 'desde', +'sitekey' => 'Llave de sitio', +'sitekeyfile' => 'Archivo de llave de sitio', +'size' => 'Tamaño', +'smart information' => 'Información S.M.A.R.T.', +'smartwarn1' => 'Dispositivo:', +'smartwarn2' => 'Reportar errorres S.M.A.R.T', +'smbreload' => 'Recargar samba', +'smbrestart' => 'reiniciar samba', +'smbstart' => 'Iniciar samba', +'smbstop' => 'Detener samba', +'smtphost' => 'host SMTP', +'smtpport' => 'puerto SMTP', +'snort hits' => 'Número Total de reglas de intrusión', +'socket options' => 'Opciones de socket', +'sort ascending' => 'Ordenar ascendente', +'sort descending' => 'Ordenar descendente', +'sound' => 'Sonido', +'source' => 'OrÃgen', +'source ip' => 'IP de orÃgen', +'source ip and port' => 'IP de orÃgen: Puerto', +'source ip bad' => 'No es una dirección IP o de red válida', +'source ip in use' => 'Dirección IP de orÃgen en uso:', +'source ip or net' => 'IP o red de orÃgen', +'source net' => 'Red de orÃgen', +'source network' => '"IP o red de orÃgen (en blanco para ""TODO""):"', +'source port' => 'Puerto de orÃgen', +'source port in use' => 'Puerto de orÃgen en uso:', +'source port numbers' => 'El puerto de orÃgen debe ser un número de puerto o rango de puertos válido.', +'source port overlaps' => 'El puerto de orÃgen se traslapa con un rango de puertos existente.', +'speaker off' => 'Altavoz apagado:', +'speaker on' => 'Altavoz encendido:', +'squid extension methods' => 'Su lista <tt>extension_methods</tt>', +'squid extension methods invalid' => 'Su lista <tt>extension_methods</tt> solamente puede contener letras/palabras en mayúsculas y dÃgitos separados por un espacio.', +'squid fix cache' => 'Reparar caché', +'src port' => 'Puerto orÃgen', +'srcprt range overlaps' => 'El rango de puertos de orÃgen se traslapa con un puerto ya definido.', +'srcprt within existing' => 'El puerto de orÃgen está dentro de un rango de puertos ya definido.', +'ssdmz pinholes' => 'Pinholes DMZ', +'ssh access' => 'Acceso SSH', +'ssh access tip' => '¡El acceso SSH de IPFire no está utilzando el puerto por defecto 222!', +'ssh fingerprint' => 'Fingerprint', +'ssh host keys' => 'SSH Host Keys', +'ssh is disabled' => 'SSH se ha deseactivado. Deteniendo.', +'ssh is enabled' => 'SSH se ha activado. Iniciando.', +'ssh key' => 'Llave', +'ssh key size' => 'Tamaño (bits)', +'ssh keys' => 'Permitir autenticación basada en llave pública', +'ssh no auth' => '"No tiene métodos de autenticación permitidos; esto le detendrá el acceso."', +'ssh passwords' => 'Permitir autenticación basada en contraseña', +'ssh port' => 'El puerto SSH se ha establecido en 22 (por defecto es 222)', +'ssh portfw' => 'Permitir reenvÃo de TCP', +'ssh tempstart15' => 'Detener el servicio de SSH en 15 minutos', +'ssh tempstart30' => 'Detener el servicio de SSH en 30 minutos', +'ssh1 disabled' => 'Se ha desactivado SSHv1, se requerirá un cliente de versión 2.', +'ssh1 enabled' => 'Se ha activado SSHv1, hay soporte para clientes antiguos', +'ssh1 support' => 'Soporte para protocolo SSH version 1 (requerido para clientes antiguos)', +'ssnetwork status' => 'Estado de la red', +'sspasswords' => 'Contraseñas', +'ssport forwarding' => 'ReenvÃo de puertos', +'ssproxy graphs' => 'Gráficas de proxy', +'sssystem status' => 'Status del sistema', +'sstraffic' => 'Net-traffic', +'sstraffic graphs' => 'Gráficas de tráfico', +'standard login script' => 'Script de login estándar', +'start' => 'Iniciar', +'start address' => 'Dirección de inicio:', +'start ovpn server' => 'Iniciar servidor OpenVPN', +'state or province' => 'Estado o provincia', +'static ip' => 'IP estática', +'status' => 'Status', +'status information' => 'Información de status', +'status ovpn' => '4. Status de OpenVPN / Configuración:ç', +'std classes' => 'Standardclasses', +'stop' => 'Detener', +'stop ovpn server' => 'Detener servidor OpenVPN', +'stopped' => 'DETENIDO', +'subject' => 'Asunto', +'subject test' => 'E-mail de prueba', +'subject warn' => 'Advertencia. Se ha alcanzado un nÃvel que requiere su atencion', +'subnet' => 'Subred', +'subnet is invalid' => 'Máscara de red no es válida', +'subscripted user rules' => 'Reglas VRT sourcefire con suscripción', +'successfully refreshed updates list' => 'Las listas de actualizaciones se refrescaron exitosamente.', +'summaries kept' => 'Mantener sumarios para', +'sunday' => 'Domingo', +'swap' => 'Swap', +'swap usage per' => 'Uso de swap por', +'system' => 'Sistema', +'system graphs' => 'Gráficos de sistema', +'system log viewer' => 'Visor de registros (logs) del sistema', +'system logs' => 'Registros del sistema', +'system status information' => 'Información de status del sistema', +'telephone not set' => 'Teléfono no establecido.', +'template' => 'Preestablecido', +'template warning' => 'Tiene dos opciones para establecer QoS. La primera, presionar el botón Guardar y generar clases y reglas por ud. mismo. La segunda, presione el botón preestablecidos y las clases y reglas se generarán a partir de una plantilla', +'test' => 'prueba', +'test email could not be sent' => 'No se pudo enviar el e-mail de prueba', +'test email was sent' => 'el e-mail de prueba se envió exitosamente', +'the following update was successfully installed' => 'La siguiente actualización fue instalada exitosamente', +'the statistics were last updated at' => 'Las estadÃsticas se actualizaron por última vez el', +'theme' => 'Tema', +'there are updates' => '"Existen actualizaciones disponibles para su sistema. Por favor vaya a la sección ""Actualizaciones"" para recibir mas información."', +'there are updates available' => 'Existen actualizaciones disponibles para su sistema. Se recomienda encarecidamente que las instala a la brevedad posible.', +'there was no file upload' => 'No habÃa archivo para cargar.', +'this feature has been sponsored by' => 'Esta caracterÃstica ha sido patrocinada por', +'this field may be blank' => 'Este campo se puede dejar en blanco', +'this is not a valid archive' => 'No es un archivo válido.', +'this is not an authorised update' => 'No es una actualización autorizada.', +'this months volume' => 'Volúmen de este mes', +'this update is already installed' => 'Esta actualización ya ha sido instalada.', +'this weeks volume' => 'Volúmen de esta semana', +'thursday' => 'Jueves', +'time' => 'Hora', +'time date manually reset' => 'Restablecer Hora/Fecha manualmente', +'time server' => 'Servidor de hora', +'timeout must be a number' => 'El tiempo de espera debe ser un número', +'title' => 'TÃtulo', +'to' => 'A', +'to email adr' => 'A dirección de e-mail', +'to install an update' => 'Para instalar una actualización por favor cargue el archivo .tgz.gpg a continuación', +'to warn email bad' => 'LA dirección de e-mail no es válida', +'toggle' => 'pausar/contintinuar', +'toggle enable disable' => 'Activar o desactivar', +'tone' => 'Tono', +'tone dial' => 'Tono de marcado:', +'too long 80 char max' => 'es demasiado largo, el máximo permitido son 80 caracteres', +'total connection time' => 'Tiempo total de conexión', +'total hits for log section' => 'Hits totales para la sección de logs', +'traffic back' => 'Atrás', +'traffic calc time' => 'Tiempo de cálculo', +'traffic calc time bad' => 'El tiempo de cálculo es incorrecto', +'traffic info messages' => 'Mensajes de información', +'traffic monitor' => 'Monitor de tráfico', +'traffic on' => 'Tráfico en ', +'traffic shaping' => 'Catalogación de tráfico (traffic shaping)', +'traffic shaping settings' => 'Configuraciones de catalogación de tráfico', +'traffic warn level bad' => 'El nivel de advertencia no es correcto', +'trafficblue' => 'WLAN', +'trafficdate' => 'Fecha', +'trafficfrom' => 'De', +'trafficgreen' => 'Red interna', +'trafficin' => 'Entrada', +'trafficorange' => 'DMZ', +'trafficout' => 'Salida', +'trafficred' => 'Internet', +'traffics' => 'Vista integrada de Utilización:', +'trafficsum' => 'Totales', +'trafficto' => 'A', +'transfer limits' => 'LÃmites de transferencia', +'transparent on' => 'Transparente en', +'tripwire' => 'Tripwire', +'tripwire cronjob' => 'cronjob de Tripwire', +'tripwire functions' => 'funciones Tripwire', +'tripwire reports' => 'reportes Tripwire', +'tripwireoperating' => 'El proceso se ha iniciado. Puede tomar varios minutos, por favor espere a que la ventana se actualice automáticamente después de que el proceso haya finalizado.', +'tripwirewarningdatabase' => 'ADVERTENCIA - Su base de datos será actualizada con los datos del último reporte. Por favor asegúrese que no se han reportado cambios no autorizados. Por lo tanto la llave local es necesaria.', +'tripwirewarningkeys' => 'ADVERTENCIA - Esto borrará sus llaves actuales, configuraciones y base de datos y generará unas nuevas.', +'tripwirewarningpolicy' => 'ADVERTENCIA - Sus pólizas serán reconstruidas, después de eso la base de datos será reinicializada. Por lo tanto es necesaria su llave local.', +'tuesday' => 'Martes', +'type' => 'Tipo', +'umount' => 'Desmontar', +'umount removable media before to unplug' => 'Desmontar medio removible antes de desconectar el dispositivo', +'unable to alter profiles while red is active' => 'No es posible alterar los perfiles cuando RED está activo', +'unable to contact' => 'No es posible hacer contacto', +'unencrypted' => 'Desencriptado', +'uninstall' => 'Desintalar', +'unix charset' => 'Charset UNIX', +'unix group' => 'Grupo de usuarios UNIX', +'unix password sync' => 'Password de sincronización UNIX', +'unix shell' => 'Linea de comandos UNIX', +'unknown' => 'DESCONOCIDO', +'unnamed' => 'Sin nombre', +'update' => 'Actualizar', +'update accelerator' => 'Acelerador de descargas', +'update time' => 'Actualizar la hora:', +'update transcript' => 'Actualizar transcripción', +'updatedatabase' => 'Actualizar base de datos con el último reporte', +'updates' => 'Actualizaciones', +'updates installed' => 'Actualizaciones instaladas:', +'updates is old1' => 'Su archivo de actualización es', +'updates is old2' => 'dÃas de antigÃŒedad. Recomendamos actualizarse en la página <b>Actualizaciones del Sistema</b>.', +'updxlrtr update accelerator' => 'Acelerador de actualizaciones', +'updxlrtr configuration' => 'Configuración del acelerador de configuraciones', +'updxlrtr common settings' => 'Configuraciones comunes', +'updxlrtr enable log' => 'Activar registro', +'updxlrtr children' => 'Número de procesos del acelerador', +'updxlrtr passive mode' => 'Activar modo pasivo', +'updxlrtr max disk usage' => 'Máximo uso de disco', +'updxlrtr performance options' => 'Opciones de rendimiento', +'updxlrtr low download priority' => 'Menor prioridad de CPU para descargas', +'updxlrtr max download rate' => 'Tasa Máxima de descarga externa (kBit/s)', +'updxlrtr source checkup' => 'Revisando orÃgen', +'updxlrtr enable autocheck' => 'Activar revisión automática de orÃgen', +'updxlrtr source checkup schedule' => 'Planificador de revisión de orÃgen.', +'updxlrtr full autosync' => 'Reemplazar archivos desactualizados durante la revisión', +'updxlrtr daily' => 'diario', +'updxlrtr weekly' => 'semanal', +'updxlrtr monthly' => 'mensual', +'updxlrtr save and restart' => 'Guardar y Reiniciar', +'updxlrtr statistics' => 'EstadÃsticas', +'updxlrtr maintenance' => 'Mantenimiento', +'updxlrtr empty repository' => 'El caché local está vacÃo', +'updxlrtr cache statistics' => 'EstadÃsticas del caché', +'updxlrtr summary' => 'Resúmen', +'updxlrtr total files' => 'Total de archivos en el caché', +'updxlrtr total cache size' => 'Tamaño total del caché (bytes)', +'updxlrtr total data from cache' => 'Datos totales enviados por el caché (bytes)', +'updxlrtr efficiency index' => 'Ãndice de eficiencia del caché', +'updxlrtr statistics by source' => 'EstadÃsticas por orÃgen', +'updxlrtr files' => 'Archivos', +'updxlrtr cache size' => 'Tamaño del caché (bytes)', +'updxlrtr data from cache' => 'Datos del caché (bytes)', +'updxlrtr cache maintenance' => 'Mantenimiento del caché', +'updxlrtr purge' => 'Purgar', +'updxlrtr all files' => 'todos los archivosâŠ', +'updxlrtr marked as' => 'marcado como', +'updxlrtr not accessed' => 'no se ha accesado desde', +'updxlrtr week' => 'una semana', +'updxlrtr month' => 'un mes', +'updxlrtr 3 months' => 'tres meses', +'updxlrtr 6 months' => 'seis meses', +'updxlrtr year' => 'un año', +'updxlrtr web proxy service required' => 'El servicio de Web Proxy debe estar habilitado para utilizar Acelerador de Actualizaciones', +'updxlrtr invalid num of children' => 'Número no válido de procesos del acelerador', +'updxlrtr invalid disk usage' => 'Valor no válido de uso máximo de disco', +'updxlrtr invalid download rate' => 'Valor no válido para la tasa máxima de descarga', +'updxlrtr not enabled' => 'El acelerador de actualizaciones no está activado en el proxy de la página', +'updxlrtr current files' => 'Archivos actualmente en el caché', +'updxlrtr filename' => 'Nombre', +'updxlrtr filesize' => 'Tamaño', +'updxlrtr last access' => 'Ãltimo acceso al caché', +'updxlrtr last checkup' => 'Ãltima revisión de orÃgen', +'updxlrtr source' => 'OrÃgen', +'updxlrtr unknown' => 'Desconocido', +'updxlrtr other' => 'Otro', +'updxlrtr disk usage' => 'Uso de disco', +'updxlrtr cache dir' => 'Directorio de caché', +'updxlrtr remove file' => 'Eliminar del caché', +'updxlrtr condition ok' => 'Actualizado', +'updxlrtr condition nosource' => 'Sin orÃgen', +'updxlrtr condition outdated' => 'Desactualizado', +'updxlrtr condition download' => 'Descarga', +'updxlrtr condition unknown' => 'Desconocido', +'updxlrtr update notification' => '¡Notificación de actualización!', +'updxlrtr update information' => '"Hay una versión actualizada para descarga. Visite <a href=""http://update-accelerator.advproxy.net"" target=""_blank"">http://update-accelerator.advproxy.net</a> para más."', +'updxlrtr pending downloads' => 'Descargas pendientes', +'updxlrtr current downloads' => 'Archivos descargando al caché local', +'updxlrtr progress' => 'Progreso', +'updxlrtr condition suspended' => 'Suspendido', +'updxlrtr cancel download' => 'Cancelar descargar', +'upgrade' => 'actualizar', +'uplink speed' => 'Velocidad de subida (kbit/seg(', +'uplink std class' => 'clase estándar de subida', +'upload' => 'Subir', +'upload a certificate' => 'Subir un certificado', +'upload a certificate request' => 'Subir una solicitud de certificado', +'upload ca certificate' => 'Subir certificado CA', +'upload fcdsl.o' => 'A REMOVER', +'upload file' => 'Subir archivo', +'upload p12 file' => 'Subir archivo PKCS12', +'upload static key' => 'Subir una llave estática', +'upload successful' => 'Carga exitosa', +'upload synch.bin' => 'Subir synch.bin', +'upload update file' => 'Cargar archivo de actualización', +'upstream password' => 'Password de subida:', +'upstream proxy host:port' => 'Proxy de subida (host:puerto)', +'upstream username' => 'Nombre de usuario de subida', +'uptime and users' => 'Tiempo encendido y usuarios:', +'url filter' => 'Filtro de contenido', +'urlfilter access' => 'Acceso', +'urlfilter activity detection' => 'Detección de actividad', +'urlfilter add new time constraint rule' => 'Añadir nueva regla de restricción de tiempo', +'urlfilter add new user quota rule' => 'Agregar nueva regla de cuota de usuario', +'urlfilter add rule' => 'Agregar', +'urlfilter advanced settings' => 'Configuraciones avanzadas', +'urlfilter allow' => 'Permitir', +'urlfilter allow access' => 'Acceso permitido', +'urlfilter allowed domains' => 'Dominios permitidos (uno por lÃnea)', +'urlfilter allowed urls' => 'URLs permitidos (uno por lÃnea)', +'urlfilter assigned quota users' => 'Usuarios asignados (uno por lÃnea)', +'urlfilter assigned users' => 'Usuarios asignados', +'urlfilter automatic blacklist update' => 'Actualización automática de lista negra', +'urlfilter automatic update schedule' => 'Planificación de actualizacioens automáticas', +'urlfilter back to main page' => 'Volver a página principal', +'urlfilter background image' => 'imagen de fondo de URLFilter', +'urlfilter background text' => 'Para utilizar una imagen de fondo personalizada para la página de bloqueo cargue el archivo .jpg', +'urlfilter backup' => 'Crear archivo de respaldo', +'urlfilter backup error' => 'Imposible crear archivo de respaldo', +'urlfilter backup settings' => 'Respaldar configuraciones de URLFilter', +'urlfilter banned clients' => 'Direcciones IP prohibidas', +'urlfilter blacklist age 1' => 'Ultima actualización exitosa de lista negra', +'urlfilter blacklist age 2' => 'dÃas atrás', +'urlfilter blacklist category name' => 'Nombre de categorÃa de Lista Negra', +'urlfilter blacklist editor' => 'Edigor de Lista Negra', +'urlfilter blacklist editor info' => 'Crear y editar sus propias Listas Negras', +'urlfilter blacklist name' => 'Nombre Lista Negra', +'urlfilter blacklist update' => 'Actualización de Lista Negra', +'urlfilter block' => 'Bloquear', +'urlfilter block access' => 'Bloquear acceso', +'urlfilter block all' => 'Bloquear todas las URLs no permitidas explÃcitamente', +'urlfilter block archives' => 'Bloquear archivos comprimidos', +'urlfilter block audio-video' => 'Bloquear archivos de audio/video', +'urlfilter block categories' => 'CategorÃas bloqueadas.', +'urlfilter block executables' => 'Bloquear archivos ejecutables', +'urlfilter block ip' => 'Bloquear sitios que se accesen por dirección IP', +'urlfilter block settings' => 'Configuración de páginas bloqueadas', +'urlfilter blocked domains' => 'Dominios bloqueados (uno por lÃnea)', +'urlfilter blocked expressions' => 'Frases bloqueadas (usar expresiones reguladas)', +'urlfilter blocked urls' => 'URLs bloqueada (una por lÃnea)', +'urlfilter category' => 'CategorÃa', +'urlfilter category all' => 'cualquier', +'urlfilter category data error' => 'La lista negra está vacÃa', +'urlfilter category log' => 'Dividir log por categorÃas', +'urlfilter category name error' => 'Nombre de categorÃa de Lista Negra requerido', +'urlfilter client' => 'Cliente', +'urlfilter configuration' => 'Configuración de URL filter', +'urlfilter constraint definition' => 'Definición', +'urlfilter constraint outside' => 'externo', +'urlfilter constraint within' => 'dentro de', +'urlfilter copy rule' => 'Copiar regla', +'urlfilter current files' => 'Archivos actuales en repositorio local', +'urlfilter custom blacklist' => 'Lista Negra personalizada', +'urlfilter custom expression list' => 'Lista de frases personalizadas', +'urlfilter custom url' => 'URL de orÃgen personalizada', +'urlfilter custom url required' => 'Se requiere URL de orÃgen personalizada', +'urlfilter custom whitelist' => 'Lista Blanca personalizada', +'urlfilter daily' => 'diario', +'urlfilter disabled' => 'desactivado', +'urlfilter domains' => 'Dominios (uno por lÃnea)', +'urlfilter dont restart urlfilter' => 'No reiniciar URL filter', +'urlfilter dst' => 'Destino', +'urlfilter dst error' => 'Debe haber cuando menos una categorÃa seleccionada', +'urlfilter edit domains urls expressions' => 'Editar dominios, URLs y expresiones', +'urlfilter edit time constraint rule' => 'Editar una regla de restricción de tiempo existente.', +'urlfilter edit user quota rule' => 'Editar una regla de cuota de usuario existente.', +'urlfilter empty ads' => '"Bloquear ""anuncios"" con ventana vacÃa"', +'urlfilter empty repository' => 'Repositorio local de archivos está vacÃo', +'urlfilter enable automatic blacklist update' => 'Activar actualización automática', +'urlfilter enable custom blacklist' => 'Activar Lista Negra personalizada', +'urlfilter enable custom expression list' => 'Activar lista de frases personalizada', +'urlfilter enable custom whitelist' => 'Activar Lista Blanca personalizada', +'urlfilter enable expression lists' => 'Activar lista de frases', +'urlfilter enable full backup' => 'Incluir Lista Negra completa', +'urlfilter enable jpeg' => 'Activar imagen de fondo', +'urlfilter enable log' => 'Activar registro', +'urlfilter enable rewrite rules' => 'Activar redirección de archivos locales', +'urlfilter enabled' => 'Activado:', +'urlfilter export blacklist' => 'Exportar lista negra', +'urlfilter export error' => 'Imposible crear archivo de exportación', +'urlfilter expressions' => 'Frases (una por lÃnea)', +'urlfilter file ext block' => 'Bloquear archivos por extensión', +'urlfilter filename' => 'Nombre', +'urlfilter filesize' => 'Tamaño', +'urlfilter filter settings' => 'Configuraciones de URL filter', +'urlfilter fri' => 'V', +'urlfilter friday' => 'Vie', +'urlfilter from' => 'Desde', +'urlfilter hourly' => 'cada hora', +'urlfilter import blacklist' => 'Importar lista negra', +'urlfilter import text' => 'Para importar una lista negra previamente grabada en el editor de listas negras, cargue el archivo .tar.gz siguieinte', +'urlfilter install blacklist' => 'Instalar lista negra', +'urlfilter install information' => 'La nueva lista negra será compilada automáticamente con bases de datos prefabricadas. Dependiendo del tamaño de la lista negra, esto podrÃa tomar varios minutos.', +'urlfilter invalid content' => 'El archivo no es una lista negra compatible con squidGuard', +'urlfilter invalid import file' => 'El archivo no es compatible con URLFilter', +'urlfilter invalid ip or mask error' => 'Dirección IP o máscara de subred inválida', +'urlfilter invalid restore file' => 'No es un archivo de respaldo de URL filter válido', +'urlfilter invalid user error' => 'Nombre de usuario no válido', +'urlfilter load blacklist' => 'Cargar Lista Negra', +'urlfilter local file redirection' => 'Redireción de archivos locales', +'urlfilter log' => 'log de URL filter', +'urlfilter log summary' => 'Número total de hits URL Filter para', +'urlfilter log viewer' => 'Visor del registro de URL Filter', +'urlfilter logs' => 'Registros de URL Filter', +'urlfilter maintenance' => 'Mantenimientio de URL Filter', +'urlfilter manage local file repository' => 'Administrar repositorio de archivos local', +'urlfilter manage repository' => 'Administrar repositorio', +'urlfilter minutes' => 'minutos', +'urlfilter mode allow' => 'permitir', +'urlfilter mode block' => 'bloquear', +'urlfilter mon' => 'L', +'urlfilter monday' => 'Lun', +'urlfilter monthly' => 'mensualmente', +'urlfilter msg text 1' => 'LÃnea de mensaje 1', +'urlfilter msg text 2' => 'LÃnea de mensaje 2', +'urlfilter msg text 3' => 'LÃnea de mensaje 3', +'urlfilter network access control' => 'Control de acceso basado en red', +'urlfilter no categories' => 'No hay categorÃas disponibles', +'urlfilter not enabled' => 'URL Filter no está activado en la página del proxy web', +'urlfilter quota restart message' => 'Nota: Los contadores serán restablecidos para todos los usuarios cuando se reinicie URL Filter', +'urlfilter quota time error' => 'valor no válido para la cuota de tiempo', +'urlfilter quota user error' => 'Por lo menos se requiere un nombre de usuario', +'urlfilter redirectpage' => 'Redireccionar a esta URL', +'urlfilter remove file' => 'Remover archivo del repositorio', +'urlfilter renewal' => 'Renovar', +'urlfilter renewal period' => 'Periodo de renovación', +'urlfilter repository information' => 'Las solicitudes de descarga para estos archivos serán redireccionados desde la fuente original al repositorio local de archivos.', +'urlfilter reset' => 'Restablecer', +'urlfilter restart' => 'Reiniciar URL Filter', +'urlfilter restart message' => 'URL Filter requiere ser reiniciado para aplicar las reglas cambiadas.', +'urlfilter restart notification' => 'Activar las reglas cambiadas', +'urlfilter restore' => 'Importar archivo de respaldo', +'urlfilter restore results' => 'Restaurar resultados', +'urlfilter restore settings' => 'Restaurar configuraciones de URL Filter', +'urlfilter restore success' => 'La configuración de URL Filter se ha restaurado. Es necesario reiniciar URL Filter para activar las nuevas configuraciones.', +'urlfilter restore text' => 'Para restaurar una configuración previamente grabada, cargue el archivo.tar.gz de respaldo siguiente', +'urlfilter safesearch' => 'Activar SafeSearch', +'urlfilter sat' => 'S', +'urlfilter saturday' => 'Sab', +'urlfilter save and restart' => 'Guardar y Reiniciar', +'urlfilter save schedule' => 'Guardar configuraciónes de actualización', +'urlfilter select blacklist' => 'Selecccionar lista negra existente', +'urlfilter select multi' => 'presione la tecla ctrl para seleccionar múltiples categorÃas', +'urlfilter select source' => 'seleccione orÃgen de la descarga', +'urlfilter set time constraints' => 'Establecer restricciones de tiempo', +'urlfilter set user quota' => 'Establecer cuota de usuario', +'urlfilter show category' => 'Mostrar categorÃa en página de bloqueo', +'urlfilter show dnserror' => '"usar ""Error DNS"" para bloquear URLS"', +'urlfilter show ip' => 'Mostrar IP en página de bloqueo', +'urlfilter show url' => 'Mostrar URL en página de bloqueo', +'urlfilter source' => 'Host(s) o red(es) de origen', +'urlfilter src' => 'Origen', +'urlfilter src error' => 'Origen no puede estar vacÃo', +'urlfilter sun' => 'D', +'urlfilter sunday' => 'Dom', +'urlfilter tar error' => 'No se pudieron extraer ficheros del archivo tar', +'urlfilter thu' => 'J', +'urlfilter thursday' => 'Jue', +'urlfilter time' => 'Tiempo/Hora', +'urlfilter time quota' => 'cuota de tiempo', +'urlfilter time space' => 'espacio de tiempo', +'urlfilter timebased access control' => 'Contro de acceso basado en tiempo', +'urlfilter timespace error' => 'Error en declaración de espacio de tiempo', +'urlfilter to' => 'A', +'urlfilter tue' => 'M', +'urlfilter tuesday' => 'Mar', +'urlfilter unfiltered clients' => 'Direcciones IP no filtradas', +'urlfilter update information' => '"Hay una versión actualizada para descarga.<a href=""http://www.urlfilter.net"" target=""_blank"">http://www.urlfilter.net</a> Visite para más información"', +'urlfilter update notification' => '¡Notificación de actualizaciones', +'urlfilter update now' => 'Actualizar ahora', +'urlfilter update results' => 'Resultados de actualización de Lista Negra', +'urlfilter update rule' => 'Actulizar', +'urlfilter upload background' => 'Subir imagen', +'urlfilter upload blacklist' => 'Subir lista negra', +'urlfilter upload file' => 'Subir archivo', +'urlfilter upload file information 1' => 'Nota: Los contadores serán restablecidos para todos los usuarios cuando se reinicie URL Filter', +'urlfilter upload file information 2' => 'URL Filter necesita ser reiniciar para activar cambios en el repositorio', +'urlfilter upload file text' => 'Para añadir un archivo al repositorio local suba este archivo', +'urlfilter upload information' => 'La nueva lista negra será compilada automáticamente con bases de datos prefabricadas. Dependiendo del tamaño de la lista negra, esto podrÃa tomar varios minutos. Por favor espere a que se termine la tarea antes de reiniciar URLFilter', +'urlfilter upload success' => 'La lista negra subió exitosamente', +'urlfilter upload text' => 'Para instalar una lista negra suba el archivo .tar.gz siguiente', +'urlfilter url filter' => 'URL filter', +'urlfilter urlfilter blacklist editor' => 'Editor de listas negras de URL filter', +'urlfilter urls' => 'URLs(una por lÃnea)', +'urlfilter user time quota' => 'Cuota de tiempo (en minutos)', +'urlfilter username' => 'Nombre de usuario', +'urlfilter username log' => 'Bitácora de de nombre de usuario', +'urlfilter web proxy service required' => 'El servicio de Web Proxy debe estar habilitado para utilizar URL filter', +'urlfilter wed' => 'M', +'urlfilter wednesday' => 'Mie', +'urlfilter weekday error' => 'Debe haber cuando menos un dia seleccionado', +'urlfilter weekly' => 'semanalmente', +'urlfilter whitelist always allowed' => 'Permitir lista blanca personalizada para clientes censurados', +'urlfilter wrong filetype' => 'El archivo no tiene la extension .tar.gz', +'usb modem on acm0' => 'Modem USB en ACM0', +'usb modem on acm1' => 'Modem USB en ACM1', +'usb modem on acm2' => 'Modem USB en ACM2', +'usb modem on acm3' => 'Modem USB en ACM3', +'use' => 'Usar', +'use a pre-shared key' => 'Usar llave pre-compartida', +'use dov' => 'Usar datos sobre voz (DOV)', +'use ibod' => 'Usar ancho de banda bajo demanda (iBOD)', +'use ipfire red ip' => 'La interfaz RED clásica de IPFire durante la conexión', +'use only proposed settings' => 'Usar solamente las configuraciones propuestas.', +'used' => 'Usado', +'used memory' => 'Memoria usada', +'used swap' => 'Swap usado', +'user' => 'Usuario', +'user log' => 'log de usuario', +'user proxy logs' => 'logo de usuario de proxy', +'username' => 'Nombre de usuario:', +'username not set' => 'Nombre de usuario no establecido.', +'users department' => 'Departamento de usuario', +'users email' => 'dirección de email de usuario', +'users fullname or system hostname' => 'Nombre completo o nombre de host de Usuario', +'valid root certificate already exists' => 'Un certificado root válido ya existe.', +'valid till' => 'Válido hasta', +'vci number' => 'Número VCI', +'view log' => 'ver log', +'virtual address' => 'Dirección Virtual', +'virtual private networking' => 'Redes Privadas Virtuales (VPN)', +'visible in browselist' => 'Visible en la lista de navegación', +'voldown10' => 'Disminuir volumen en 10', +'voldown5' => 'Disminuir volumen en 5', +'volup10' => 'Aumentar volumen en 10', +'volup5' => 'aumentar volumen en 5', +'vpi number' => 'Número VPI:', +'vpn' => 'VPN', +'vpn aggrmode' => 'Modo agresivo IKE permitido. ¡Evitarlo en lo posible (la llave precompartida se transmite texto plano)!', +'vpn altname syntax' => 'SubjectAltName es una lista separada por comas de email, dns, uri, rid y objetos ip.<br />email: una dirección de email. Sintaxis de email: La copia toma el email del campo del certificado a ser usado. <br />DNS: Un nombre de dominio válido.<br />URI: Una uri válida.<br />RID: Identificador de objeto registrado.<br />IP: Una dirección IP.<br />Nota: la tabla de caracteres es limitada hace distinción de mayúsculas/minúsculas.<br />Ejemplo:<br /><b>e-mail:</b>ipfire@foo.org<b>,email:</b>copia<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/a/cualquier_cosa', +'vpn auth-dn' => 'El =eer es identificado por cualquier cadena IPV4_ADDR, FQDN, USER_FQDN o DER_ASN1_DN en el campo ID Remoto', +'vpn configuration main' => 'Configuración de VPN - Principal', +'vpn delayed start' => 'Retardo antes de arrancar VPN (segundos)', +'vpn delayed start help' => 'En caso de requerirse, este retardo puede usarse para permitir que las actualizaciones de DNS dinámico se propaguen adecuadamente. 60 es un valor usual cuando RED es una dirección IP dinámica.', +'vpn incompatible use of defaultroute' => 'Nombre de host=%defaultroute no permitido', +'vpn local id' => 'ID local', +'vpn missing remote id' => 'Debe especÃficar un Nombre Distintivo (DN) correcto para esta autenticación.', +'vpn mtu invalid' => '¡MTU debe ser un valor numérico!', +'vpn no full pki' => 'falta llave privada para generar certificado', +'vpn on blue' => 'VPN en BLUE', +'vpn on green' => 'VPN en GREEN', +'vpn on orange' => 'VPN en ORANGE', +'vpn payload compression' => 'Negociar compresión de carga', +'vpn red name' => 'Dirección IP pública o FQDN para la interfaz RED o<%defaultroute>', +'vpn remote id' => 'ID Remoto', +'vpn subjectaltname' => 'Nombre alternativo en Asunto', +'vpn vhost' => 'IP virtual Roadwarris (también referida como ip-interior)', +'vpn watch' => 'Reinciar vpn net-to-net cuando la ip remota cambie (dyndns)', +'waiting to synchronize clock' => 'Esperando sincronización con el reloj', +'warn when traffic reaches' => 'Advertir cuando el tráfico alcance x %', +'warning messages' => 'Mensajes de Advertencia', +'was deleted' => 'fué eliminado', +'web hits' => 'Número total de sitios que coinciden con el criterio buscado', +'web proxy' => 'Web Proxy', +'web proxy configuration' => 'Configuración del servidor Proxy', +'web server' => 'Servidor Web', +'webradio playlist' => 'Lista de reproducción Webradio', +'website' => 'Website', +'wednesday' => 'Miércoles', +'week' => 'Semana', +'weekly firewallhits' => 'Hits semanales al firewall', +'weeks' => 'Semanas', +'wlanap select interface' => 'Por favor seleccione la interfaz lan inalámbrica.', +'wlanap no interface' => '¡La interfaz seleccionada no es una tarjeta de red inalámbrica!', +'wlanap del interface' => '¿Eliminar la interfaz seleccionada?', +'wlanap wlan services' => 'Servicios Wlan', +'wlanap wlan card' => 'Tarjeta Wlan', +'wlanap access point' => 'Access Point', +'wlanap wlan settings' => 'Configuraciones WLan ', +'wlanap encryption' => 'Encriptación', +'wlanap channel' => 'Canal', +'wlanap none' => 'ninguno', +'wlanap verbose' => 'Verbose', +'wlanap debugging' => 'Depuración', +'wlanap informations' => 'Información', +'wlanap notifications' => 'Notificaciones', +'wlanap warnings' => 'Advertencias', +'wlanap wlan status' => 'Status de WLan', +'wlanap link wireless' => 'Activar clientes de red inalámbricos', +'wlanap link dhcp' => 'Configuración DHCP de la red inalámbrica.', +'wlanap invalid wpa' => 'Longitud inválida en la frase WPA. Debe ser entre 8 y 63 caracteres.', +'wlanap interface' => 'Seleccione la interface', +'wildcards' => 'Comodines', +'wins server' => 'Servidor WINS', +'wins support' => 'Soporte WINS', +'wireless' => 'Inalámbrico', +'wireless config added' => 'Configuración inalámbrica añadida', +'wireless config changed' => 'La configuración inalámbrica ha cambiado', +'wireless configuration' => 'Configuración inalámbrica', +'wol wakeup' => 'Encender', +'workgroup' => 'Grupo de Trabajo', +'written bytes' => 'Bytes escritos', +'xtaccess all error' => 'No puede establecer un acceso externo para TODOS, eso se hace en el registro de reenvÃo-de-puertos.', +'xtaccess bad transfert' => '¡Si ud. especifica un rango de puerto de destino, el rango de origen debe ser idéntico!', +'year' => 'Año', +'yearly firewallhits' => 'Hits anuales al Firewall', +'yes' => 'Si', +'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Solamente puede definir una conexion Roadwarrior cuando utiliza una autenticación por llave pre-compartida.<br />Puede ser que ya cuente con una conexión Roadwarrior abierta con autenticación por llave pre-compartida, o ud está intentando añadir una nueva ahora', +'your department' => 'Su departamento', +'your e-mail' => 'Su dirección de e-mail', +'proxy errmsg filedescriptors' => 'Cantidad incorrecta de descriptores de archivos', +'proxy filedescriptors' => 'Cantidad de descriptores de archivos', +'proxy admin password' => 'Password Administrador de Caché', +'proxy cachemgr' => 'Activar Cachemanager', +'proxy reconfigure' => 'Grabar y Recargar', +); + +#EOF diff --git a/langs/es/install/lang_es.c b/langs/es/install/lang_es.c new file mode 100644 index 0000000..2e32de2 --- /dev/null +++ b/langs/es/install/lang_es.c @@ -0,0 +1,566 @@ +/* + * Spanish (es) Data File + * + * This file is part of the IPFire Firewall. + * + * IPFire is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * IPFire is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with IPFire; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "libsmooth.h" + +char *es_tr[] = { + +/* TR_ISDN */ +"ISDN", +/* TR_ERROR_PROBING_ISDN */ +"Imposibe escanear dispositivos ISDN.", +/* TR_PROBING_ISDN */ +"Buscando y configurando dispositivos ISDN.", +/* TR_MISSING_GREEN_IP */ +"¡Hace falta la dirección ip en GREEN!", +/* TR_CHOOSE_FILESYSTEM */ +"Por favor elija su sistema de Archivos:", +/* TR_NOT_ENOUGH_INTERFACES */ +"No hay suficientes tarjetas de red para su selección.\n\nNecesarias: %d - Disponibles: %d\n", +/* TR_INTERFACE_CHANGE */ +"Por favor elija la interfaz que desea modificar.\n\n", +/* TR_NETCARD_COLOR */ +"Tarjetas de red asignadas", +/* TR_REMOVE */ +"Remover", +/* TR_MISSING_DNS */ +"Faltan DNS.\n", +/* TR_MISSING_DEFAULT */ +"Falta la puerta de enlace por defecto.\n", +/* TR_JOURNAL_EXT3 */ +"Creando journal para Ext3...", +/* TR_CHOOSE_NETCARD */ +"Por favor elija una tarjeta de red para la siguiente interfaz - %s.", +/* TR_NETCARDMENU2 */ +"Menú de Red extendido", +/* TR_ERROR_INTERFACES */ +"No hay interfaces libres en su sistema.", +/* TR_REMOVE_CARD */ +"La ubicación de la tarjeta de red deberÃa ser borrada? - %s", +/* TR_JOURNAL_ERROR */ +"No se pudo crear el journal usando fallback a ext2.", +/* TR_FILESYSTEM */ +"Seleccione el sistema de Archivos", +/* TR_ADDRESS_SETTINGS */ +"Configuración de direcciones", +/* TR_ADMIN_PASSWORD */ +"Contraseña 'admin'", +/* TR_AGAIN_PROMPT */ +"Nuevamente:", +/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */ +"Todas las tarjetas se asignaron correctamente.", +/* TR_AUTODETECT */ +"* AUTODETECTANDO *", +/* TR_BUILDING_INITRD */ +"Construyendo ramdisk...", +/* TR_CANCEL */ +"Cancelar", +/* TR_CARD_ASSIGNMENT */ +"Asignación de Tarjetas", +/* TR_CHECKING */ +"Revisando URL...", +/* TR_CHECKING_FOR */ +"Probando : %s", +/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */ +"Seleccione el tipo de tarjeta ISDN instalada en este computador.", +/* TR_CHOOSE_THE_ISDN_PROTOCOL */ +"Seleccione el protocolo ISDN que ud. requiera.", +/* TR_CONFIGURE_DHCP */ +"Configure el servidor DHCP introduciendo la siguiente información.", +/* TR_CONFIGURE_NETWORKING */ +"Configuraciónes de Red", +/* TR_CONFIGURE_NETWORKING_LONG */ +"Ahora deberÃa configurar la red primeramente cargando el driver correcto para la interfaz GREEN. Puede hacer esto, ya sea por medio de auto-detección de la tarjeta de red, o eligiendo el driver correcto de la lista. Tome en cuenta que si usted tiene mas de una tarjeta de red instalada, podrá configurar las demás posteriormente durante la instalación. También tenga en cuenta que si posee mas de una tarjeta que sea del mismo tipo que su interfaz GREEN, cada una requerirá parámetros de módulo especiales, los cuales debe introducir para cada una de las tarjetas, ya que todas las tarjetas se podrÃan activar cuando se configure la interfaz GREEN.", +/* TR_CONFIGURE_NETWORK_DRIVERS */ +"Configure los drivers de red, y a cual interfaz será asignada cada tarjeta. La configuración actual es la siguiente:\n\n", +/* TR_CONFIGURE_THE_CDROM */ +"Configure la unidad de CDROM eligiendo la dirección IO apropiada y/o la dirección IRQ.", +/* TR_CONGRATULATIONS */ +"¡Felicidades!", +/* TR_CONGRATULATIONS_LONG */ +"%s fué instalado exitosamente. Por favor retire cualquier CDROM de las unidades. La instalación se ejecutará ahora y usted podrá configurar las parámetros de ISDN, Tarjetas de red, y las contraseñas del sistema. Una vez que la instalación se halla completado usted podrá dirigir su navegador de internet a https://%s:444 (o a cualquiera que sea el nombre de su %s), y configurar la red por dialup (si fuese necesario) y el acceso remoto.", +/* TR_CONTINUE_NO_SWAP */ +"Su disco duro es muy pequeño, pero podrá continuar un swap muy reducido (Use con precaución).", +/* TR_CURRENT_CONFIG */ +"Configuración Actual: %s%s", +/* TR_DEFAULT_GATEWAY */ +"Puerta de enlace por defecto:", +/* TR_DEFAULT_GATEWAY_CR */ +"Puerta de enlace por defecto\n", +/* TR_DEFAULT_LEASE */ +"Default lease (mins):", +/* TR_DEFAULT_LEASE_CR */ +"Default lease time\n", +/* TR_DETECTED */ +"Se detectó: %s", +/* TR_DHCP_HOSTNAME */ +"DHCP Hostname:", +/* TR_DHCP_HOSTNAME_CR */ +"DHCP Hostname\n", +/* TR_DHCP_SERVER_CONFIGURATION */ +"Configuración de servidor DHCP", +/* TR_DISABLED */ +"Desactivado", +/* TR_DISABLE_ISDN */ +"Desactivar ISDN", +/* TR_DISK_TOO_SMALL */ +"Su disco duro es muy pequeño.", +/* TR_DNS_AND_GATEWAY_SETTINGS */ +"Configuraciones de DNS y Puerta de enlace(Gateway)", +/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */ +"Introduzca la información de DNS y puerta de enlace predeterminado. Estas configuraciones sólo son utilizadas con IP estática (y DHCP si se configura el DNS) en la interfaz RED", +/* TR_DNS_GATEWAY_WITH_GREEN */ +"Su configuración no utiliza una interfaz ethernet para la interfaz RED. La información de Puerta de enlace y DNS para usuarios de dialup, es configurada automáticamente en el momento de marcar.", +/* TR_DOMAINNAME */ +"Nombre de dominio", +/* TR_DOMAINNAME_CANNOT_BE_EMPTY */ +"Nombre de domino no puede estar vacÃo", +/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */ +"El nombre de dominio no puede contener espacios", +/* TR_DOMAINNAME_NOT_VALID_CHARS */ +"Los nombres de dominio sólo pueden contener letras, números, guiones y guion_bajo", +/* TR_DOMAIN_NAME_SUFFIX */ +"Sufijo de nombre de dominio:", +/* TR_DOMAIN_NAME_SUFFIX_CR */ +"Sufijo de nombre de dominio\n", +/* TR_DONE */ +"Terminado", +/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */ +"\n¿Desea cambiar estas configuraciones?", +/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */ +"Drivers y asignación de tarjeta", +/* TR_ENABLED */ +"Activado", +/* TR_ENABLE_ISDN */ +"Activar ISDN", +/* TR_END_ADDRESS */ +"Dirección final:", +/* TR_END_ADDRESS_CR */ +"Dirección final\n", +/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */ +"Algunas tarjetas ISDN (especialmente las ISA) pueden requerir parámetros adicionales de módulo para configuracioenes como IRQ la dirección de dirección IO. Si usted tiene una tarjeta de este tipo, introduzca los parámetros adicionales aquÃ. Por ejemplo: 'io=0x280 irq=9'. Serán utilizados durante la detección de la tarjeta.", +/* TR_ENTER_ADMIN_PASSWORD */ +"Introduzca la contraseña del usuario %s'admin'. Este es el usuario que accederá a la página de administración %sweb", +/* TR_ENTER_DOMAINNAME */ +"Introduzca el nombre de dominio", +/* TR_ENTER_HOSTNAME */ +"Introduzca el nombre host de la máquina", +/* TR_ENTER_IP_ADDRESS_INFO */ +"Introduzca la dirección IP", +/* TR_ENTER_NETWORK_DRIVER */ +"Fallo la detección automática de la tarjeta de red. Introduzca el driver y los parámetros opcionales para esta tarjeta de red.", +/* TR_ENTER_ROOT_PASSWORD */ +"Introduzca la contraseña del usuario 'root'. Acceda como este usuario para obtener acceso a la lÃnea de comandos.", +/* TR_ENTER_SETUP_PASSWORD */ +"A REMOVER", +/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */ +"Introduzca la dirección IP para la interfaz %s .", +/* TR_ENTER_THE_LOCAL_MSN */ +"Introduzca el número telefónico local", +/* TR_ENTER_URL */ +"Introduzca la ruta URL de losarchivo ipcop<version>.tgz e images/scsidrv-<version>.img ADVERTENCIA: ¡DNS no disponible! Ahora deberÃa ser solamente http://X.X.X.X/<directory>", +/* TR_ERROR */ +"Error", +/* TR_ERROR_PROBING_CDROM */ +"No se encontró unidad de CD/DVDROM", +/* TR_ERROR_WRITING_CONFIG */ +"Error escribiendo la información de configuración", +/* TR_EURO_EDSS1 */ +"Euro (EDSS1)", +/* TR_EXTRACTING_MODULES */ +"Extrayendo modulos...", +/* TR_FAILED_TO_FIND */ +"Fallo al encontrar el archivo URL", +/* TR_FOUND_NIC */ +"%s ha detectado la siguiente tarjeta de red en su máquina %s", +/* TR_GERMAN_1TR6 */ +"German 1TR6", +/* TR_HELPLINE */ +" <Tab>/<Alt-Tab> entre elementos | <Espacio> selecciona", +/* TR_HOSTNAME */ +"Nombre de host", +/* TR_HOSTNAME_CANNOT_BE_EMPTY */ +"Nombre de host no puede estar vacÃo", +/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */ +"Nombre de host no puede contener espacios.", +/* TR_HOSTNAME_NOT_VALID_CHARS */ +"El nombre de host solo puede contener letra, números y guiones", +/* TR_INITIALISING_ISDN */ +"Inicializando ISDN...", +/* TR_INSERT_CDROM */ +"Por favor inserte el CD %s en la unidad de CD/DVD", +/* TR_INSERT_FLOPPY */ +"Por favor inserte el diskette de drivers %s en la unidad floppy", +/* TR_INSTALLATION_CANCELED */ +"Instalación cancelada", +/* TR_INSTALLING_FILES */ +"Instalando archivos...", +/* TR_INSTALLING_GRUB */ +"Instalando GRUB...", +/* TR_INSTALLING_LANG_CACHE */ +"Instalando archivos de idioma...", +/* TR_INTERFACE */ +"Interfaz - %s", +/* TR_INTERFACE_FAILED_TO_COME_UP */ +"La interfaz falló en arrancar", +/* TR_INVALID_FIELDS */ +"Los siguientes campos son inválidos:\n\n", +/* TR_INVALID_IO */ +"Los detalles de puerto IO insertados son inválidos.", +/* TR_INVALID_IRQ */ +"Los detalles de IRQ insertados son inválidos.", +/* TR_IP_ADDRESS_CR */ +"Dirección IP\n", +/* TR_IP_ADDRESS_PROMPT */ +"Dirección IP:", +/* TR_ISDN_CARD */ +"Tarjeta ISDN", +/* TR_ISDN_CARD_NOT_DETECTED */ +"La tarjeta ISDN no fue detectada. Tal vez deberÃa especÃficar módulos de parámetro adicionales si la tarjeta es tipo ISA o tiene requerimentos especiales.", +/* TR_ISDN_CARD_SELECTION */ +"Selección de tarjeta ISDN", +/* TR_ISDN_CONFIGURATION */ +"Configuración ISDN", +/* TR_ISDN_CONFIGURATION_MENU */ +"Menú de configuración ISDN", +/* TR_ISDN_NOT_SETUP */ +"ISDN no está configurado. Algunos elementos no han sido seleccionados.", +/* TR_ISDN_NOT_YET_CONFIGURED */ +"ISDN no ha sido configurado aún. Seleccione el elemento que desea configurar", +/* TR_ISDN_PROTOCOL_SELECTION */ +"Selección de protocolo ISDN", +/* TR_ISDN_STATUS */ +"ISDN actual es %s.\n\n Protocolo: %s\n Tarjeta: %s\n Número de teléfono lcoal: %s\n\nSeleccione el elemento que desea reconfigurar, o elija usar la configuración actual.", +/* TR_KEYBOARD_MAPPING */ +"Mapeo de teclado", +/* TR_KEYBOARD_MAPPING_LONG */ +"Seleccione de la lista el tipo de teclado que está utilizando.", +/* TR_LEASED_LINE */ +"Concesión de lÃnea", +/* TR_LOADING_MODULE */ +"Cargando módulo...", +/* TR_LOADING_PCMCIA */ +"Cargando módulos PCMCIA...", +/* TR_LOOKING_FOR_NIC */ +"Buscando: %s", +/* TR_MAKING_BOOT_FILESYSTEM */ +"Generando el sistema de arranque...", +/* TR_MAKING_LOG_FILESYSTEM */ +"Generando el sistema de log...", +/* TR_MAKING_ROOT_FILESYSTEM */ +"Generando el sistema de archivos root...", +/* TR_MAKING_SWAPSPACE */ +"Generando el espacio swap....", +/* TR_MANUAL */ +"* MANUAL *", +/* TR_MAX_LEASE */ +"Concesión MAX (mins):", +/* TR_MAX_LEASE_CR */ +"Tiempo MAX de concesión\n", +/* TR_MISSING_BLUE_IP */ +"Falta información IP en la interfaz BLUE", +/* TR_MISSING_ORANGE_IP */ +"Falta información IP en la interfaz ORANGE", +/* TR_MISSING_RED_IP */ +"Falta información IP en la interfaz RED", +/* TR_MODULE_NAME_CANNOT_BE_BLANK */ +"El nombre de módulo no puede estar vacÃo.", +/* TR_MODULE_PARAMETERS */ +"Introduzca el nombre del módulo y los parámetros que requiera para sus drivers.", +/* TR_MOUNTING_BOOT_FILESYSTEM */ +"Montando sistema de archivos de arranque...", +/* TR_MOUNTING_LOG_FILESYSTEM */ +"Montando sistema archvos log...", +/* TR_MOUNTING_ROOT_FILESYSTEM */ +"Montando sistema de archivos root....", +/* TR_MOUNTING_SWAP_PARTITION */ +"Montando partición swap...", +/* TR_MSN_CONFIGURATION */ +"Número telefónico local (MSN/EAZ)", +/* TR_NETMASK_PROMPT */ +"Máscara de red:", +/* TR_NETWORKING */ +"Redes", +/* TR_NETWORK_ADDRESS_CR */ +"Dirección de red\n", +/* TR_NETWORK_ADDRESS_PROMPT */ +"Dirección de red:", +/* TR_NETWORK_CONFIGURATION_MENU */ +"Menú de configuración de red", +/* TR_NETWORK_CONFIGURATION_TYPE */ +"Tipo de configuración de red", +/* TR_NETWORK_CONFIGURATION_TYPE_LONG */ +"Seleccione la configuración de red para %s. Los siguientes tipos de configuración muestran aquellas interfaces que tengan asignada una tarjeta ethernet. Si ud. cambia esta configuración, será necesario reiniciar el servicio de red, y ud. deberá volver a asignar las asignaciones de tarjetas de red.", +/* TR_NETWORK_MASK_CR */ +"Máscara de red\n", +/* TR_NETWORK_SETUP_FAILED */ +"Configuración de red falló.", +/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */ +"No hay suficientes tarjetas de red para asignar.", +/* TR_NO_BLUE_INTERFACE */ +"No se asignó interfaz BLUE.", +/* TR_NO_CDROM */ +"No se encontró CD/DVD.", +/* TR_NO_GREEN_INTERFACE */ +"No se asignó interfaz GREEN.", +/* TR_NO_HARDDISK */ +"No se encontró unidad de disco duro.", +/* TR_NO_IPCOP_TARBALL_FOUND */ +"No se encontró ningun archivo tarball de ipcop en el servidor web", +/* TR_NO_ORANGE_INTERFACE */ +"No se asignó Interfaz ORANGE.", +/* TR_NO_RED_INTERFACE */ +"No se asignó interfaz ROJA.", +/* TR_NO_SCSI_IMAGE_FOUND */ +"No se encontró imagen SCSI en el servidor web.", +/* TR_NO_UNALLOCATED_CARDS */ +"No quedan tarjetas sin asignar. Se necesitan mas. Se puede proceder a autodetección y búsqueda de mas tarjetas o elegir un driver de la lista.", +/* TR_OK */ +"Ok", +/* TR_PARTITIONING_DISK */ +"Particionando Disco...", +/* TR_PASSWORDS_DO_NOT_MATCH */ +"Las contraseñas no concuerdan.", +/* TR_PASSWORD_CANNOT_BE_BLANK */ +"La contraseña no puede ir en blanco.", +/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */ +"La contraseña no puede llevar espacios.", +/* TR_PASSWORD_PROMPT */ +"Contraseña:", +/* TR_PHONENUMBER_CANNOT_BE_EMPTY */ +"Número telefónico no puede ir en blanco.", +/* TR_PREPARE_HARDDISK */ +"El programa de instalación va a preparar el disco duro en %s. Primero el disco será particionado y después se les colocará un sistema de archivos a las particiones.", +/* TR_PRESS_OK_TO_REBOOT */ +"Presione Ok para reiniciar el sistema.", +/* TR_PRIMARY_DNS */ +"DNS Primario:", +/* TR_PRIMARY_DNS_CR */ +"DNS Primario\n", +/* TR_PROBE */ +"Detección", +/* TR_PROBE_FAILED */ +"Falló la auto detección", +/* TR_PROBING_HARDWARE */ +"Detectando Hardware...", +/* TR_PROBING_FOR_NICS */ +"Detectando NICs....", +/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */ +"Problema estableciendo la contraseña del usuario %s 'admin'", +/* TR_PROBLEM_SETTING_ROOT_PASSWORD */ +"Problema estableciendo la contraseña del usuario 'root'", +/* TR_PROBLEM_SETTING_SETUP_PASSWORD */ +"A REMOVER", +/* TR_PROTOCOL_COUNTRY */ +"Protocolo/PaÃs", +/* TR_PULLING_NETWORK_UP */ +"Encendiendo la red...", +/* TR_PUSHING_NETWORK_DOWN */ +"Apagando la red....", +/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */ +"Apagando red no local...", +/* TR_QUIT */ +"Salir", +/* TR_RED_IN_USE */ +"ISDN (u otra conexión externa) se encuentra en uso. No puede configurar ISDN mientras la interfaz RED está activa.", +/* TR_RESTART_REQUIRED */ +"\n\nCuando la configuración se complete, Un reinicio de red será requerido", +/* TR_RESTORE */ +"Restaurar", +/* TR_RESTORE_CONFIGURATION */ +"Si cuenta con un floppy con la configuración del %s sistema en el, insertelo en la unidad lectora y presione el botón restaurar.", +/* TR_ROOT_PASSWORD */ +"Contraseña 'root'", +/* TR_SECONDARY_DNS */ +"DNS Secundario:", +/* TR_SECONDARY_DNS_CR */ +"DNS Secundario\n", +/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */ +"DNS Secundario especificado sinun servidor DNS primario", +/* TR_SECTION_MENU */ +"Sección de Menú", +/* TR_SELECT */ +"Selección", +/* TR_SELECT_CDROM_TYPE */ +"Seleccione tipo de CDROM", +/* TR_SELECT_CDROM_TYPE_LONG */ +"No se detectó unidad de CD/DVD en esta máquina. Por favor seleccione cual de los siguientes drivers desea usar para que %s pueda acceder a la unidad de CD/DVD", +/* TR_SELECT_INSTALLATION_MEDIA */ +"Seleccione medio de instalación", +/* TR_SELECT_INSTALLATION_MEDIA_LONG */ +"%s puede ser instalado desde múltiples fuentes. La mas sencilla es usar la unidad de CD/DVD. Si la máquina carece de una, puede instalarlo desde otra máquina en la red local que tenga los archivos de instalación disponibles via HTTP o FTP.", +/* TR_SELECT_NETWORK_DRIVER */ +"Seleccione drivers de red", +/* TR_SELECT_NETWORK_DRIVER_LONG */ +"Seleccione el driver de red para la tarjeta instalada en esta máquina. Si usted elige MANUAL, se le dará una oportunidad de introducir los parámetros y nombres de módulo para los drivers que requieran configuracioens especiales como las tarjetas ISA", +/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */ +"Seleccione la interfaz que desea reconfigurar", +/* TR_SELECT_THE_ITEM */ +"Seleccione el elemento que desea configurar", +/* TR_SETTING_ADMIN_PASSWORD */ +"Estableciendo la contraseña del usuario %s 'admin'...", +/* TR_SETTING_ROOT_PASSWORD */ +"Estableciendo la contraseña del usuario 'root'...", +/* TR_SETTING_SETUP_PASSWORD */ +"A REMOVER", +/* TR_SETUP_FINISHED */ +"La configuración se ha completado. Presione Ok para reiniciar", +/* TR_SETUP_NOT_COMPLETE */ +"La configuración inicial no se completó totalmente. Asegúrese de configurar todo correctamente ejecutando setup de nuevo desde la lÃnea de comandos.", +/* TR_SETUP_PASSWORD */ +"A REMOVER", +/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */ +"Configurar parámetros de módulo adicionales", +/* TR_SINGLE_GREEN */ +"Su configuración está dispuesta para una interface GREEN única", +/* TR_SKIP */ +"Omitir", +/* TR_START_ADDRESS */ +"Dirección de inicio:", +/* TR_START_ADDRESS_CR */ +"Dirección de inicio\n", +/* TR_STATIC */ +"Estático", +/* TR_SUGGEST_IO */ +"(sugerir %x)", +/* TR_SUGGEST_IRQ */ +"(sugerir %d)", +/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */ +"El módulo de este driver ya ha sido cargado.", +/* TR_TIMEZONE */ +"Zona de tiempo", +/* TR_TIMEZONE_LONG */ +"Seleccione su zona de tiempo de la siguiente lista.", +/* TR_UNABLE_TO_EJECT_CDROM */ +"Imposible expulsar el CD/DVD", +/* TR_UNABLE_TO_EXTRACT_MODULES */ +"Imposible extraer módulos.", +/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */ +"Imposible encontrar drivers adicionales", +/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */ +"Imposible encontrar tarjeta ISDN en esta máquina. PodrÃa necesitar especificar parámetros de módulo adicionales si la tarjeta es tipo ISA o tiene requerimientos especiales", +/* TR_UNABLE_TO_INITIALISE_ISDN */ +"Imposible inicializar ISDN", +/* TR_UNABLE_TO_INSTALL_FILES */ +"Imposible instalar archivos.", +/* TR_UNABLE_TO_INSTALL_LANG_CACHE */ +"Imposible instalar archivos de Idioma.", +/* TR_UNABLE_TO_INSTALL_GRUB */ +"Imposible instalar GRUB.", +/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */ +"Imposible cargar driver de módulo.", +/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */ +"Imposibe crear sistema de archivos de arranque.", +/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */ +"Imposible crear sistema de archivos log.", +/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */ +"Imposible crear sistema de archivos root.", +/* TR_UNABLE_TO_MAKE_SWAPSPACE */ +"Imposible crear espacio swap", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */ +"Imposible crear enlace simbólico /dev/harddisk.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */ +"Imposible crear enlace simbólico /dev/harddisk1.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */ +"Imposible crear enlace simbólico /dev/harddisk2.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */ +"Imposible crear enlace simbólico /dev/harddisk3.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */ +"Imposible crear enlace simbólico /dev/harddisk4.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */ +"Imposible crear enlace simbólico a /dev/root", +/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */ +"Imposible montar boot filesystem.", +/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */ +"Imposible montar log filesystem.", +/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */ +"Imposible montar proc filesystem.", +/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */ +"Imposible montar root filesystem.", +/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */ +"Imposible montar the swap partition.", +/* TR_UNABLE_TO_OPEN_HOSTS_FILE */ +"Imposible abrir main hosts file.", +/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */ +"Imposible abrir settings file", +/* TR_UNABLE_TO_PARTITION */ +"Imposible particionar el disco.", +/* TR_UNABLE_TO_REMOVE_TEMP_FILES */ +"Imposible remover archivos de descarga temporales.", +/* TR_UNABLE_TO_SET_HOSTNAME */ +"Imposible asignar el nombre de host.", +/* TR_UNABLE_TO_UNMOUNT_CDROM */ +"Imposible desmontar la unidad CDROM/Floppydisk.", +/* TR_UNABLE_TO_UNMOUNT_HARDDISK */ +"Imposible desmontar disco duro.", +/* TR_UNABLE_TO_WRITE_ETC_FSTAB */ +"Imposible escribir /etc/fstab", +/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */ +"Imposible escribir /etc/hostname", +/* TR_UNABLE_TO_WRITE_ETC_HOSTS */ +"Imposible escribir /etc/hosts.", +/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */ +"Imposible escribir /etc/hosts.allow.", +/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */ +"Imposible escribir /etc/hosts.deny.", +/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */ +"Imposible escribir %s/ethernet/settings.", +/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */ +"Imposible escribir %s/main/hostname.conf", +/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */ +"Imposible escribir %s/main/settings.", +/* TR_UNCLAIMED_DRIVER */ +"There is an unclaimed ethernet card of type:\n%s\n\nYou can assign this to:", +/* TR_UNKNOWN */ +"DESCONOCIDO", +/* TR_UNSET */ +"NO ASIGNADO", +/* TR_USB_KEY_VFAT_ERR */ +"Esta unidad USB no es válida (no se encontró partición vfat).", +/* TR_US_NI1 */ +"US NI1", +/* TR_WARNING */ +"ADVERTENCIA", +/* TR_WARNING_LONG */ +"Si usted cambia esta dirección IP mientras se encuentra conectado de manera remota, su conexión a esta máquina %s será terminada, i tendrá que reconectarse con la nueva dirección IP. Esta es una operación riesgosa y solamente deberÃa ser intentada si usted tiene acceso fÃsico a la máquina en caso de que algo salga mal.", +/* TR_WELCOME */ +"Bienvenido al programa de instalación de %s. Si selecciona cancelar en cualquiera de las pantallas siguientes su computadora será reiniciada.", +/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */ +"Su sistema está configurado a interfaz GREEN única, la cual ya ha sido asignada.", +/* TR_YES */ +"Si", +/* TR_NO */ +"No", +/* TR_AS */ +"as", +/* TR_IGNORE */ +"Ignorar", +/* TR_PPP_DIALUP */ +"PPP DIALUP (PPPoE, Modem, ATM ...)", +/* TR_DHCP */ +"DHCP", +/* TR_DHCP_STARTSERVER */ +"Iniciando Servidor DHCP ...", +/* TR_DHCP_STOPSERVER */ +"Deteniendo Servidor DHCP ...", + +}; + diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl index 704e0b9..2924cb7 100644 --- a/langs/fr/cgi-bin/fr.pl +++ b/langs/fr/cgi-bin/fr.pl @@ -15,6 +15,7 @@ 'ConnSched change profile title' => 'Change to profile:', 'ConnSched days' => 'Days:', 'ConnSched down' => 'Down', +'Set time on boot' => 'Fixe l heure en botte', 'ConnSched ipsecstart' => 'IPSec (re)start', 'ConnSched ipsecstop' => 'IPSec stop', 'ConnSched reconnect' => 'Reconnect', @@ -506,7 +507,7 @@ 'clock last synchronized at' => 'Clock was last synchronized at', 'comment' => 'Description:', 'common name' => 'Common name', -'community rules' => 'Snort GPL Community Rules', +'community rules' => 'Emergingthreats.net Community Rules', 'comp-lzo' => 'LZO-Compression:', 'compression' => 'Compression:', 'computer to modem rate' => 'Computer to modem rate:', @@ -715,6 +716,7 @@ 'download certificate' => 'Download certificate', 'download host certificate' => 'Download host certificate', 'download new ruleset' => 'Download new ruleset', +'upload new ruleset' => 'Upload new ruleset', 'download pkcs12 file' => 'Download PKCS12 file', 'download root certificate' => 'Download root certificate', 'dpd action' => 'Dead Peer Detection action', @@ -803,7 +805,7 @@ 'external access rule removed' => ' External access rule removed; restarting access controller', 'external aliases configuration' => 'External aliases configuration', 'extrahd' => 'ExtraHD', -'extrahd founded drives' => 'founded drives', +'extrahd detected drives' => 'founded drives', 'false classnumber' => 'The Class-Number does not match the interface.', 'false max bandwith' => 'Maximum bandwith is false.', 'false min bandwith' => 'Minimum bandwith is false.', @@ -987,7 +989,7 @@ 'invalid keep time' => 'Keep time must be a valid number', 'invalid key' => 'Invalid key.', 'invalid loaded file' => 'Invalid loaded file', -'invalid local-remote id' => 'When used, local & remote id must not be equal and begin with a "@" sign. These are leftid and rightid in openswan terminology.', +'invalid local-remote id' => 'local & remote id must not be equal and begin with a "@" sign. These are leftid and rightid in strongswan terminology.', 'invalid logserver address' => 'Invalid syslogd server address', 'invalid mac address' => 'Invalid MAC address', 'invalid max lease time' => 'Invalid max lease time.', @@ -1013,7 +1015,7 @@ 'invalid vpi vpci' => 'Invalid VPI/VPCI settings', 'invalid wins address' => 'Invalid WINS server address.', 'invert' => 'Invert', -'ip address' => 'IP address:', +'ip address' => 'IP address', 'ip address in use' => 'IP address already in use', 'ip address outside subnets' => 'IP Address outside subnets', 'ip alias added' => 'External IP alias added', @@ -1254,6 +1256,8 @@ 'not set' => 'not set', 'notes' => 'Notes', 'november' => 'November', +'ntp common settings' => 'Common settings', +'ntp sync' => 'Synchronization', 'ntp configuration' => 'NTP configuration', 'ntp must be enabled to have clients' => 'NTP must be enabled to have clients.', 'ntp server' => 'NTP Server', @@ -1295,13 +1299,21 @@ 'otherip' => 'other IP', 'otherport' => 'other Port', 'out' => 'Out', -'outgoing' => 'outgoing', -'outgoing firewall' => 'Outgoing Firewall', +'outgoing' => 'sortant', +'outgoing firewall' => 'Sortant Firewall', +'outgoing firewall groups' => 'Firewall Groupe', +'outgoing firewall add ip group' => 'Ajouter IP Address Group', +'outgoing firewall ip groups' => 'Sortant Firewall IP Groupe', +'outgoing firewall view group' => 'Montrer groupe', 'outgoing traffic in bytes per second' => 'Outgoing Traffic', 'outgoingfw mode0' => 'Using this mode, all clients are able to access the internet without any restrictions.', 'outgoingfw mode1' => 'Using this mode, only connections based on the defined rules are allowed.', 'outgoingfw mode2' => 'Using this mode, all connections are allowed despited off the defined ones.', -'outgoingfw p2p description' => 'Press the corresponding button to enable/disable the iptables p2p block modul.', +'outgoingfw p2p description 1' => 'The button', +'outgoingfw p2p description 2' => 'means that the p2p protocol is allowed or', +'outgoingfw p2p description 3' => 'that the p2p protocol is denied.', +'outgoingfw p2p deny' => 'p2p protocol is denied', +'outgoingfw p2p allow' => 'p2p protocol is allowed', 'outgoingfw reset' => 'Reset all', 'override mtu' => 'Override default MTU', 'ovpn' => 'OpenVPN', @@ -1356,6 +1368,7 @@ 'pakfire update daily' => 'Search for updates daily:', 'pakfire updates' => 'Available Update:', 'pakfire working' => 'Pakfire is working ... Please wait until all operations have completed successfully.', +'snort working' => 'Snort is working ... Please wait until all operations have completed successfully.', 'pap or chap' => 'PAP or CHAP', 'parentclass' => 'Parentclass', 'password' => 'Password:', @@ -1727,7 +1740,7 @@ 'unknown' => 'UNKNOWN', 'unnamed' => 'Unnamed', 'update' => 'Update', -'update accelerator' => 'Update Booster', +'update accelerator' => 'Update Accelerator', 'update time' => 'Update the time:', 'update transcript' => 'Update transcript', 'updatedatabase' => 'Update Database with last report', diff --git a/langs/list b/langs/list index 939c6b8..b19edf7 100644 --- a/langs/list +++ b/langs/list @@ -1,3 +1,4 @@ en:English:English de:Deutsch:German -fr:Français:French +fr:Français:French-wip +es:Español:Spanish diff --git a/lfs/GeoIP b/lfs/GeoIP index e687bc8..f488ba2 100644 --- a/lfs/GeoIP +++ b/lfs/GeoIP @@ -25,7 +25,7 @@ include Config
VER = 1.17 -DATVER = 15102009 +DATVER = 01052010
THISAPP = Geo-IP-PurePerl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -43,7 +43,7 @@ $(DL_FILE) = $(DL_FROM)/$(DL_FILE) GeoIP.dat-$(DATVER).gz = $(DL_FROM)/GeoIP.dat-$(DATVER).gz
$(DL_FILE)_MD5 = 42a6b9d4dd2563a20c8998556216e1de -GeoIP.dat-$(DATVER).gz_MD5 = bcdb40e805a64015d993ccd5ab1cd149 +GeoIP.dat-$(DATVER).gz_MD5 = 122ac2400bd2df9e999d1260bf04c9b5
install : $(TARGET)
diff --git a/lfs/Net_SSLeay b/lfs/Net_SSLeay index 8f5d063..7c12d2c 100644 --- a/lfs/Net_SSLeay +++ b/lfs/Net_SSLeay @@ -24,7 +24,7 @@
include Config
-VER = 1.35 +VER = 1.36
THISAPP = Net-SSLeay-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 1e4ec37a4467eb66a62d3c090ac9029b +$(DL_FILE)_MD5 = 54061638720dd6a325395331c77f21d8
install : $(TARGET)
diff --git a/lfs/alsa b/lfs/alsa index b70d1e3..a4151c3 100644 --- a/lfs/alsa +++ b/lfs/alsa @@ -30,17 +30,17 @@ else VERSUFIX=ipfire endif
-VER = 1.0.22 -UVER = 1.0.22 -FVER = 1.0.20 -DVER = 1.0.22.1 +VER = 1.0.23 +UVER = 1.0.23 +FVER = 1.0.23 +DVER = 1.0.23
THISAPP = alsa-lib-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) PROG = alsa -PAK_VER = 6 +PAK_VER = 8
DEPS = ""
@@ -62,10 +62,10 @@ alsa-utils-$(UVER).tar.bz2 = $(DL_FROM)/alsa-utils-$(UVER).tar.bz2 alsa-firmware-$(FVER).tar.bz2 = $(DL_FROM)/alsa-firmware-$(FVER).tar.bz2 alsa-driver-$(DVER).tar.bz2 = $(DL_FROM)/alsa-driver-$(DVER).tar.bz2
-$(DL_FILE)_MD5 = b28a12348905fb6915bc41f0edb2ecce -alsa-utils-$(UVER).tar.bz2_MD5 = f7180316188552ee1e6759a03f1fe98d -alsa-firmware-$(FVER).tar.bz2_MD5 = 75fe079c35c091cac49f3a60876bc26a -alsa-driver-$(DVER).tar.bz2_MD5 = 8e516f2dca30acd0c4527632ef3fb36e +$(DL_FILE)_MD5 = f48b50421d8a69d2d806d9c47e534f0d +alsa-utils-$(UVER).tar.bz2_MD5 = cb0cf46029ac9549cf3a31bff6a4f4e1 +alsa-firmware-$(FVER).tar.bz2_MD5 = e3f755331d6d485f6fd697249b90f877 +alsa-driver-$(DVER).tar.bz2_MD5 = 4be102f995bd4cc68e6e8178b0d19ec2
install : $(TARGET)
diff --git a/lfs/atl1c b/lfs/atl1c deleted file mode 100644 index 0e67365..0000000 --- a/lfs/atl1c +++ /dev/null @@ -1,61 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -ifeq "$(XEN)" "1" - VERSUFIX = ipfire-xen -else - VERSUFIX = ipfire -endif - -VER = ipfire-1 - -THISAPP = atl1c -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) - -############################################################################### -# Top-level Rules -############################################################################### - -install : $(TARGET) - -check : - -download : - -md5 : - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cp -r $(DIR_SRC)/src/$(THISAPP) $(DIR_APP) - cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP) modules - cd $(DIR_APP) && install -m 644 atl1c.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/atl2 b/lfs/atl2 deleted file mode 100644 index 3d35ec3..0000000 --- a/lfs/atl2 +++ /dev/null @@ -1,86 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -ifeq "$(XEN)" "1" - VERSUFIX = ipfire-xen -else - VERSUFIX = ipfire -endif - -VER = 2.0.5 - -THISAPP = atl2-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = bbd5696cb6c7c6432d7338d783c408f2 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - $(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -p1 < $(DIR_SRC)/src/patches/atl2_add_tx_bytes_statistic.patch - cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP) modules - cd $(DIR_APP) && install -m 644 atl2.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/clamav b/lfs/clamav index 9cf6961..fdc44ad 100644 --- a/lfs/clamav +++ b/lfs/clamav @@ -24,7 +24,7 @@
include Config
-VER = 0.95.3 +VER = 0.96.1
THISAPP = clamav-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = clamav -PAK_VER = 10 +PAK_VER = 12
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = eaf9fccc3cc3567605a9732313652967 +$(DL_FILE)_MD5 = 38e7870db6e9ad0e569518499a6f3651
install : $(TARGET)
diff --git a/lfs/compat-wireless b/lfs/compat-wireless index 4ac81d2..44f0fe9 100644 --- a/lfs/compat-wireless +++ b/lfs/compat-wireless @@ -30,10 +30,10 @@ else VERSUFIX=ipfire endif
-VER = 2.6.32.2 +VER = 2.6.34.1
THISAPP = compat-wireless-$(VER) -DL_FILE = compat-wireless-usbnet_fix-$(VER).tar.bz2 +DL_FILE = compat-wireless-$(VER).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) @@ -46,7 +46,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6f62b54d22a3c5f8866986173a851506 +$(DL_FILE)_MD5 = 80ceb675aeba45847258770441352af6
install : $(TARGET)
@@ -77,32 +77,25 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xjf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && make KLIB=/lib/modules/$(KVER)-$(VERSUFIX) KMODDIR=kernel install-modules - - # The makefile put the modules to a wrong place move back... - cp -rf /lib/modules/$(KVER)-$(VERSUFIX)/lib / - rm -rf /lib/modules/$(KVER)-$(VERSUFIX)/lib - - # Set Regulatory Domain to "EU" (use Channel 1-14 max. 20db) - echo options cfg80211 ieee80211_regdom=EU > /etc/modprobe.d/cfg80211 - - # Rename ieee80211 modules Because the conflicts with compat-wireless - -cd /lib/modules/$(KVER)-$(VERSUFIX)/kernel/net/ieee80211 && rename .ko .off * - - echo "# If you want to use hostap (prism drivers)" > /etc/modprobe.d/hostap - echo "# you must rename the ieee80211 modules. Run:" >> /etc/modprobe.d/hostap - echo "# rename .off .ko /lib/modules/*/kernel/net/ieee80211/*" >> /etc/modprobe.d/hostap - echo "# depmod -a" >> /etc/modprobe.d/hostap - echo >> /etc/modprobe.d/hostap - echo "# additional you need to blacklist the orinoco modules" >> /etc/modprobe.d/hostap - echo "# by uncommenting following lines" >> /etc/modprobe.d/hostap - echo >> /etc/modprobe.d/hostap - echo "#blacklist orinoco" >> /etc/modprobe.d/hostap - echo "#blacklist orinoco_cs" >> /etc/modprobe.d/hostap - echo "#blacklist orinoco_plx" >> /etc/modprobe.d/hostap - echo "#blacklist orinoco_pci" >> /etc/modprobe.d/hostap - echo "#blacklist orinoco_tmd" >> /etc/modprobe.d/hostap - echo "#blacklist orinoco_nortel" >> /etc/modprobe.d/hostap + # Enable some USB ID's in rt2800usb driver + echo "CONFIG_RT2800USB_RT30XX=y" >> $(DIR_APP)/config.mk + echo "CONFIG_RT2800USB_RT35XX=y" >> $(DIR_APP)/config.mk + echo "CONFIG_RT2800USB_UNKNOWN=y" >> $(DIR_APP)/config.mk + + # Copy USB-Net drivers from Kernel... + mkdir $(DIR_APP)/drivers/net/usb/new + cp $(DIR_APP)/drivers/net/usb/*.c $(DIR_APP)/drivers/net/usb/new + cp /usr/src/linux/drivers/net/usb/{*.c,*.h,Makefile} $(DIR_APP)/drivers/net/usb + cp $(DIR_APP)/drivers/net/usb/new/*.c $(DIR_APP)/drivers/net/usb + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-2.6.34-usbnet_compile.patch + + cd $(DIR_APP) && make KLIB=/lib/modules/$(KVER)-$(VERSUFIX) \ + KMODPATH_ARG='INSTALL_MOD_PATH=' KMODDIR=kernel install-modules + + # Install firmware udev files... + cd $(DIR_APP)/udev && install -m 644 50-compat_firmware.rules /etc/udev/rules.d/ + cd $(DIR_APP)/udev && install -m 755 compat_firmware.sh /lib/udev/
-rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/configroot b/lfs/configroot index 8345e16..544bb25 100644 --- a/lfs/configroot +++ b/lfs/configroot @@ -52,9 +52,10 @@ $(TARGET) : # Create all directories for i in addon-lang auth backup ca certs connscheduler crls ddns dhcp dhcpc dmzholes dns \ ethernet extrahd/bin fwlogs isdn key langs logging mac main menu.d modem net-traffic \ - net-traffic/templates nfs optionsfw outgoing/bin patches pakfire portfw \ - ppp private proxy/advanced/cre proxy/calamaris/bin qos/bin red remote sensors snort time tripwire/report \ - updatexlrator/bin updatexlrator/autocheck urlfilter/autoupdate urlfilter/bin upnp vpn \ + net-traffic/templates nfs optionsfw outgoing/bin outgoing/groups outgoing/groups/ipgroups \ + patches pakfire portfw ppp private proxy/advanced/cre proxy/calamaris/bin qos/bin red \ + remote sensors snort time tripwire/report updatexlrator/bin updatexlrator/autocheck \ + urlfilter/autoupdate urlfilter/bin upnp vpn \ wakeonlan wireless xtaccess ; do \ mkdir -p $(CONFIG_ROOT)/$$i; \ done @@ -62,9 +63,9 @@ $(TARGET) : # Touch empty files for i in auth/users backup/include.user backup/exclude.user \ certs/index.txt ddns/config ddns/noipsettings ddns/settings ddns/ipcache dhcp/settings \ - dhcp/fixleases dhcp/advoptions dmzholes/config dns/settings ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \ + dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dmzholes/config dns/settings ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \ extrahd/scan extrahd/devices extrahd/partitions extrahd/settings fwlogs/ipsettings fwlogs/portsettings \ - isdn/settings mac/settings main/hosts main/settings net-traffic/settings optionsfw/settings outgoing/settings outgoing/rules \ + isdn/settings mac/settings main/disable_nf_sip main/hosts main/settings net-traffic/settings optionsfw/settings outgoing/settings outgoing/rules \ pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \ ppp/settings-5 ppp/settings proxy/settings proxy/advanced/settings proxy/advanced/cre/enable remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \ qos/tosconfig snort/settings tripwire/settings upnp/settings vpn/config vpn/settings vpn/ipsec.conf \ diff --git a/lfs/cpio b/lfs/cpio index b2186fd..48a4393 100644 --- a/lfs/cpio +++ b/lfs/cpio @@ -24,7 +24,7 @@
include Config
-VER = 2.6 +VER = 2.11
THISAPP = cpio-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 76b4145f33df088a5bade3bf4373d17d +$(DL_FILE)_MD5 = 1112bb6c45863468b5496ba128792f6c
install : $(TARGET)
@@ -70,12 +70,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && sed -i "s/invalid_arg/argmatch_invalid/" src/mt.c - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-security_fixes-1.patch cd $(DIR_APP) && ./configure CPIO_MT_PROG=mt --prefix=/usr \ --bindir=/bin --libexecdir=/tmp \ --with-rmt=/usr/sbin/rmt - cd $(DIR_APP) && echo "#define HAVE_LSTAT 1" >> config.h cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/cryptsetup b/lfs/cryptsetup deleted file mode 100644 index bb6f109..0000000 --- a/lfs/cryptsetup +++ /dev/null @@ -1,85 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -PKG_NAME = cryptsetup -VER = 1.0.6 - -THISAPP = cryptsetup-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = cryptsetup -PAK_VER = 2 - -DEPS = "" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 00d452eb7a76e39f5749545d48934a10 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - $(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/cyrus-imapd b/lfs/cyrus-imapd index c9969d2..d5f4322 100644 --- a/lfs/cyrus-imapd +++ b/lfs/cyrus-imapd @@ -85,7 +85,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --with-auth=unix --with-perl --with-sasl --with-idle=idled \ --with-syslogfacility=MAIL --enable-listext --without-snmp cd $(DIR_APP) && make depend - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && make $(EXTRA_MAKE) cd $(DIR_APP) && make install -mkdir /var/imap chown cyrus:mail /var/imap diff --git a/lfs/ddrescue b/lfs/ddrescue new file mode 100644 index 0000000..c61e2d7 --- /dev/null +++ b/lfs/ddrescue @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.12 +THISAPP = ddrescue-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = ddrescue +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = b3d8a9a9098b87939fba05a45848bd8d + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/dosfstools b/lfs/dosfstools index 007d947..01d72b9 100644 --- a/lfs/dosfstools +++ b/lfs/dosfstools @@ -24,10 +24,10 @@
include Config
-VER = 2.11 +VER = 3.0.9
THISAPP = dosfstools-$(VER) -DL_FILE = $(THISAPP).src.tar.gz +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 407d405ade410f7597d364ab5dc8c9f6 +$(DL_FILE)_MD5 = bd273cf8aa6341c0b52cbac72050bcf4
install : $(TARGET)
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && sed -i -e "s|PREFIX = /usr/local||g" Makefile cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/e1000 b/lfs/e1000 new file mode 100644 index 0000000..c7c5654 --- /dev/null +++ b/lfs/e1000 @@ -0,0 +1,90 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2010 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +ifeq "$(XEN)" "1" + VERSUFIX = ipfire-xen +else + VERSUFIX = ipfire +endif + +VER = 8.0.19 + +THISAPP = e1000-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = dc66dcbfd7c2e48af8cfc86f4f174fce + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + $(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + #Save original e1000 module + -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/e1000.ko \ + /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/e1000.ko.org + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \ + SUBDIRS=$(DIR_APP)/src modules + cd $(DIR_APP)/src && install -m 644 e1000.ko \ + /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000 + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/e1000e b/lfs/e1000e index 79e5097..5838f6a 100644 --- a/lfs/e1000e +++ b/lfs/e1000e @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2010 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -30,7 +30,7 @@ else VERSUFIX = ipfire endif
-VER = 1.0.2.5 +VER = 1.1.19
THISAPP = e1000e-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -46,7 +46,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 734f171db3208285d1492401bd185aa0 +$(DL_FILE)_MD5 = 94e86507f139226c1add173dafdbbd52
install : $(TARGET)
@@ -78,6 +78,9 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) + #Save original e1000e module + -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e/e1000e.ko \ + /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e/e1000e.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \ SUBDIRS=$(DIR_APP)/src modules diff --git a/lfs/e2fsprogs b/lfs/e2fsprogs index 309ccf8..6844d3b 100644 --- a/lfs/e2fsprogs +++ b/lfs/e2fsprogs @@ -24,7 +24,7 @@
include Config
-VER = 1.39 +VER = 1.41.11
THISAPP = e2fsprogs-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 06f7806782e357797fad1d34b7ced0c6 +$(DL_FILE)_MD5 = fb507a40c2706bc38306f150d069e345
install : $(TARGET)
diff --git a/lfs/elinks b/lfs/elinks index 4fc4d9d..4a41e1b 100644 --- a/lfs/elinks +++ b/lfs/elinks @@ -24,7 +24,7 @@
include Config
-VER = 0.11.6 +VER = 0.11.7
THISAPP = elinks-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = elinks -PAK_VER = 2 +PAK_VER = 3
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 463ec007b013822a82d197580117ea16 +$(DL_FILE)_MD5 = fcd087a6d2415cd4c6fd1db53dceb646
install : $(TARGET)
diff --git a/lfs/esniper b/lfs/esniper deleted file mode 100644 index 24f9ffe..0000000 --- a/lfs/esniper +++ /dev/null @@ -1,91 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2-19-0 - -THISAPP = esniper-$(VER) -DL_FILE = $(THISAPP).tgz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = esniper -PAK_VER = 3 - -DEPS = "" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) es-f_1.1.1.tgz - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -es-f_1.1.1.tgz = $(DL_FROM)/es-f_1.1.1.tgz - -$(DL_FILE)_MD5 = 9b2b27a8d01deadf547f59831f2a06fc -es-f_1.1.1.tgz_MD5 = 6d322716edfc0d86a0a230e648a6f797 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - -mkdir /srv/web/esniper - tar xvfz $(DIR_DL)/es-f_1.1.1.tgz -C /srv/web/esniper - chown -Rv nobody.nobody /srv/web/esniper - install -v -m 644 $(DIR_SRC)/config/backup/includes/esniper \ - /var/ipfire/backup/addons/includes/esniper - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/et131x b/lfs/et131x deleted file mode 100644 index f23701b..0000000 --- a/lfs/et131x +++ /dev/null @@ -1,61 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -ifeq "$(XEN)" "1" - VERSUFIX = ipfire-xen -else - VERSUFIX = ipfire -endif - -VER = ipfire-1 - -THISAPP = et131x -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) - -############################################################################### -# Top-level Rules -############################################################################### - -install : $(TARGET) - -check : - -download : - -md5 : - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cp -r $(DIR_SRC)/src/$(THISAPP) $(DIR_APP) - cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP) modules - cd $(DIR_APP) && install -m 644 et131x.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/faad b/lfs/faad deleted file mode 100644 index bd258f7..0000000 --- a/lfs/faad +++ /dev/null @@ -1,84 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2010 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2.7 - -THISAPP = faad2-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = faad2 -PAK_VER = 1 - -DEPS = "" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = ee1b4d67ea2d76ee52c5621bc6dbf61e - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --enable-shared - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/fetchmail b/lfs/fetchmail index 4ab1cc0..33b9f9c 100644 --- a/lfs/fetchmail +++ b/lfs/fetchmail @@ -24,7 +24,7 @@
include Config
-VER = 6.3.11 +VER = 6.3.16
THISAPP = fetchmail-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = fetchmail -PAK_VER = 5 +PAK_VER = 6
DEPS = ""
@@ -44,11 +44,12 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 43b28f296cc0024d3c727319eacae324 +$(DL_FILE)_MD5 = 1a40acb371376c7d54fe468c99dfc216
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + download :$(patsubst %,$(DIR_DL)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects)) diff --git a/lfs/flash-images b/lfs/flash-images index 5eff02a..7d9ac3e 100644 --- a/lfs/flash-images +++ b/lfs/flash-images @@ -159,6 +159,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) sed -i -e "s|#terminal|terminal|g" $(MNThdd)/boot/grub/grub.conf sed -i -e "s| panic=10 | console=ttyS0,38400n8 panic=10 |g" $(MNThdd)/boot/grub/grub.conf
+ sed -i -e "s|1:2345:respawn:|#1:2345:respawn:|g" $(MNThdd)/etc/inittab + sed -i -e "s|2:2345:respawn:|#2:2345:respawn:|g" $(MNThdd)/etc/inittab + sed -i -e "s|3:2345:respawn:|#3:2345:respawn:|g" $(MNThdd)/etc/inittab + sed -i -e "s|4:2345:respawn:|#4:2345:respawn:|g" $(MNThdd)/etc/inittab + sed -i -e "s|5:2345:respawn:|#5:2345:respawn:|g" $(MNThdd)/etc/inittab + sed -i -e "s|6:2345:respawn:|#6:2345:respawn:|g" $(MNThdd)/etc/inittab sed -i -e "s|#7:2345:respawn:|7:2345:respawn:|g" $(MNThdd)/etc/inittab
umount $(MNThdd)/boot @@ -188,3 +194,4 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) gzip -f9 $(IMGinsts)
rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) + diff --git a/lfs/gcc b/lfs/gcc index c56fc73..b6a261a 100644 --- a/lfs/gcc +++ b/lfs/gcc @@ -94,7 +94,8 @@ ifeq "$(PASS)" "1" --disable-nls \ --enable-shared \ --enable-languages=c - EXTRA_MAKE = bootstrap BOOT_LDFLAGS="-static" + EXTRA_MAKE = + #bootstrap BOOT_LDFLAGS="-static" EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools2 diff --git a/lfs/grub b/lfs/grub index 8b9f0eb..6e5b6bf 100644 --- a/lfs/grub +++ b/lfs/grub @@ -109,6 +109,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-bz429187-cciss.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid-recheck-bad.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mdadm-path.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch
# XXX Does not work anymore #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch diff --git a/lfs/guardian b/lfs/guardian index f3118f6..e08a469 100644 --- a/lfs/guardian +++ b/lfs/guardian @@ -30,7 +30,7 @@ THISAPP = guardian-$(VER) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = guardian -PAK_VER = 3 +PAK_VER = 4
DEPS = ""
diff --git a/lfs/hostapd b/lfs/hostapd index 4f3ffb4..1791593 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -24,7 +24,7 @@
include Config
-VER = 0.7.1 +VER = 0.7.2
THISAPP = hostapd-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = hostapd -PAK_VER = 17 +PAK_VER = 18
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 3c4f71a889803935c7eb40fac6539d7c +$(DL_FILE)_MD5 = f47689c62ee8c1c59989b402d4f130c3
install : $(TARGET)
diff --git a/lfs/hso b/lfs/hso deleted file mode 100644 index 371d1c3..0000000 --- a/lfs/hso +++ /dev/null @@ -1,87 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -ifeq "$(XEN)" "1" - VERSUFIX = ipfire-xen -else - VERSUFIX = ipfire -endif - -VER = 1.9 - -THISAPP = hso-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/hso_26-v$(VER) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 6412b24ff8cf0527b52616e335ae24f0 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - $(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \ - SUBDIRS=$(DIR_APP) modules - cd $(DIR_APP) && install -m 644 hso.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/usb - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/initrd b/lfs/initrd index ad8b135..cf4f280 100644 --- a/lfs/initrd +++ b/lfs/initrd @@ -89,8 +89,13 @@ $(TARGET) :
# Remove binary depmod files rm -rf /install/initrd/lib/modules/$(KVER)-ipfire/modules.*.bin - - mksquashfs /install/initrd /install/images/initrd + + cd /install/initrd && strip --strip-all {,usr/}{,s}bin/* || true + cd /install/initrd && strip --strip-debug {,usr/}lib/* || true + + cd /install/initrd && ln -svf sbin/init init + + cd /install/initrd && find . | cpio -o -H newc | lzma > /install/images/initrd cd /install/initrd && find ./ -ls > $(DIR_INFO)/_build.initrd.log
@$(POSTBUILD) diff --git a/lfs/initscripts b/lfs/initscripts index 56c4222..a9fadf4 100644 --- a/lfs/initscripts +++ b/lfs/initscripts @@ -119,6 +119,8 @@ $(TARGET) : ln -sf ../init.d/fcron /etc/rc.d/rc0.d/K08fcron ln -sf ../init.d/fcron /etc/rc.d/rc3.d/S40fcron ln -sf ../init.d/fcron /etc/rc.d/rc6.d/K08fcron + ln -sf ../init.d/snort /etc/rc.d/rc0.d/K78snort + ln -sf ../init.d/snort /etc/rc.d/rc6.d/K78snort ln -sf ../init.d/network /etc/rc.d/rc0.d/K80network ln -sf ../init.d/network /etc/rc.d/rc3.d/S20network ln -sf ../init.d/network /etc/rc.d/rc6.d/K80network @@ -147,6 +149,9 @@ $(TARGET) : ln -sf ../init.d/cyrus-sasl /etc/rc.d/rc0.d/K49cyrus-sasl ln -sf ../init.d/cyrus-sasl /etc/rc.d/rc3.d/S24cyrus-sasl ln -sf ../init.d/cyrus-sasl /etc/rc.d/rc6.d/K49cyrus-sasl + ln -sf ../init.d/leds /etc/rc.d/rc0.d/K79leds + ln -sf ../init.d/leds /etc/rc.d/rc3.d/S21leds + ln -sf ../init.d/leds /etc/rc.d/rc6.d/K79leds ln -sf ../init.d/mountkernfs /etc/rc.d/rcsysinit.d/S00mountkernfs ln -sf ../init.d/modules /etc/rc.d/rcsysinit.d/S05modules ln -sf ../init.d/udev /etc/rc.d/rcsysinit.d/S10udev diff --git a/lfs/ipfireseeder b/lfs/ipfireseeder index d74546c..4477762 100644 --- a/lfs/ipfireseeder +++ b/lfs/ipfireseeder @@ -27,13 +27,13 @@ include Config VER = 1.00
THISAPP = ipfireseeder-$(VER) -DL_FILE = ipfire-2.5.i586-full-core36.iso.torrent +DL_FILE = ipfire-2.7.i586-full-core38.iso.torrent
DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = ipfireseeder -PAK_VER = 10 +PAK_VER = 12
DEPS = "rtorrent"
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c46a39464f4ec1f71913ddcb2b5a049e +$(DL_FILE)_MD5 = 0848aee5e93b9716ce70f6dcdf2f5863
install : $(TARGET)
diff --git a/lfs/kvm-kmod b/lfs/kvm-kmod index dbaf5e3..c5ca871 100644 --- a/lfs/kvm-kmod +++ b/lfs/kvm-kmod @@ -30,7 +30,7 @@ else VERSUFIX=ipfire endif
-VER = 2.6.31.5 +VER = 2.6.33.1
THISAPP = kvm-kmod-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -46,7 +46,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 1f5a9ec75efae079487be6db43e3a684 +$(DL_FILE)_MD5 = 18d61c6d95cc7b1c545577836aadbc13
install : $(TARGET)
diff --git a/lfs/lcr b/lfs/lcr index 935a457..b743fdd 100644 --- a/lfs/lcr +++ b/lfs/lcr @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2010 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,15 +24,15 @@
include Config
-VER = 20090906 +VER = 20100601
-THISAPP = lcr_$(VER) +THISAPP = lcr-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = lcr -PAK_VER = 2 +PAK_VER = 3
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 18554fbe046d349b81113dd90732fdaa +$(DL_FILE)_MD5 = 68ccdcbe741df38c0f79d14c1b5473f5
install : $(TARGET)
diff --git a/lfs/libevent b/lfs/libevent new file mode 100644 index 0000000..507a64e --- /dev/null +++ b/lfs/libevent @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.4.14b-stable + +THISAPP = libevent-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = a00e037e4d3f9e4fe9893e8a2d27918c + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libpng b/lfs/libpng index 3aad2cc..60b25a0 100644 --- a/lfs/libpng +++ b/lfs/libpng @@ -24,10 +24,10 @@
include Config
-VER = 1.2.12 +VER = 1.2.44
THISAPP = libpng-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e82f39e46aac34a1ca559c79322979be +$(DL_FILE)_MD5 = 098ab673ab74015978db98667febc4a9
install : $(TARGET)
@@ -69,7 +69,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/libtiff b/lfs/libtiff index 73e53cb..f5e4d57 100644 --- a/lfs/libtiff +++ b/lfs/libtiff @@ -24,7 +24,7 @@
include Config
-VER = 3.8.2 +VER = 3.9.4
THISAPP = tiff-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = libtiff -PAK_VER = 1 +PAK_VER = 2
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = fbb6f446ea4ed18955e2714934e5b698 +$(DL_FILE)_MD5 = 2006c1bdd12644dbf02956955175afd6
install : $(TARGET)
diff --git a/lfs/linux b/lfs/linux index aa5cfca..fa0ec1e 100644 --- a/lfs/linux +++ b/lfs/linux @@ -24,8 +24,8 @@
include Config
-PATCHLEVEL = .10 -VER = 2.6.32.10 +PATCHLEVEL = .15 +VER = 2.6.32.15
THISAPP = linux-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -35,7 +35,7 @@ CFLAGS = CXXFLAGS =
PROG = linux-xen -PAK_VER = 8 +PAK_VER = 10 DEPS = ""
# Normal build or XEN build. @@ -57,22 +57,21 @@ objects =$(DL_FILE) \ patch-2.6.16-nath323-1.3.bz2 \ reiser4-for-2.6.32.patch.bz2 \ squashfs-lzma-linux-2.6.32-kernel-patches.tar.bz2 \ - linux-$(VER)-suse_xen_patches-1.tar.bz2 + xen-patches-2.6.32-2.tar.bz2
$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) -netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.21.tar.gz +netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz patch-2.6.16-nath323-1.3.bz2 = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2 reiser4-for-2.6.32.patch.bz2 = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2 squashfs-lzma-linux-2.6.32-kernel-patches.tar.bz2 = $(URL_IPFIRE)/squashfs-lzma-linux-2.6.32-kernel-patches.tar.bz2 -linux-$(VER)-suse_xen_patches-1.tar.bz2 = $(URL_IPFIRE)/linux-$(VER)-suse_xen_patches-1.tar.bz2 +xen-patches-2.6.32-2.tar.bz2 = $(URL_IPFIRE)/xen-patches-2.6.32-2.tar.bz2
- -$(DL_FILE)_MD5 = 5d996507ad482a3a8c8e6b2d48e7994b +$(DL_FILE)_MD5 = 1cbbf16e93bbe03368172872690600c0 netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f patch-2.6.16-nath323-1.3.bz2_MD5 = f926409ff703a307baf54b57ab75d138 reiser4-for-2.6.32.patch.bz2_MD5 = 3246397973d9271eb8e6d7c97c5d2d91 squashfs-lzma-linux-2.6.32-kernel-patches.tar.bz2_MD5 = d2a84311081023c7ffd28cdca67c45d4 -linux-$(VER)-suse_xen_patches-1.tar.bz2_MD5 = 96b0dc50256ced7c5c2b6d03a7f2d386 +xen-patches-2.6.32-2.tar.bz2_MD5 = d1d78d2e9b9b62dd869a490f4415de04
install : $(TARGET)
@@ -108,18 +107,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ln -s linux-$(VER) /usr/src/linux
ifeq "$(XEN)" "1" - # Apply Xen patches (provided by SuSE) - cd $(DIR_SRC) && tar jxf $(DIR_DL)/linux-$(VER)-suse_xen_patches-1.tar.bz2 - cp -f $(DIR_SRC)/src/patches/suse_xen_series.conf $(DIR_SRC)/linux-$(VER)-suse_xen_patches/series.conf - cd $(DIR_SRC)/linux-$(VER)-suse_xen_patches && \ - for x in $$( ./guards $$( ./arch-symbols) < ./series.conf); do \ - echo "*********** [Patch: $$x]"; \ - patch -d $(DIR_APP) -p1 < $$x || break; \ - done - rm -rf $(DIR_SRC)/linux-*-suse_xen_patches - - # Fix strange patchset errors - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-patch-fixes.patch + # Apply gentoo Xen patches + mkdir -p $(DIR_SRC)/xen-patches + cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2.tar.bz2 + + for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \ + echo "*********** [Patch: $$x]"; \ + cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \ + done + rm -rf $(DIR_SRC)/xen-patches
# Linux Intermediate Queueing Device cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch @@ -128,9 +124,6 @@ else cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch endif
- # Add patch to fix ath5k "no txbuf available" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-ath5k_fix_setup_for_CAB_queue.patch - # Not report deprecated syscall 1.23 (for kudzu) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch
@@ -148,6 +141,12 @@ endif # Squashfs LZMA support cd $(DIR_APP) && bzcat $(DIR_DL)/squashfs-lzma-linux-2.6.32-kernel-patches.tar.bz2 | patch -Np1
+ # Add some more LED triggers + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch + + # Huawei (Vodafone) K3765 & K4505 Usbids + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch + # Cleanup kernel source
cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config @@ -181,9 +180,29 @@ endif mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/ide/ide-gd_mod.ko \ /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/ide/ide-disk.ko
-# # Remove mISDN modules -# rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN -# rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN + # Remove mISDN modules + rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN + rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN + +ifneq "$(XEN)" "1" + # Blacklist matroxfb_base + echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer + # Blacklist old framebuffer modules + for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + done + # Blacklist new drm framebuffer modules + for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + done + sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer + + # Blacklist isdn modules + for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \ + done + sed -i -e "s|.ko||g" /etc/modprobe.d/isdn +endif
@rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-* @$(POSTBUILD) diff --git a/lfs/mISDN b/lfs/mISDN index b689a36..a6dd753 100644 --- a/lfs/mISDN +++ b/lfs/mISDN @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2010 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -30,9 +30,9 @@ else VERSUFIX=ipfire endif
-VER = 20090906 +VER = 20100525
-THISAPP = mISDN_$(VER) +THISAPP = mISDN-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -46,7 +46,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c5a9daab7fa18734127d481c8cfdac96 +$(DL_FILE)_MD5 = 0f91aa47ee95833d74c8a81ffc6f6fd3
install : $(TARGET)
@@ -76,15 +76,22 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_SRC)/mISDN* && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_SRC)/mISDN && patch -Np1 < $(DIR_SRC)/src/patches/mISDN-enable_disabled_cards.patch - cd $(DIR_SRC)/mISDN && patch -Np1 < $(DIR_SRC)/src/patches/mISDN-hfcusb_bchannels.patch cd $(DIR_SRC)/mISDN && patch -Np1 < $(DIR_SRC)/src/patches/mISDN-hfcusb-reportl1down.patch - cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) force - cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) $(MAKETUNING) + cd $(DIR_SRC)/mISDN && ./configure --with-kerneldir=/usr/src/linux + cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) modules cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) \ INSTALL_PREFIX=$(DIR_SRC)/mISDN/dest/ \ modules-install mv $(DIR_SRC)/mISDN/dest/lib/modules/*/extra \ /lib/modules/$(KVER)-$(VERSUFIX)/mISDN + +ifneq "$(XEN)" "1" + # Blacklist misdn modules + for f in $$(find /lib/modules/$(KVER)-$(VERSUFIX)/mISDN -name *.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/mISDN ; \ + done + sed -i -e "s|.ko||g" /etc/modprobe.d/mISDN +endif + @rm -rf $(DIR_SRC)/mISDN* @$(POSTBUILD) diff --git a/lfs/mISDNuser b/lfs/mISDNuser index 0347b06..22183a6 100644 --- a/lfs/mISDNuser +++ b/lfs/mISDNuser @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2010 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,9 +24,9 @@
include Config
-VER = 20090906 +VER = 20100525
-THISAPP = mISDNuser_$(VER) +THISAPP = mISDNuser-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = afc28383ac908eddd0219c5efb9b8178 +$(DL_FILE)_MD5 = 8e9b507c3f576cefb857329f72e62318
install : $(TARGET)
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_SRC)/mISDNuser && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_SRC)/mISDNuser && ./configure --prefix=/usr --with-AF_ISDN=34 cd $(DIR_SRC)/mISDNuser && make MISDNDIR=/usr/src/linux cd $(DIR_SRC)/mISDNuser && make install MISDNDIR=/usr/src/linux @$(POSTBUILD) diff --git a/lfs/mc b/lfs/mc index e321b31..d6badb5 100644 --- a/lfs/mc +++ b/lfs/mc @@ -24,15 +24,15 @@
include Config
-VER = 4.7.0 +VER = 4.7.3
THISAPP = mc-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.lzma DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = mc -PAK_VER = 3 +PAK_VER = 4
DEPS = "glib"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 3be875c7603ab45e784026a5d13d4bb0 +$(DL_FILE)_MD5 = 15b017b370668683aa8cbf6730667510
install : $(TARGET)
@@ -76,15 +76,12 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - # Create a symlink because mc search for automake-1.10 - ln -s automake-1.9 /usr/share/automake-1.10 + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xf $(DIR_DL)/$(DL_FILE) --lzma cd $(DIR_APP) && ./configure --prefix=/usr \ --without-x --disable-nls \ --with-samba \ --with-screen=ncurses cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - rm /usr/share/automake-1.10 @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/memtest b/lfs/memtest index 67bcebc..5d27047 100644 --- a/lfs/memtest +++ b/lfs/memtest @@ -24,7 +24,7 @@
include Config
-VER = 4.00 +VER = 4.10
THISAPP = memtest86+-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 898cfc5ff7920a8c396ebe898ac2eaa5 +$(DL_FILE)_MD5 = 2144f21d4489a04149b1891b8d97e8fc
install : $(TARGET)
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && sed -i -e "s| -fno-stack-protector||g" Makefile cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) -mkdir -p /usr/lib/memtest86+ cd $(DIR_APP) && cp -f memtest.bin /usr/lib/memtest86+ diff --git a/lfs/minicom b/lfs/minicom new file mode 100644 index 0000000..8af78e2 --- /dev/null +++ b/lfs/minicom @@ -0,0 +1,86 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.4 + +THISAPP = minicom-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = minicom +PAK_VER = 0 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 700976a3c2dcc8bbd50ab9bb1c08837b + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && \ + ./configure \ + --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/mkinitcpio b/lfs/mkinitcpio index 47de3ea..da0de4d 100644 --- a/lfs/mkinitcpio +++ b/lfs/mkinitcpio @@ -73,8 +73,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && ./install.sh "" cp $(DIR_SRC)/config/mkinitcpio/virtio /lib/initcpio/install/ sed -i 's|^FILELIST=.*|FILELIST="$$(mktemp)"|g' /sbin/mkinitcpio - sed -i 's|^HOOKS=.*|HOOKS="base udev autodetect ide usb scsi pata sata virtio filesystems"|g' /etc/mkinitcpio.conf - sed -i 's|^MODULES=.*|MODULES="reiser4 reiserfs ext3 ehci_hcd"|g' /etc/mkinitcpio.conf + sed -i 's|^HOOKS=.*|HOOKS="base udev autodetect ide usb scsi pata sata virtio"|g' /etc/mkinitcpio.conf + sed -i 's|^MODULES=.*|MODULES="reiser4 reiserfs ext3 ext2 ehci_hcd sd_mod"|g' /etc/mkinitcpio.conf sed -i 's|ide-cd|ide-cd ide-generic|g' /lib/initcpio/install/ide sed -i 's| gzip -9 | lzma |g' /sbin/mkinitcpio @rm -rf $(DIR_APP) diff --git a/lfs/mpd b/lfs/mpd index 45d7d71..3e0999c 100644 --- a/lfs/mpd +++ b/lfs/mpd @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = mpd PAK_VER = 10
-DEPS = "alsa ffmpeg-libs glib lame libshout libogg libid3tag libvorbis" +DEPS = "alsa faad2 ffmpeg-libs glib lame libshout libogg libid3tag libvorbis"
############################################################################### # Top-level Rules diff --git a/lfs/nfs b/lfs/nfs index e5658e5..d7d2166 100644 --- a/lfs/nfs +++ b/lfs/nfs @@ -24,27 +24,32 @@
include Config
-VER = 1.1.1 +VER = 1.2.2
THISAPP = nfs-utils-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = nfs -PAK_VER = 3 +PAK_VER = 4
DEPS = "portmap"
+LIBNFSIDMAP = 0.23 + ############################################################################### # Top-level Rules ###############################################################################
-objects = $(DL_FILE) +objects = $(DL_FILE) \ + libnfsidmap-$(LIBNFSIDMAP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) +libnfsidmap-$(LIBNFSIDMAP).tar.gz = $(DL_FROM)/libnfsidmap-$(LIBNFSIDMAP).tar.gz
-$(DL_FILE)_MD5 = 407785488241f9db67b1874e3f36370e +$(DL_FILE)_MD5 = dad92f64db3266c7757f71bb53ee8f35 +libnfsidmap-$(LIBNFSIDMAP).tar.gz_MD5 = 28f3ece648c1dc5d25e8d623d55f8bd6
install : $(TARGET)
@@ -76,9 +81,20 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ - --disable-nfsv4 --disable-gss + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + + cd $(DIR_APP) && tar zxf $(DIR_DL)/libnfsidmap-$(LIBNFSIDMAP).tar.gz + cd $(DIR_APP)/libnfsidmap* && ./configure --prefix=/usr + cd $(DIR_APP)/libnfsidmap* && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP)/libnfsidmap* && make install + + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --disable-gss \ + --disable-tirpc \ + --without-tcp-wrappers + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/nut b/lfs/nut index 93672d9..b5a5eda 100644 --- a/lfs/nut +++ b/lfs/nut @@ -24,7 +24,7 @@
include Config
-VER = 2.4.1 +VER = 2.4.3
THISAPP = nut-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 609ebaf2123fc7171d25a6c742dd7d66 +$(DL_FILE)_MD5 = 6f893b61b07915e7a139324fa3f79121
install : $(TARGET)
@@ -82,6 +82,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --with-wrap=no --with-udev-dir=/etc/udev cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + sed -i -e "s|ATTR{|SYSFS{|g" /etc/udev/rules.d/52-nut-usbups.rules -mkdir -p /var/state/ups install -v -m 644 $(DIR_SRC)/config/backup/includes/nut \ /var/ipfire/backup/addons/includes/nut diff --git a/lfs/open-vm-tools b/lfs/open-vm-tools deleted file mode 100644 index 214193a..0000000 --- a/lfs/open-vm-tools +++ /dev/null @@ -1,82 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2009.05.22-167859 - -THISAPP = open-vm-tools-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = cc1c139d2d927952be93397d928f9d6c - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr \ - --with-kernel-release=$(KVER)-ipfire --without-pam \ - --disable-unity --without-gtk2 --without-gtkmm \ - --without-procps --without-dnet --without-icu \ - --without-x --with-linuxdir=/usr/src/linux \ - --without-kernel-modules - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/openssl b/lfs/openssl index 1599c7b..5c8b413 100644 --- a/lfs/openssl +++ b/lfs/openssl @@ -24,7 +24,7 @@
include Config
-VER = 0.9.8n +VER = 0.9.8o
THISAPP = openssl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 076d8efc3ed93646bd01f04e23c07066 +$(DL_FILE)_MD5 = 63ddc5116488985e820075e65fbe6aa4
install : $(TARGET)
diff --git a/lfs/openswan b/lfs/openswan deleted file mode 100644 index a5d6520..0000000 --- a/lfs/openswan +++ /dev/null @@ -1,122 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -ifeq "$(XEN)" "1" - VERSUFIX=ipfire-xen -else - VERSUFIX=ipfire -endif - -VER = git-20100309 - -THISAPP = openswan.git -DL_FILE = openswan.$(VER).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) - -ifeq "$(KMOD)" "1" - TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = f23b716b8ffb242436d8e713d93d209c - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - -ifeq "$(KMOD)" "1" - cd $(DIR_APP) && make KERNELSRC=/usr/src/linux module $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_APP) && make minstall -else - cd $(DIR_APP) && sed -i \ - -e 's%^INC_USRLOCAL.*$$%INC_USRLOCAL=/usr%' \ - -e 's%^USERCOMPILE.*$$%USERCOMPILE=$(CFLAGS)%' \ - -e 's%^KLIPSCOMPILE.*$$%KLIPSCOMPILE=$(CFLAGS)%' \ - -e 's%^XMLTO.*$$%#&%' Makefile.inc - - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/openswan-2.6.24_noxmlto.patch - - cd $(DIR_APP) && sed -i 's/-Werror//' programs/Makefile.program - - cd $(DIR_APP) && make programs - cd $(DIR_APP) && make install - - # don't know why make this doesnt made - cd $(DIR_APP) && cp -a programs/_confread/_confread.in /usr/lib/ipsec/_confread - - -rm -rfv /etc/rc*.d/*ipsec - cd $(DIR_SRC) && cp src/initscripts/init.d/ipsec /etc/rc.d/init.d/ipsec - rm -f /etc/ipsec.conf /etc/ipsec.secrets - ln -sf $(CONFIG_ROOT)/vpn/ipsec.conf /etc/ipsec.conf - ln -sf $(CONFIG_ROOT)/vpn/ipsec.secrets /etc/ipsec.secrets - - rm -rf /etc/ipsec.d/{cacerts,certs,crls} - ln -sf $(CONFIG_ROOT)/ca /etc/ipsec.d/cacerts - ln -sf $(CONFIG_ROOT)/certs /etc/ipsec.d/certs - ln -sf $(CONFIG_ROOT)/crls /etc/ipsec.d/crls - - cd /usr/lib/ipsec && patch -Np0 < $(DIR_SRC)/src/patches/openswan-2.6.16-startklips-1.patch - cd /usr/lib/ipsec && patch -Np0 < $(DIR_SRC)/src/patches/openswan-2.6.16-updown.klips-1.patch - cd /usr/lib/ipsec && patch -Np0 < $(DIR_SRC)/src/patches/openswan-2.6.23-updown-add_ipfire-snat.patch - cd /etc/ipsec.d/policies && patch -Np0 < $(DIR_SRC)/src/patches/openswan-2.6.16-clear-1.patch -endif - #@rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/openvmtools b/lfs/openvmtools new file mode 100644 index 0000000..a34e031 --- /dev/null +++ b/lfs/openvmtools @@ -0,0 +1,92 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 8.4.2-261024 + +THISAPP = open-vm-tools-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = openvmtools +PAK_VER = 1 +DEPS = "glib" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 4d9ddc865b42fc6982c3078031500486 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr \ + --with-kernel-release=$(KVER)-ipfire --without-pam \ + --disable-unity --without-gtk2 --without-gtkmm \ + --without-procps --without-dnet --without-icu \ + --without-x --with-linuxdir=/usr/src/linux \ + --without-kernel-modules + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + ln -sf ../init.d/openvmtools /etc/rc.d/rc3.d/S60openvmtools + ln -sf ../init.d/openvmtools /etc/rc.d/rc0.d/K01openvmtools + ln -sf ../init.d/openvmtools /etc/rc.d/rc6.d/K01openvmtools + rm -rvf /usr/etc/pam.d /usr/share/openvmtools + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/openvpn b/lfs/openvpn index 72fde18..b7d651f 100644 --- a/lfs/openvpn +++ b/lfs/openvpn @@ -24,7 +24,7 @@
include Config
-VER = 2.1_rc20 +VER = 2.1.1
THISAPP = openvpn-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8187f8f21507faac5e320e32747203b8 +$(DL_FILE)_MD5 = b273ed2b5ec8616fb9834cde8634bce7
install : $(TARGET)
diff --git a/lfs/postfix b/lfs/postfix index 503f243..bbb9b0c 100644 --- a/lfs/postfix +++ b/lfs/postfix @@ -24,7 +24,7 @@
include Config
-VER = 2.6.2 +VER = 2.6.5
THISAPP = postfix-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = postfix -PAK_VER = 5 +PAK_VER = 6
DEPS = "amavisd mysql"
@@ -40,14 +40,11 @@ DEPS = "amavisd mysql" # Top-level Rules ###############################################################################
-objects = $(DL_FILE) \ - postfix-2.5.5.patch +objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -postfix-2.5.5.patch = $(DL_FROM)/postfix-2.5.5.patch
-$(DL_FILE)_MD5 = 1f0edbd521d2b0473626f4d61e8bb4eb -postfix-2.5.5.patch_MD5 = 36cb54665d95016af4ce0cd5f85c20a8 +$(DL_FILE)_MD5 = 6b954cfb3eb6141dac1e773281211717
install : $(TARGET)
diff --git a/lfs/pound b/lfs/pound new file mode 100644 index 0000000..39ef2cd --- /dev/null +++ b/lfs/pound @@ -0,0 +1,86 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.5 + +THISAPP = Pound-$(VER) +DL_FILE = $(THISAPP).tgz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = pound +PAK_VER = 2 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 8a39f5902094619afcda7d12d9d8342c + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc --enable-cert1l + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + install -v -m 644 $(DIR_SRC)/config/backup/includes/pound \ + /var/ipfire/backup/addons/includes/pound + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/ppp b/lfs/ppp index 8954639..e667b1e 100644 --- a/lfs/ppp +++ b/lfs/ppp @@ -24,7 +24,7 @@
include Config
-VER = 2.4.4 +VER = 2.4.5
THISAPP = ppp-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 183800762e266132218b204dfb428d29 +$(DL_FILE)_MD5 = 4621bc56167b6953ec4071043fe0ec57
install : $(TARGET)
diff --git a/lfs/python b/lfs/python index 9f5de6f..3a226b6 100644 --- a/lfs/python +++ b/lfs/python @@ -24,7 +24,7 @@
include Config
-VER = 2.4.3 +VER = 2.7
THISAPP = Python-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 141c683447d5e76be1d2bd4829574f02 +$(DL_FILE)_MD5 = 0e8c9ec32abf5b732bea7d91b38c3339
install : $(TARGET)
@@ -71,7 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-gdbm-1.patch - cd $(DIR_APP) && OPT="$(CFLAGS)" ./configure --prefix=/usr --enable-shared --disable-nls + cd $(DIR_APP) && OPT="$(CFLAGS)" ./configure --prefix=/usr --enable-shared cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/python-clientform b/lfs/python-clientform index 795510e..4e6a296 100644 --- a/lfs/python-clientform +++ b/lfs/python-clientform @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = python-clientform -PAK_VER = 1 +PAK_VER = 2
DEPS = ""
diff --git a/lfs/python-feedparser b/lfs/python-feedparser index f540ef1..5143c4a 100644 --- a/lfs/python-feedparser +++ b/lfs/python-feedparser @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = python-feedparser -PAK_VER = 1 +PAK_VER = 2
DEPS = "python-mechanize"
diff --git a/lfs/python-mechanize b/lfs/python-mechanize index 7a22bba..a0f9086 100644 --- a/lfs/python-mechanize +++ b/lfs/python-mechanize @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = python-mechanize -PAK_VER = 1 +PAK_VER = 2
DEPS = "python-clientform"
diff --git a/lfs/python-rssdler b/lfs/python-rssdler index 6165147..0918461 100644 --- a/lfs/python-rssdler +++ b/lfs/python-rssdler @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/rssdler040 TARGET = $(DIR_INFO)/$(THISAPP) PROG = python-rssdler -PAK_VER = 1 +PAK_VER = 2
DEPS = "python-feedparser python-mechanize"
diff --git a/lfs/python-setuptools b/lfs/python-setuptools index 4eb621e..9720a84 100644 --- a/lfs/python-setuptools +++ b/lfs/python-setuptools @@ -24,15 +24,15 @@
include Config
-VER = 0.6c8 +VER = 0.6c11
THISAPP = setuptools-$(VER) -DL_FILE = $(THISAPP)-py2.4.egg +DL_FILE = $(THISAPP)-py2.7.egg DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = python-setuptools -PAK_VER = 1 +PAK_VER = 2
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = cba38d74f7d483c06e9daa6070cce6de +$(DL_FILE)_MD5 = fe1f997bc722265116870bc7919059ea
install : $(TARGET)
diff --git a/lfs/qemu b/lfs/qemu index 97d3af3..7925f0d 100644 --- a/lfs/qemu +++ b/lfs/qemu @@ -24,7 +24,7 @@
include Config
-VER = 0.12.2 +VER = 0.12.3
THISAPP = qemu-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = qemu -PAK_VER = 9 +PAK_VER = 10
DEPS = "sdl"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 1d7c2d95acb6d0789de86508c608e26d +$(DL_FILE)_MD5 = d215e4568650e8019816397174c090e1
install : $(TARGET)
diff --git a/lfs/qemu-kqemu b/lfs/qemu-kqemu index 99b3fe1..a3c99b4 100644 --- a/lfs/qemu-kqemu +++ b/lfs/qemu-kqemu @@ -24,7 +24,7 @@
include Config
-VER = 0.11.0 +VER = 0.11.1
THISAPP = qemu-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)-kqemu PROG = qemu-kqemu -PAK_VER = 1 +PAK_VER = 2
DEPS = "sdl qemu"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 4da6a3e926a0260902f0dee342a59c23 +$(DL_FILE)_MD5 = 193285b0bcf655a7f7577d05ffcb82b1
install : $(TARGET)
diff --git a/lfs/r8101 b/lfs/r8101 index 8f92a76..252b18f 100644 --- a/lfs/r8101 +++ b/lfs/r8101 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 2010 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -30,9 +30,11 @@ else VERSUFIX = ipfire endif
-VER = ipfire-2 +VER = 1.016.00
-THISAPP = r8101 +THISAPP = r8101-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
@@ -40,13 +42,35 @@ TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) # Top-level Rules ###############################################################################
+objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 5885e0f20cf8a87566f1fb99b5113b72 + install : $(TARGET)
-check : +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + $(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK)
-download : +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD)
-md5 : +$(subst %,%_MD5,$(objects)) : + @$(MD5)
############################################################################### # Installation Details @@ -54,8 +78,9 @@ md5 :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cp -r $(DIR_SRC)/src/$(THISAPP) $(DIR_APP) - cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP) modules - cd $(DIR_APP) && install -m 644 r8101.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/r8101_add_missing_pciids.patch + cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules + cd $(DIR_APP)/src && install -m 644 r8101.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/r8168 b/lfs/r8168 index f8efb91..c9792c8 100644 --- a/lfs/r8168 +++ b/lfs/r8168 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 20109 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -30,7 +30,7 @@ else VERSUFIX = ipfire endif
-VER = 8.014.00 +VER = 8.018.00
THISAPP = r8168-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -46,7 +46,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = d69944138d576edf3f92adfe6242e753 +$(DL_FILE)_MD5 = f73f91690ef18e76434cb083b10f3b44
install : $(TARGET)
diff --git a/lfs/r8169 b/lfs/r8169 index 2ed519d..d9cc008 100644 --- a/lfs/r8169 +++ b/lfs/r8169 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 2010 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -30,7 +30,7 @@ else VERSUFIX = ipfire endif
-VER = 6.011.00 +VER = 6.013.00
THISAPP = r8169-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -46,7 +46,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c5e3ab4e6257cb63d46dc7929a2a5c13 +$(DL_FILE)_MD5 = 5cbf92304fe64345b1838b7664701afa
install : $(TARGET)
diff --git a/lfs/reiser4progs b/lfs/reiser4progs index 389bfbc..92a9338 100644 --- a/lfs/reiser4progs +++ b/lfs/reiser4progs @@ -24,10 +24,10 @@
include Config
-VER = 1.0.5 +VER = 1.0.6
THISAPP = reiser4progs-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) ifeq "$(LFS_PASS)" "install" @@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = b0756831e16b2395d5f443526d640792 +$(DL_FILE)_MD5 = d408cfeac40c266623bd51afa008caf6
install : $(TARGET)
@@ -73,7 +73,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) ifeq "$(LFS_PASS)" "install" cd $(DIR_APP) && ./configure --prefix=/opt/$(MACHINE)-uClibc \ --with-libaal=/opt/$(MACHINE)-uClibc \ diff --git a/lfs/reiserfsprogs b/lfs/reiserfsprogs index 9e37caf..b78baef 100644 --- a/lfs/reiserfsprogs +++ b/lfs/reiserfsprogs @@ -24,10 +24,10 @@
include Config
-VER = 3.6.19 +VER = 3.6.21
THISAPP = reiserfsprogs-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) ifeq "$(LFS_PASS)" "install" @@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = b42cf15f6651c3ceff5cb84996c0d539 +$(DL_FILE)_MD5 = 0639cefac8f8150536cfa7531c2aa2d2
install : $(TARGET)
@@ -73,7 +73,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) ifeq "$(LFS_PASS)" "install" cd $(DIR_APP) && ./configure --prefix=/ --sbindir=/sbin cd $(DIR_APP) && make $(MAKETUNING) diff --git a/lfs/rp-pppoe b/lfs/rp-pppoe deleted file mode 100644 index 869b124..0000000 --- a/lfs/rp-pppoe +++ /dev/null @@ -1,77 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 3.8 - -THISAPP = rp-pppoe-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 0e32760f498f9cde44081ee6aafc823b - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP)/src && ./configure --disable-nls - cd $(DIR_APP)/src && make $(MAKETUNING) - cd $(DIR_APP)/src && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/samba b/lfs/samba index a5fd0ad..8a8712e 100644 --- a/lfs/samba +++ b/lfs/samba @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 2005-2010 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 3.5.1 +VER = 3.5.4
THISAPP = samba-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = samba -PAK_VER = 25 +PAK_VER = 29
DEPS = "cups"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 60811195b0507fa151b602684cece743 +$(DL_FILE)_MD5 = 22c8c977eaa18be50f3878c6d0e0c2f0
install : $(TARGET)
diff --git a/lfs/smartmontools b/lfs/smartmontools index b3dd9d8..70e1df1 100644 --- a/lfs/smartmontools +++ b/lfs/smartmontools @@ -24,7 +24,7 @@
include Config
-VER = 5.39 +VER = 5.39.1
THISAPP = smartmontools-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 63c1b5373a9ef91e9c9becb16e147571 +$(DL_FILE)_MD5 = f6f7380ae45587161c0adae8862110e9
install : $(TARGET)
diff --git a/lfs/snort b/lfs/snort index 3955ab6..4b2e348 100644 --- a/lfs/snort +++ b/lfs/snort @@ -24,7 +24,7 @@
include Config
-VER = 2.8.4 +VER = 2.8.6
THISAPP = snort-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 193179da8db8aac5ee6b0a751ce7b76d +$(DL_FILE)_MD5 = b1c2d3ddb1c0a859a47c5a31d19e60ad
install : $(TARGET)
@@ -71,7 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/snort* && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls \ - --sysconfdir=/etc/snort \ + --sysconfdir=/etc/snort --target=i586 \ --enable-linux-smp-stats --enable-smb-alerts cd $(DIR_APP) && make cd $(DIR_APP) && make install diff --git a/lfs/squid b/lfs/squid index f895307..3a5e265 100644 --- a/lfs/squid +++ b/lfs/squid @@ -24,10 +24,10 @@
include Config
-VER = 2.7.STABLE7 +VER = 2.7.STABLE9
THISAPP = squid-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c18b0371fca813d5e7c7e0baf87baa22 +$(DL_FILE)_MD5 = 7d3b8b0bdda3ae56e438d4a95a97d3b3
install : $(TARGET)
@@ -69,7 +69,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls \ --datadir=/usr/lib/squid \ diff --git a/lfs/squidclamav b/lfs/squidclamav index 68d5f6a..e718f5d 100644 --- a/lfs/squidclamav +++ b/lfs/squidclamav @@ -24,7 +24,7 @@
include Config
-VER = 5.2 +VER = 5.3
THISAPP = squidclamav-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = squidclamav -PAK_VER = 10 +PAK_VER = 12
DEPS = "clamav"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7f8d48962f139f747fa9b2050ede19a3 +$(DL_FILE)_MD5 = 39f4b98294782039840b2052eab543e2
install : $(TARGET)
diff --git a/lfs/squidguard b/lfs/squidguard index 5b2656c..a5dd7b9 100644 --- a/lfs/squidguard +++ b/lfs/squidguard @@ -79,7 +79,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && make install
# URL-Filter - -mkdir /etc/squidGuard /srv/web/ipfire/html/repository + -mkdir /etc/squidGuard /var/urlrepo cp -f $(DIR_CONF)/urlfilter/autoupdate.urls /var/ipfire/urlfilter/autoupdate/autoupdate.urls ln -fs /bin/false /var/ipfire/urlfilter/autoupdate/cron.daily ln -fs /bin/false /var/ipfire/urlfilter/autoupdate/cron.weekly @@ -102,7 +102,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) chown -R nobody:nobody /var/ipfire/urlfilter chmod 755 /srv/web/ipfire/html/images/urlfilter chmod 644 /srv/web/ipfire/html/images/urlfilter/* - chown -R nobody:nobody /srv/web/ipfire/html/repository + chown -R nobody:nobody /var/urlrepo chown -R squid:squid /var/log/squidGuard
@rm -rf $(DIR_APP) diff --git a/lfs/strongswan b/lfs/strongswan index 29290f9..6e8c747 100644 --- a/lfs/strongswan +++ b/lfs/strongswan @@ -24,13 +24,7 @@
include Config
-ifeq "$(XEN)" "1" - VERSUFIX=ipfire-xen -else - VERSUFIX=ipfire -endif - -VER = 4.3.6 +VER = 4.4.0
THISAPP = strongswan-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -46,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e071f46b6c463ce76900758734e6143e +$(DL_FILE)_MD5 = bfb0f1c8ef1344e1ae8157bdde060fed
install : $(TARGET)
@@ -77,9 +71,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-4.3.6_ipfire.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-4.4.0_ipfire.patch
- cd $(DIR_APP) && ./configure --prefix="/usr" --sysconfdir="/etc" + cd $(DIR_APP) && ./configure --prefix="/usr" --sysconfdir="/etc" --enable-cisco-quirks cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install
diff --git a/lfs/tcptrack b/lfs/tcptrack deleted file mode 100644 index 12bd640..0000000 --- a/lfs/tcptrack +++ /dev/null @@ -1,84 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.3.0 - -THISAPP = tcptrack-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = tcptrack -PAK_VER = 2 - -DEPS = "" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 227baeb2f96758f7614f6f788b6a4d93 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/usb_modeswitch b/lfs/usb_modeswitch index 8486b42..7a589cd 100644 --- a/lfs/usb_modeswitch +++ b/lfs/usb_modeswitch @@ -24,9 +24,9 @@
include Config
-VER = 1.0.6 +VER = 1.1.2
-THISAPP = usb_modeswitch-$(VER) +THISAPP = usb-modeswitch-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7aca4741af6c409ef3ff09f60859a8f8 +$(DL_FILE)_MD5 = 071cb300d00938bfe20025c654303d92
install : $(TARGET)
@@ -73,6 +73,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && make clean cd $(DIR_APP) && make all $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install - mv -f /etc/usb_modeswitch.conf /etc/usb_modeswitch.conf.example + cp -f $(DIR_APP)/usb_modeswitch.setup /etc/usb_modeswitch.setup.example @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/v4l-dvb b/lfs/v4l-dvb index bdc8ffe..9e3d405 100644 --- a/lfs/v4l-dvb +++ b/lfs/v4l-dvb @@ -30,7 +30,7 @@ else VERSUFIX=ipfire endif
-VER = 690055993011 +VER = b576509ea6d2
THISAPP = v4l-dvb-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -47,7 +47,8 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 830f055b637afbb4f131246c313a6e05 +$(DL_FILE)_MD5 = f81cc6a324ab53f04f70084f676276ec + install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects)) diff --git a/lfs/vdradmin b/lfs/vdradmin index 901e254..43c2a08 100644 --- a/lfs/vdradmin +++ b/lfs/vdradmin @@ -25,7 +25,7 @@
include Config
-VER = 3.6.5 +VER = 3.6.7
THISAPP = vdradmin-am-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -33,7 +33,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = vdradmin -PAK_VER = 2 +PAK_VER = 3
DEPS = "perl-gettext vdr"
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 34ac04af6d1b0495f10cd06e85abb990 +$(DL_FILE)_MD5 = 8b1b2f8bbff26cbb47e79d5b55dbd3c1
install : $(TARGET)
@@ -83,5 +83,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && ./install-ipfire.sh install -v -m 644 $(DIR_SRC)/config/vdradmin/vdradmind.conf \ /etc/vdradmin/vdradmind.conf + mkdir /var/log/vdradmin + mkdir /var/run/vdradmin @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/watchdog b/lfs/watchdog index fbdb82a..8058c8c 100644 --- a/lfs/watchdog +++ b/lfs/watchdog @@ -24,7 +24,7 @@
include Config
-VER = 5.6 +VER = 5.9
THISAPP = watchdog-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = watchdog -PAK_VER = 2 +PAK_VER = 3
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6df285569dd1d85528b983c98c9b2b7c +$(DL_FILE)_MD5 = d7cae3c9829f5d9a680764f314234867
install : $(TARGET)
diff --git a/lfs/x11libs b/lfs/x11libs deleted file mode 100644 index 09fea90..0000000 --- a/lfs/x11libs +++ /dev/null @@ -1,97 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = core28-r1 - -THISAPP = x11libs-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = x11libs -PAK_VER = 1 -DEPS = "" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 4bd8907ab971fb8efacec575492d504b - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - export XORG_PREFIX="/usr" - export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc --mandir=$XORG_PREFIX/share/man --localstatedir=/var" - cd $(DIR_APP) && ./install-proto.sh - cd $(DIR_APP) && ./install-util.sh - cd $(DIR_APP) && tar xvjf libXau-1.0.4.tar.bz2 && cd libXau-1.0.4 && ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --localstatedir=/var && make && make install - cd $(DIR_APP) && tar xvjf libXdmcp-1.0.2.tar.bz2 && cd libXdmcp-1.0.2 && ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --localstatedir=/var && make && make install - cd $(DIR_APP) && tar xvjf xcb-proto-1.1.tar.bz2 && cd xcb-proto-1.1 && ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --localstatedir=/var && make && make install && install -dv -m755 /usr/share/doc/xcb-proto-1.1 && install -v -m644 doc/* /usr/share/doc/xcb-proto-1.1 - ## libpthread-stubs - cd $(DIR_APP) && tar xvjf libpthread-stubs-0.1.tar.bz2 && cd libpthread-stubs-0.1 && ./configure --prefix=/usr && make && make install - cd $(DIR_APP) && tar xvjf libxcb-1.1.tar.bz2 && cd libxcb-1.1 && ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --localstatedir=/var --docdir='${datadir}'/doc/libxcb-1.1 && make && make install && export LIBXCB_ALLOW_SLOPPY_LOCK=1 - ## gperf - cd $(DIR_APP) && tar xvzf gperf-3.0.3.tar.gz && cd gperf-3.0.3 && ./configure --prefix=/usr && make && makeinfo -o doc/gperf.txt --plaintext doc/gperf.texi && make install && install -v -m755 -d /usr/share/doc/gperf-3.0.3 && install -m644 -v doc/gperf.{dvi,ps,pdf,txt} /usr/share/doc/gperf-3.0.3 - cd $(DIR_APP) && tar xvjf xcb-util-0.3.0.tar.bz2 && cd xcb-util-0.3.0 && ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --localstatedir=/var && make && make install - cd $(DIR_APP) && ./install-lib.sh - cd $(DIR_APP) && tar xvzf bin86-0.16.17.tar.gz && cd bin86-0.16.17 && make && make install - cd $(DIR_APP) && tar xvzf Dev86src-0.16.17.tar.gz && cd dev86-0.16.17 && make && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) - diff --git a/lfs/xen b/lfs/xen deleted file mode 100644 index 943a775..0000000 --- a/lfs/xen +++ /dev/null @@ -1,95 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 3.4.0 - -THISAPP = xen-$(VER) -DL_FILE = $(THISAPP)-2.tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = xen -PAK_VER = 1 -DEPS = "x11libs" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = f112adc73ba66c4cd89e4634a4d84b48 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - - # remove this ugly co_assignment error - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/xen-co_assignment.patch - - # removes cpu freq bug. cpu stays at lowest freq - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/xen-cpufreq.patch - - # adjust config file of the daemon - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/xend-config.patch - - cd $(DIR_APP) && make xen && make install-xen - cd $(DIR_APP) && make tools && make install-tools - - # sometimes the auto directory is not created - mkdir -p /etc/xen/auto - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/make.sh b/make.sh index 7121005..15b049e 100755 --- a/make.sh +++ b/make.sh @@ -24,14 +24,15 @@
NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.6" # Version number -CORE="37" # Core Level (Filename) -PAKFIRE_CORE="36" # Core Level (PAKFIRE) +VERSION="2.7" # Version number +CORE="40" # Core Level (Filename) +PAKFIRE_CORE="39" # Core Level (PAKFIRE) GIT_BRANCH=`git status | head -n1 | cut -d" " -f4` # Git Branch SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir NICE=10 # Nice level MAX_RETRIES=1 # prefetch/check loop +BUILD_IMAGES=1 # Build USB, Flash and Xen Images KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` MACHINE=`uname -m` GIT_TAG=$(git tag | tail -1) # Git Tag @@ -336,7 +337,6 @@ buildipfire() { ipfiremake libusb ipfiremake libpcap ipfiremake ppp - ipfiremake rp-pppoe ipfiremake pptp ipfiremake unzip ipfiremake which @@ -344,26 +344,32 @@ buildipfire() { ipfiremake linux-firmware ipfiremake linux XEN=1 ipfiremake kqemu XEN=1 - #ipfiremake kvm-kmod XEN=1 ipfiremake v4l-dvb XEN=1 ipfiremake madwifi XEN=1 - #ipfiremake alsa XEN=1 KMOD=1 + ipfiremake mISDN XEN=1 ipfiremake dahdi XEN=1 KMOD=1 -# ipfiremake openswan XEN=1 KMOD=1 - #ipfiremake mISDN XEN=1 - #ipfiremake compat-wireless XEN=1 ipfiremake cryptodev XEN=1 + ipfiremake compat-wireless XEN=1 + ipfiremake r8169 XEN=1 + ipfiremake r8168 XEN=1 + ipfiremake r8101 XEN=1 + ipfiremake e1000 XEN=1 + ipfiremake e1000e XEN=1 ipfiremake linux ipfiremake kqemu - #ipfiremake kvm-kmod + ipfiremake kvm-kmod ipfiremake v4l-dvb ipfiremake madwifi ipfiremake alsa KMOD=1 + ipfiremake mISDN ipfiremake dahdi KMOD=1 -# ipfiremake openswan KMOD=1 - #ipfiremake mISDN - #ipfiremake compat-wireless ipfiremake cryptodev + ipfiremake compat-wireless + ipfiremake r8169 + ipfiremake r8168 + ipfiremake r8101 + ipfiremake e1000 + ipfiremake e1000e ipfiremake pkg-config ipfiremake linux-atm ipfiremake cpio @@ -538,6 +544,7 @@ buildipfire() { ipfiremake ipfireseeder ipfiremake rsync ipfiremake tcpwrapper + ipfiremake libevent ipfiremake portmap ipfiremake nfs ipfiremake nmap @@ -547,7 +554,6 @@ buildipfire() { ipfiremake tripwire ipfiremake sysstat ipfiremake vsftpd -# ipfiremake openswan ipfiremake strongswan ipfiremake lsof ipfiremake centerim @@ -557,7 +563,6 @@ buildipfire() { ipfiremake liboping ipfiremake collectd ipfiremake lcd4linux - ipfiremake tcptrack ipfiremake teamspeak ipfiremake elinks ipfiremake igmpproxy @@ -588,7 +593,6 @@ buildipfire() { ipfiremake git ipfiremake squidclamav ipfiremake bc - ipfiremake esniper ipfiremake vnstat ipfiremake vnstati ipfiremake iw @@ -606,7 +610,6 @@ buildipfire() { ipfiremake netcat ipfiremake 7zip ipfiremake lynis - #ipfiremake cryptsetup ipfiremake splix ipfiremake streamripper ipfiremake sshfs @@ -616,15 +619,13 @@ buildipfire() { ipfiremake sslh ipfiremake perl-gettext ipfiremake vdradmin -# ipfiremake x11libs -# ipfiremake xen ipfiremake miau ipfiremake netsnmpd ipfiremake perl-DBI ipfiremake perl-DBD-mysql ipfiremake cacti ipfiremake icecc - ipfiremake open-vm-tools + ipfiremake openvmtools ipfiremake nagiosql ipfiremake iftop ipfiremake motion @@ -639,6 +640,9 @@ buildipfire() { ipfiremake zerofree ipfiremake mdadm ipfiremake eject + ipfiremake pound + ipfiremake minicom + ipfiremake ddrescue echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild echo >> $BASEDIR/build/var/ipfire/firebuild @@ -648,7 +652,7 @@ buildipfire() { echo >> $BASEDIR/build/var/ipfire/firebuild cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine - if [ "$GIT_BRANCH" = "next" ]; then + if [ "$GIT_BRANCH" = "master" ]; then echo "$NAME $VERSION - (Development Build: $GIT_LASTCOMMIT)" > $BASEDIR/build/etc/system-release else echo "$NAME $VERSION - $GIT_BRANCH" > $BASEDIR/build/etc/system-release @@ -724,7 +728,7 @@ buildpackages() { ipfiremake cdrom ED=$IPFVER
# Check if there is a loop device for building in virtual environments - if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then + if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then ipfiremake usb-stick ED=$IPFVER ipfiremake flash-images ED=$IPFVER fi @@ -734,7 +738,7 @@ buildpackages() { ipfirepackages
# Check if there is a loop device for building in virtual environments - if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then + if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then cp -f $BASEDIR/packages/linux-xen-*.ipfire $LFS/install/packages/ cp -f $BASEDIR/packages/meta-linux-xen $LFS/install/packages/ ipfiremake xen-image ED=$IPFVER diff --git a/src/atl1c/Makefile b/src/atl1c/Makefile deleted file mode 100644 index ee84883..0000000 --- a/src/atl1c/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -KSRC ?= /lib/modules/$(shell uname -r)/build - -obj-m += atl1c.o -atl1c-objs += atl1c_main.o atl1c_hw.o atl1c_ethtool.o - -all: - $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules - -clean: - rm -rf *.ko *.mod.* *.o .*.cmd .tmp_versions Module.symvers - -distclean: clean - rm -rf cscope.* *~ diff --git a/src/atl1c/atl1c.h b/src/atl1c/atl1c.h deleted file mode 100644 index 2a1120a..0000000 --- a/src/atl1c/atl1c.h +++ /dev/null @@ -1,605 +0,0 @@ -/* - * Copyright(c) 2008 - 2009 Atheros Corporation. All rights reserved. - * - * Derived from Intel e1000 driver - * Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef _ATL1C_H_ -#define _ATL1C_H_ - -#include <linux/version.h> -#include <linux/init.h> -#include <linux/types.h> -#include <linux/errno.h> -#include <linux/module.h> -#include <linux/pci.h> -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/ioport.h> -#include <linux/slab.h> -#include <linux/list.h> -#include <linux/delay.h> -#include <linux/sched.h> -#include <linux/in.h> -#include <linux/ip.h> -#include <linux/ipv6.h> -#include <linux/udp.h> -#include <linux/mii.h> -#include <linux/io.h> -#include <linux/vmalloc.h> -#include <linux/pagemap.h> -#include <linux/tcp.h> -#include <linux/ethtool.h> -#include <linux/if_vlan.h> -#include <linux/workqueue.h> -#include <net/checksum.h> -#include <net/ip6_checksum.h> - -#include "atl1c_hw.h" - -/* Wake Up Filter Control */ -#define AT_WUFC_LNKC 0x00000001 /* Link Status Change Wakeup Enable */ -#define AT_WUFC_MAG 0x00000002 /* Magic Packet Wakeup Enable */ -#define AT_WUFC_EX 0x00000004 /* Directed Exact Wakeup Enable */ -#define AT_WUFC_MC 0x00000008 /* Multicast Wakeup Enable */ -#define AT_WUFC_BC 0x00000010 /* Broadcast Wakeup Enable */ - -#define AT_VLAN_TO_TAG(_vlan, _tag) \ - _tag = ((((_vlan) >> 8) & 0xFF) |\ - (((_vlan) & 0xFF) << 8)) - -#define AT_TAG_TO_VLAN(_tag, _vlan) \ - _vlan = ((((_tag) >> 8) & 0xFF) |\ - (((_tag) & 0xFF) << 8)) - -#define SPEED_0 0xffff -#define HALF_DUPLEX 1 -#define FULL_DUPLEX 2 - -#define AT_RX_BUF_SIZE (ETH_FRAME_LEN + VLAN_HLEN + ETH_FCS_LEN) -#define MAX_JUMBO_FRAME_SIZE (9*1024) -#define MAX_TX_OFFLOAD_THRESH (9*1024) - -#define AT_MAX_RECEIVE_QUEUE 4 -#define AT_DEF_RECEIVE_QUEUE 1 -#define AT_MAX_TRANSMIT_QUEUE 2 - -#define AT_DMA_HI_ADDR_MASK 0xffffffff00000000ULL -#define AT_DMA_LO_ADDR_MASK 0x00000000ffffffffULL - -#define AT_TX_WATCHDOG (5 * HZ) -#define AT_MAX_INT_WORK 5 -#define AT_TWSI_EEPROM_TIMEOUT 100 -#define AT_HW_MAX_IDLE_DELAY 10 -#define AT_SUSPEND_LINK_TIMEOUT 28 - -#define AT_ASPM_L0S_TIMER 6 -#define AT_ASPM_L1_TIMER 12 - -#define ATL1C_PCIE_L0S_L1_DISABLE 0x01 -#define ATL1C_PCIE_PHY_RESET 0x02 - -#define ATL1C_ASPM_L0s_ENABLE 0x0001 -#define ATL1C_ASPM_L1_ENABLE 0x0002 - -#define AT_REGS_LEN (75 * sizeof(u32)) -#define AT_EEPROM_LEN 512 - -#define ATL1C_GET_DESC(R, i, type) (&(((type *)((R)->desc))[i])) -#define ATL1C_RFD_DESC(R, i) ATL1C_GET_DESC(R, i, struct atl1c_rx_free_desc) -#define ATL1C_TPD_DESC(R, i) ATL1C_GET_DESC(R, i, struct atl1c_tpd_desc) -#define ATL1C_RRD_DESC(R, i) ATL1C_GET_DESC(R, i, struct atl1c_recv_ret_status) - -/* tpd word 1 bit 0:7 General Checksum task offload */ -#define TPD_L4HDR_OFFSET_MASK 0x00FF -#define TPD_L4HDR_OFFSET_SHIFT 0 - -/* tpd word 1 bit 0:7 Large Send task offload (IPv4/IPV6) */ -#define TPD_TCPHDR_OFFSET_MASK 0x00FF -#define TPD_TCPHDR_OFFSET_SHIFT 0 - -/* tpd word 1 bit 0:7 Custom Checksum task offload */ -#define TPD_PLOADOFFSET_MASK 0x00FF -#define TPD_PLOADOFFSET_SHIFT 0 - -/* tpd word 1 bit 8:17 */ -#define TPD_CCSUM_EN_MASK 0x0001 -#define TPD_CCSUM_EN_SHIFT 8 -#define TPD_IP_CSUM_MASK 0x0001 -#define TPD_IP_CSUM_SHIFT 9 -#define TPD_TCP_CSUM_MASK 0x0001 -#define TPD_TCP_CSUM_SHIFT 10 -#define TPD_UDP_CSUM_MASK 0x0001 -#define TPD_UDP_CSUM_SHIFT 11 -#define TPD_LSO_EN_MASK 0x0001 /* TCP Large Send Offload */ -#define TPD_LSO_EN_SHIFT 12 -#define TPD_LSO_VER_MASK 0x0001 -#define TPD_LSO_VER_SHIFT 13 /* 0 : ipv4; 1 : ipv4/ipv6 */ -#define TPD_CON_VTAG_MASK 0x0001 -#define TPD_CON_VTAG_SHIFT 14 -#define TPD_INS_VTAG_MASK 0x0001 -#define TPD_INS_VTAG_SHIFT 15 -#define TPD_IPV4_PACKET_MASK 0x0001 /* valid when LSO VER is 1 */ -#define TPD_IPV4_PACKET_SHIFT 16 -#define TPD_ETH_TYPE_MASK 0x0001 -#define TPD_ETH_TYPE_SHIFT 17 /* 0 : 802.3 frame; 1 : Ethernet */ - -/* tpd word 18:25 Custom Checksum task offload */ -#define TPD_CCSUM_OFFSET_MASK 0x00FF -#define TPD_CCSUM_OFFSET_SHIFT 18 -#define TPD_CCSUM_EPAD_MASK 0x0001 -#define TPD_CCSUM_EPAD_SHIFT 30 - -/* tpd word 18:30 Large Send task offload (IPv4/IPV6) */ -#define TPD_MSS_MASK 0x1FFF -#define TPD_MSS_SHIFT 18 - -#define TPD_EOP_MASK 0x0001 -#define TPD_EOP_SHIFT 31 - -struct atl1c_tpd_desc { - __le16 buffer_len; /* include 4-byte CRC */ - __le16 vlan_tag; - __le32 word1; - __le64 buffer_addr; -}; - -struct atl1c_tpd_ext_desc { - u32 reservd_0; - __le32 word1; - __le32 pkt_len; - u32 reservd_1; -}; -/* rrs word 0 bit 0:31 */ -#define RRS_RX_CSUM_MASK 0xFFFF -#define RRS_RX_CSUM_SHIFT 0 -#define RRS_RX_RFD_CNT_MASK 0x000F -#define RRS_RX_RFD_CNT_SHIFT 16 -#define RRS_RX_RFD_INDEX_MASK 0x0FFF -#define RRS_RX_RFD_INDEX_SHIFT 20 - -/* rrs flag bit 0:16 */ -#define RRS_HEAD_LEN_MASK 0x00FF -#define RRS_HEAD_LEN_SHIFT 0 -#define RRS_HDS_TYPE_MASK 0x0003 -#define RRS_HDS_TYPE_SHIFT 8 -#define RRS_CPU_NUM_MASK 0x0003 -#define RRS_CPU_NUM_SHIFT 10 -#define RRS_HASH_FLG_MASK 0x000F -#define RRS_HASH_FLG_SHIFT 12 - -#define RRS_HDS_TYPE_HEAD 1 -#define RRS_HDS_TYPE_DATA 2 - -#define RRS_IS_NO_HDS_TYPE(flag) \ - ((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == 0) - -#define RRS_IS_HDS_HEAD(flag) \ - ((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == \ - RRS_HDS_TYPE_HEAD) - -#define RRS_IS_HDS_DATA(flag) \ - ((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == \ - RRS_HDS_TYPE_DATA) - -/* rrs word 3 bit 0:31 */ -#define RRS_PKT_SIZE_MASK 0x3FFF -#define RRS_PKT_SIZE_SHIFT 0 -#define RRS_ERR_L4_CSUM_MASK 0x0001 -#define RRS_ERR_L4_CSUM_SHIFT 14 -#define RRS_ERR_IP_CSUM_MASK 0x0001 -#define RRS_ERR_IP_CSUM_SHIFT 15 -#define RRS_VLAN_INS_MASK 0x0001 -#define RRS_VLAN_INS_SHIFT 16 -#define RRS_PROT_ID_MASK 0x0007 -#define RRS_PROT_ID_SHIFT 17 -#define RRS_RX_ERR_SUM_MASK 0x0001 -#define RRS_RX_ERR_SUM_SHIFT 20 -#define RRS_RX_ERR_CRC_MASK 0x0001 -#define RRS_RX_ERR_CRC_SHIFT 21 -#define RRS_RX_ERR_FAE_MASK 0x0001 -#define RRS_RX_ERR_FAE_SHIFT 22 -#define RRS_RX_ERR_TRUNC_MASK 0x0001 -#define RRS_RX_ERR_TRUNC_SHIFT 23 -#define RRS_RX_ERR_RUNC_MASK 0x0001 -#define RRS_RX_ERR_RUNC_SHIFT 24 -#define RRS_RX_ERR_ICMP_MASK 0x0001 -#define RRS_RX_ERR_ICMP_SHIFT 25 -#define RRS_PACKET_BCAST_MASK 0x0001 -#define RRS_PACKET_BCAST_SHIFT 26 -#define RRS_PACKET_MCAST_MASK 0x0001 -#define RRS_PACKET_MCAST_SHIFT 27 -#define RRS_PACKET_TYPE_MASK 0x0001 -#define RRS_PACKET_TYPE_SHIFT 28 -#define RRS_FIFO_FULL_MASK 0x0001 -#define RRS_FIFO_FULL_SHIFT 29 -#define RRS_802_3_LEN_ERR_MASK 0x0001 -#define RRS_802_3_LEN_ERR_SHIFT 30 -#define RRS_RXD_UPDATED_MASK 0x0001 -#define RRS_RXD_UPDATED_SHIFT 31 - -#define RRS_ERR_L4_CSUM 0x00004000 -#define RRS_ERR_IP_CSUM 0x00008000 -#define RRS_VLAN_INS 0x00010000 -#define RRS_RX_ERR_SUM 0x00100000 -#define RRS_RX_ERR_CRC 0x00200000 -#define RRS_802_3_LEN_ERR 0x40000000 -#define RRS_RXD_UPDATED 0x80000000 - -#define RRS_PACKET_TYPE_802_3 1 -#define RRS_PACKET_TYPE_ETH 0 -#define RRS_PACKET_IS_ETH(word) \ - ((((word) >> RRS_PACKET_TYPE_SHIFT) & RRS_PACKET_TYPE_MASK) == \ - RRS_PACKET_TYPE_ETH) -#define RRS_RXD_IS_VALID(word) \ - ((((word) >> RRS_RXD_UPDATED_SHIFT) & RRS_RXD_UPDATED_MASK) == 1) - -#define RRS_PACKET_PROT_IS_IPV4_ONLY(word) \ - ((((word) >> RRS_PROT_ID_SHIFT) & RRS_PROT_ID_MASK) == 1) -#define RRS_PACKET_PROT_IS_IPV6_ONLY(word) \ - ((((word) >> RRS_PROT_ID_SHIFT) & RRS_PROT_ID_MASK) == 6) - -struct atl1c_recv_ret_status { - __le32 word0; - __le32 rss_hash; - __le16 vlan_tag; - __le16 flag; - __le32 word3; -}; - -/* RFD desciptor */ -struct atl1c_rx_free_desc { - __le64 buffer_addr; -}; - -/* DMA Order Settings */ -enum atl1c_dma_order { - atl1c_dma_ord_in = 1, - atl1c_dma_ord_enh = 2, - atl1c_dma_ord_out = 4 -}; - -enum atl1c_dma_rcb { - atl1c_rcb_64 = 0, - atl1c_rcb_128 = 1 -}; - -enum atl1c_mac_speed { - atl1c_mac_speed_0 = 0, - atl1c_mac_speed_10_100 = 1, - atl1c_mac_speed_1000 = 2 -}; - -enum atl1c_dma_req_block { - atl1c_dma_req_128 = 0, - atl1c_dma_req_256 = 1, - atl1c_dma_req_512 = 2, - atl1c_dma_req_1024 = 3, - atl1c_dma_req_2048 = 4, - atl1c_dma_req_4096 = 5 -}; - -enum atl1c_rss_mode { - atl1c_rss_mode_disable = 0, - atl1c_rss_sig_que = 1, - atl1c_rss_mul_que_sig_int = 2, - atl1c_rss_mul_que_mul_int = 4, -}; - -enum atl1c_rss_type { - atl1c_rss_disable = 0, - atl1c_rss_ipv4 = 1, - atl1c_rss_ipv4_tcp = 2, - atl1c_rss_ipv6 = 4, - atl1c_rss_ipv6_tcp = 8 -}; - -enum atl1c_nic_type { - athr_l1c = 0, - athr_l2c = 1, -}; - -enum atl1c_trans_queue { - atl1c_trans_normal = 0, - atl1c_trans_high = 1 -}; - -struct atl1c_hw_stats { - /* rx */ - unsigned long rx_ok; /* The number of good packet received. */ - unsigned long rx_bcast; /* The number of good broadcast packet received. */ - unsigned long rx_mcast; /* The number of good multicast packet received. */ - unsigned long rx_pause; /* The number of Pause packet received. */ - unsigned long rx_ctrl; /* The number of Control packet received other than Pause frame. */ - unsigned long rx_fcs_err; /* The number of packets with bad FCS. */ - unsigned long rx_len_err; /* The number of packets with mismatch of length field and actual size. */ - unsigned long rx_byte_cnt; /* The number of bytes of good packet received. FCS is NOT included. */ - unsigned long rx_runt; /* The number of packets received that are less than 64 byte long and with good FCS. */ - unsigned long rx_frag; /* The number of packets received that are less than 64 byte long and with bad FCS. */ - unsigned long rx_sz_64; /* The number of good and bad packets received that are 64 byte long. */ - unsigned long rx_sz_65_127; /* The number of good and bad packets received that are between 65 and 127-byte long. */ - unsigned long rx_sz_128_255; /* The number of good and bad packets received that are between 128 and 255-byte long. */ - unsigned long rx_sz_256_511; /* The number of good and bad packets received that are between 256 and 511-byte long. */ - unsigned long rx_sz_512_1023; /* The number of good and bad packets received that are between 512 and 1023-byte long. */ - unsigned long rx_sz_1024_1518; /* The number of good and bad packets received that are between 1024 and 1518-byte long. */ - unsigned long rx_sz_1519_max; /* The number of good and bad packets received that are between 1519-byte and MTU. */ - unsigned long rx_sz_ov; /* The number of good and bad packets received that are more than MTU size truncated by Selene. */ - unsigned long rx_rxf_ov; /* The number of frame dropped due to occurrence of RX FIFO overflow. */ - unsigned long rx_rrd_ov; /* The number of frame dropped due to occurrence of RRD overflow. */ - unsigned long rx_align_err; /* Alignment Error */ - unsigned long rx_bcast_byte_cnt; /* The byte count of broadcast packet received, excluding FCS. */ - unsigned long rx_mcast_byte_cnt; /* The byte count of multicast packet received, excluding FCS. */ - unsigned long rx_err_addr; /* The number of packets dropped due to address filtering. */ - - /* tx */ - unsigned long tx_ok; /* The number of good packet transmitted. */ - unsigned long tx_bcast; /* The number of good broadcast packet transmitted. */ - unsigned long tx_mcast; /* The number of good multicast packet transmitted. */ - unsigned long tx_pause; /* The number of Pause packet transmitted. */ - unsigned long tx_exc_defer; /* The number of packets transmitted with excessive deferral. */ - unsigned long tx_ctrl; /* The number of packets transmitted is a control frame, excluding Pause frame. */ - unsigned long tx_defer; /* The number of packets transmitted that is deferred. */ - unsigned long tx_byte_cnt; /* The number of bytes of data transmitted. FCS is NOT included. */ - unsigned long tx_sz_64; /* The number of good and bad packets transmitted that are 64 byte long. */ - unsigned long tx_sz_65_127; /* The number of good and bad packets transmitted that are between 65 and 127-byte long. */ - unsigned long tx_sz_128_255; /* The number of good and bad packets transmitted that are between 128 and 255-byte long. */ - unsigned long tx_sz_256_511; /* The number of good and bad packets transmitted that are between 256 and 511-byte long. */ - unsigned long tx_sz_512_1023; /* The number of good and bad packets transmitted that are between 512 and 1023-byte long. */ - unsigned long tx_sz_1024_1518; /* The number of good and bad packets transmitted that are between 1024 and 1518-byte long. */ - unsigned long tx_sz_1519_max; /* The number of good and bad packets transmitted that are between 1519-byte and MTU. */ - unsigned long tx_1_col; /* The number of packets subsequently transmitted successfully with a single prior collision. */ - unsigned long tx_2_col; /* The number of packets subsequently transmitted successfully with multiple prior collisions. */ - unsigned long tx_late_col; /* The number of packets transmitted with late collisions. */ - unsigned long tx_abort_col; /* The number of transmit packets aborted due to excessive collisions. */ - unsigned long tx_underrun; /* The number of transmit packets aborted due to transmit FIFO underrun, or TRD FIFO underrun */ - unsigned long tx_rd_eop; /* The number of times that read beyond the EOP into the next frame area when TRD was not written timely */ - unsigned long tx_len_err; /* The number of transmit packets with length field does NOT match the actual frame size. */ - unsigned long tx_trunc; /* The number of transmit packets truncated due to size exceeding MTU. */ - unsigned long tx_bcast_byte; /* The byte count of broadcast packet transmitted, excluding FCS. */ - unsigned long tx_mcast_byte; /* The byte count of multicast packet transmitted, excluding FCS. */ -}; - -struct atl1c_hw { - u8 __iomem *hw_addr; /* inner register address */ - struct atl1c_adapter *adapter; - enum atl1c_nic_type nic_type; - enum atl1c_dma_order dma_order; - enum atl1c_dma_rcb rcb_value; - enum atl1c_dma_req_block dmar_block; - enum atl1c_dma_req_block dmaw_block; - - u16 device_id; - u16 vendor_id; - u16 subsystem_id; - u16 subsystem_vendor_id; - u8 revision_id; - - u32 intr_mask; - u8 dmaw_dly_cnt; - u8 dmar_dly_cnt; - - u8 preamble_len; - u16 max_frame_size; - u16 min_frame_size; - - enum atl1c_mac_speed mac_speed; - bool mac_duplex; - bool hibernate; - u16 media_type; -#define MEDIA_TYPE_AUTO_SENSOR 0 -#define MEDIA_TYPE_100M_FULL 1 -#define MEDIA_TYPE_100M_HALF 2 -#define MEDIA_TYPE_10M_FULL 3 -#define MEDIA_TYPE_10M_HALF 4 - - u16 autoneg_advertised; - u16 mii_autoneg_adv_reg; - u16 mii_1000t_ctrl_reg; - - u16 tx_imt; /* TX Interrupt Moderator timer ( 2us resolution) */ - u16 rx_imt; /* RX Interrupt Moderator timer ( 2us resolution) */ - u16 ict; /* Interrupt Clear timer (2us resolution) */ - u16 ctrl_flags; -#define ATL1C_INTR_CLEAR_ON_READ 0x0001 -#define ATL1C_INTR_MODRT_ENABLE 0x0002 -#define ATL1C_CMB_ENABLE 0x0004 -#define ATL1C_SMB_ENABLE 0x0010 -#define ATL1C_TXQ_MODE_ENHANCE 0x0020 -#define ATL1C_RX_IPV6_CHKSUM 0x0040 -#define ATL1C_ASPM_L0S_SUPPORT 0x0080 -#define ATL1C_ASPM_L1_SUPPORT 0x0100 -#define ATL1C_ASPM_CTRL_MON 0x0200 -#define ATL1C_HIB_DISABLE 0x0400 -#define ATL1C_LINK_CAP_1000M 0x0800 -#define ATL1C_FPGA_VERSION 0x8000 - u16 cmb_tpd; - u16 cmb_rrd; - u16 cmb_rx_timer; /* 2us resolution */ - u16 cmb_tx_timer; - u32 smb_timer; - - u16 rrd_thresh; /* Threshold of number of RRD produced to trigger - interrupt request */ - u16 tpd_thresh; - u8 tpd_burst; /* Number of TPD to prefetch in cache-aligned burst. */ - u8 rfd_burst; - enum atl1c_rss_type rss_type; - enum atl1c_rss_mode rss_mode; - u8 rss_hash_bits; - u32 base_cpu; - u32 indirect_tab; - u8 mac_addr[ETH_ALEN]; - u8 perm_mac_addr[ETH_ALEN]; - - bool phy_configured; - bool re_autoneg; - bool emi_ca; -}; - -/* - * atl1c_ring_header represents a single, contiguous block of DMA space - * mapped for the three descriptor rings (tpd, rfd, rrd) and the two - * message blocks (cmb, smb) described below - */ -struct atl1c_ring_header { - void *desc; /* virtual address */ - dma_addr_t dma; /* physical address*/ - unsigned int size; /* length in bytes */ -}; - -/* - * atl1c_buffer is wrapper around a pointer to a socket buffer - * so a DMA handle can be stored along with the skb - */ -struct atl1c_buffer { - struct sk_buff *skb; /* socket buffer */ - u16 length; /* rx buffer length */ - u16 state; /* state of buffer */ -#define ATL1_BUFFER_FREE 0 -#define ATL1_BUFFER_BUSY 1 - dma_addr_t dma; -}; - -/* transimit packet descriptor (tpd) ring */ -struct atl1c_tpd_ring { - void *desc; /* descriptor ring virtual address */ - dma_addr_t dma; /* descriptor ring physical address */ - u16 size; /* descriptor ring length in bytes */ - u16 count; /* number of descriptors in the ring */ - u16 next_to_use; /* this is protectd by adapter->tx_lock */ - atomic_t next_to_clean; - struct atl1c_buffer *buffer_info; -}; - -/* receive free descriptor (rfd) ring */ -struct atl1c_rfd_ring { - void *desc; /* descriptor ring virtual address */ - dma_addr_t dma; /* descriptor ring physical address */ - u16 size; /* descriptor ring length in bytes */ - u16 count; /* number of descriptors in the ring */ - u16 next_to_use; - u16 next_to_clean; - struct atl1c_buffer *buffer_info; -}; - -/* receive return desciptor (rrd) ring */ -struct atl1c_rrd_ring { - void *desc; /* descriptor ring virtual address */ - dma_addr_t dma; /* descriptor ring physical address */ - u16 size; /* descriptor ring length in bytes */ - u16 count; /* number of descriptors in the ring */ - u16 next_to_use; - u16 next_to_clean; -}; - -struct atl1c_cmb { - void *cmb; - dma_addr_t dma; -}; - -struct atl1c_smb { - void *smb; - dma_addr_t dma; -}; - -/* board specific private data structure */ -struct atl1c_adapter { - struct net_device *netdev; - struct pci_dev *pdev; - struct vlan_group *vlgrp; - struct napi_struct napi; - struct atl1c_hw hw; - struct atl1c_hw_stats hw_stats; - struct net_device_stats net_stats; - struct mii_if_info mii; /* MII interface info */ - u16 rx_buffer_len; - - unsigned long flags; -#define __AT_TESTING 0x0001 -#define __AT_RESETTING 0x0002 -#define __AT_DOWN 0x0003 - u32 msg_enable; - - bool have_msi; - u32 wol; - u16 link_speed; - u16 link_duplex; - - spinlock_t mdio_lock; - spinlock_t tx_lock; - atomic_t irq_sem; - - struct work_struct reset_task; - struct work_struct link_chg_task; - struct timer_list watchdog_timer; - struct timer_list phy_config_timer; - - /* All Descriptor memory */ - struct atl1c_ring_header ring_header; - struct atl1c_tpd_ring tpd_ring[AT_MAX_TRANSMIT_QUEUE]; - struct atl1c_rfd_ring rfd_ring[AT_MAX_RECEIVE_QUEUE]; - struct atl1c_rrd_ring rrd_ring[AT_MAX_RECEIVE_QUEUE]; - struct atl1c_cmb cmb; - struct atl1c_smb smb; - int num_rx_queues; - u32 bd_number; /* board number;*/ -}; - -#define AT_WRITE_REG(a, reg, value) ( \ - writel((value), ((a)->hw_addr + reg))) - -#define AT_WRITE_FLUSH(a) (\ - readl((a)->hw_addr)) - -#define AT_READ_REG(a, reg, pdata) do { \ - if (unlikely((a)->hibernate)) { \ - readl((a)->hw_addr + reg); \ - *(u32 *)pdata = readl((a)->hw_addr + reg); \ - } else { \ - *(u32 *)pdata = readl((a)->hw_addr + reg); \ - } \ - } while (0) - -#define AT_WRITE_REGB(a, reg, value) (\ - writeb((value), ((a)->hw_addr + reg))) - -#define AT_READ_REGB(a, reg) (\ - readb((a)->hw_addr + reg)) - -#define AT_WRITE_REGW(a, reg, value) (\ - writew((value), ((a)->hw_addr + reg))) - -#define AT_READ_REGW(a, reg) (\ - readw((a)->hw_addr + reg)) - -#define AT_WRITE_REG_ARRAY(a, reg, offset, value) ( \ - writel((value), (((a)->hw_addr + reg) + ((offset) << 2)))) - -#define AT_READ_REG_ARRAY(a, reg, offset) ( \ - readl(((a)->hw_addr + reg) + ((offset) << 2))) - -extern char atl1c_driver_name[]; -extern char atl1c_driver_version[]; - -extern int atl1c_up(struct atl1c_adapter *adapter); -extern void atl1c_down(struct atl1c_adapter *adapter); -extern void atl1c_reinit_locked(struct atl1c_adapter *adapter); -extern s32 atl1c_reset_hw(struct atl1c_hw *hw); -extern void atl1c_set_ethtool_ops(struct net_device *netdev); -#endif /* _ATL1C_H_ */ diff --git a/src/atl1c/atl1c_ethtool.c b/src/atl1c/atl1c_ethtool.c deleted file mode 100644 index 607007d..0000000 --- a/src/atl1c/atl1c_ethtool.c +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Copyright(c) 2009 - 2009 Atheros Corporation. All rights reserved. - * - * Derived from Intel e1000 driver - * Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - */ - -#include <linux/netdevice.h> -#include <linux/ethtool.h> - -#include "atl1c.h" - -static int atl1c_get_settings(struct net_device *netdev, - struct ethtool_cmd *ecmd) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct atl1c_hw *hw = &adapter->hw; - - ecmd->supported = (SUPPORTED_10baseT_Half | - SUPPORTED_10baseT_Full | - SUPPORTED_100baseT_Half | - SUPPORTED_100baseT_Full | - SUPPORTED_Autoneg | - SUPPORTED_TP); - if (hw->ctrl_flags & ATL1C_LINK_CAP_1000M) - ecmd->supported |= SUPPORTED_1000baseT_Full; - - ecmd->advertising = ADVERTISED_TP; - - ecmd->advertising |= hw->autoneg_advertised; - - ecmd->port = PORT_TP; - ecmd->phy_address = 0; - ecmd->transceiver = XCVR_INTERNAL; - - if (adapter->link_speed != SPEED_0) { - ecmd->speed = adapter->link_speed; - if (adapter->link_duplex == FULL_DUPLEX) - ecmd->duplex = DUPLEX_FULL; - else - ecmd->duplex = DUPLEX_HALF; - } else { - ecmd->speed = -1; - ecmd->duplex = -1; - } - - ecmd->autoneg = AUTONEG_ENABLE; - return 0; -} - -static int atl1c_set_settings(struct net_device *netdev, - struct ethtool_cmd *ecmd) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct atl1c_hw *hw = &adapter->hw; - u16 autoneg_advertised; - - while (test_and_set_bit(__AT_RESETTING, &adapter->flags)) - msleep(1); - - if (ecmd->autoneg == AUTONEG_ENABLE) { - autoneg_advertised = ADVERTISED_Autoneg; - } else { - if (ecmd->speed == SPEED_1000) { - if (ecmd->duplex != DUPLEX_FULL) { - if (netif_msg_link(adapter)) - dev_warn(&adapter->pdev->dev, - "1000M half is invalid\n"); - clear_bit(__AT_RESETTING, &adapter->flags); - return -EINVAL; - } - autoneg_advertised = ADVERTISED_1000baseT_Full; - } else if (ecmd->speed == SPEED_100) { - if (ecmd->duplex == DUPLEX_FULL) - autoneg_advertised = ADVERTISED_100baseT_Full; - else - autoneg_advertised = ADVERTISED_100baseT_Half; - } else { - if (ecmd->duplex == DUPLEX_FULL) - autoneg_advertised = ADVERTISED_10baseT_Full; - else - autoneg_advertised = ADVERTISED_10baseT_Half; - } - } - - if (hw->autoneg_advertised != autoneg_advertised) { - hw->autoneg_advertised = autoneg_advertised; - if (atl1c_restart_autoneg(hw) != 0) { - if (netif_msg_link(adapter)) - dev_warn(&adapter->pdev->dev, - "ethtool speed/duplex setting failed\n"); - clear_bit(__AT_RESETTING, &adapter->flags); - return -EINVAL; - } - } - clear_bit(__AT_RESETTING, &adapter->flags); - return 0; -} - -static u32 atl1c_get_tx_csum(struct net_device *netdev) -{ - return (netdev->features & NETIF_F_HW_CSUM) != 0; -} - -static u32 atl1c_get_msglevel(struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - return adapter->msg_enable; -} - -static void atl1c_set_msglevel(struct net_device *netdev, u32 data) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - adapter->msg_enable = data; -} - -static int atl1c_get_regs_len(struct net_device *netdev) -{ - return AT_REGS_LEN; -} - -static void atl1c_get_regs(struct net_device *netdev, - struct ethtool_regs *regs, void *p) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct atl1c_hw *hw = &adapter->hw; - u32 *regs_buff = p; - u16 phy_data; - - memset(p, 0, AT_REGS_LEN); - - regs->version = 0; - AT_READ_REG(hw, REG_VPD_CAP, p++); - AT_READ_REG(hw, REG_PM_CTRL, p++); - AT_READ_REG(hw, REG_MAC_HALF_DUPLX_CTRL, p++); - AT_READ_REG(hw, REG_TWSI_CTRL, p++); - AT_READ_REG(hw, REG_PCIE_DEV_MISC_CTRL, p++); - AT_READ_REG(hw, REG_MASTER_CTRL, p++); - AT_READ_REG(hw, REG_MANUAL_TIMER_INIT, p++); - AT_READ_REG(hw, REG_IRQ_MODRT_TIMER_INIT, p++); - AT_READ_REG(hw, REG_GPHY_CTRL, p++); - AT_READ_REG(hw, REG_LINK_CTRL, p++); - AT_READ_REG(hw, REG_IDLE_STATUS, p++); - AT_READ_REG(hw, REG_MDIO_CTRL, p++); - AT_READ_REG(hw, REG_SERDES_LOCK, p++); - AT_READ_REG(hw, REG_MAC_CTRL, p++); - AT_READ_REG(hw, REG_MAC_IPG_IFG, p++); - AT_READ_REG(hw, REG_MAC_STA_ADDR, p++); - AT_READ_REG(hw, REG_MAC_STA_ADDR+4, p++); - AT_READ_REG(hw, REG_RX_HASH_TABLE, p++); - AT_READ_REG(hw, REG_RX_HASH_TABLE+4, p++); - AT_READ_REG(hw, REG_RXQ_CTRL, p++); - AT_READ_REG(hw, REG_TXQ_CTRL, p++); - AT_READ_REG(hw, REG_MTU, p++); - AT_READ_REG(hw, REG_WOL_CTRL, p++); - - atl1c_read_phy_reg(hw, MII_BMCR, &phy_data); - regs_buff[73] = (u32) phy_data; - atl1c_read_phy_reg(hw, MII_BMSR, &phy_data); - regs_buff[74] = (u32) phy_data; -} - -static int atl1c_get_eeprom_len(struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - - if (atl1c_check_eeprom_exist(&adapter->hw)) - return AT_EEPROM_LEN; - else - return 0; -} - -static int atl1c_get_eeprom(struct net_device *netdev, - struct ethtool_eeprom *eeprom, u8 *bytes) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct atl1c_hw *hw = &adapter->hw; - u32 *eeprom_buff; - int first_dword, last_dword; - int ret_val = 0; - int i; - - if (eeprom->len == 0) - return -EINVAL; - - if (!atl1c_check_eeprom_exist(hw)) /* not exist */ - return -EINVAL; - - eeprom->magic = adapter->pdev->vendor | - (adapter->pdev->device << 16); - - first_dword = eeprom->offset >> 2; - last_dword = (eeprom->offset + eeprom->len - 1) >> 2; - - eeprom_buff = kmalloc(sizeof(u32) * - (last_dword - first_dword + 1), GFP_KERNEL); - if (eeprom_buff == NULL) - return -ENOMEM; - - for (i = first_dword; i < last_dword; i++) { - if (!atl1c_read_eeprom(hw, i * 4, &(eeprom_buff[i-first_dword]))) { - kfree(eeprom_buff); - return -EIO; - } - } - - memcpy(bytes, (u8 *)eeprom_buff + (eeprom->offset & 3), - eeprom->len); - kfree(eeprom_buff); - - return ret_val; - return 0; -} - -static void atl1c_get_drvinfo(struct net_device *netdev, - struct ethtool_drvinfo *drvinfo) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - - strncpy(drvinfo->driver, atl1c_driver_name, sizeof(drvinfo->driver)); - strncpy(drvinfo->version, atl1c_driver_version, - sizeof(drvinfo->version)); - strncpy(drvinfo->fw_version, "N/A", sizeof(drvinfo->fw_version)); - strncpy(drvinfo->bus_info, pci_name(adapter->pdev), - sizeof(drvinfo->bus_info)); - drvinfo->n_stats = 0; - drvinfo->testinfo_len = 0; - drvinfo->regdump_len = atl1c_get_regs_len(netdev); - drvinfo->eedump_len = atl1c_get_eeprom_len(netdev); -} - -static void atl1c_get_wol(struct net_device *netdev, - struct ethtool_wolinfo *wol) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - - wol->supported = WAKE_MAGIC | WAKE_PHY; - wol->wolopts = 0; - - if (adapter->wol & AT_WUFC_EX) - wol->wolopts |= WAKE_UCAST; - if (adapter->wol & AT_WUFC_MC) - wol->wolopts |= WAKE_MCAST; - if (adapter->wol & AT_WUFC_BC) - wol->wolopts |= WAKE_BCAST; - if (adapter->wol & AT_WUFC_MAG) - wol->wolopts |= WAKE_MAGIC; - if (adapter->wol & AT_WUFC_LNKC) - wol->wolopts |= WAKE_PHY; - - return; -} - -static int atl1c_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - - if (wol->wolopts & (WAKE_ARP | WAKE_MAGICSECURE | - WAKE_UCAST | WAKE_BCAST | WAKE_MCAST)) - return -EOPNOTSUPP; - /* these settings will always override what we currently have */ - adapter->wol = 0; - - if (wol->wolopts & WAKE_MAGIC) - adapter->wol |= AT_WUFC_MAG; - if (wol->wolopts & WAKE_PHY) - adapter->wol |= AT_WUFC_LNKC; - - device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol); - - return 0; -} - -static int atl1c_nway_reset(struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - if (netif_running(netdev)) - atl1c_reinit_locked(adapter); - return 0; -} - -static struct ethtool_ops atl1c_ethtool_ops = { - .get_settings = atl1c_get_settings, - .set_settings = atl1c_set_settings, - .get_drvinfo = atl1c_get_drvinfo, - .get_regs_len = atl1c_get_regs_len, - .get_regs = atl1c_get_regs, - .get_wol = atl1c_get_wol, - .set_wol = atl1c_set_wol, - .get_msglevel = atl1c_get_msglevel, - .set_msglevel = atl1c_set_msglevel, - .nway_reset = atl1c_nway_reset, - .get_link = ethtool_op_get_link, - .get_eeprom_len = atl1c_get_eeprom_len, - .get_eeprom = atl1c_get_eeprom, - .get_tx_csum = atl1c_get_tx_csum, - .get_sg = ethtool_op_get_sg, - .set_sg = ethtool_op_set_sg, -}; - -void atl1c_set_ethtool_ops(struct net_device *netdev) -{ - SET_ETHTOOL_OPS(netdev, &atl1c_ethtool_ops); -} diff --git a/src/atl1c/atl1c_hw.c b/src/atl1c/atl1c_hw.c deleted file mode 100644 index 3e69b94..0000000 --- a/src/atl1c/atl1c_hw.c +++ /dev/null @@ -1,527 +0,0 @@ -/* - * Copyright(c) 2007 Atheros Corporation. All rights reserved. - * - * Derived from Intel e1000 driver - * Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ -#include <linux/pci.h> -#include <linux/delay.h> -#include <linux/mii.h> -#include <linux/crc32.h> - -#include "atl1c.h" - -/* - * check_eeprom_exist - * return 1 if eeprom exist - */ -int atl1c_check_eeprom_exist(struct atl1c_hw *hw) -{ - u32 data; - - AT_READ_REG(hw, REG_TWSI_DEBUG, &data); - if (data & TWSI_DEBUG_DEV_EXIST) - return 1; - - return 0; -} - -void atl1c_hw_set_mac_addr(struct atl1c_hw *hw) -{ - u32 value; - /* - * 00-0B-6A-F6-00-DC - * 0: 6AF600DC 1: 000B - * low dword - */ - value = (((u32)hw->mac_addr[2]) << 24) | - (((u32)hw->mac_addr[3]) << 16) | - (((u32)hw->mac_addr[4]) << 8) | - (((u32)hw->mac_addr[5])) ; - AT_WRITE_REG_ARRAY(hw, REG_MAC_STA_ADDR, 0, value); - /* hight dword */ - value = (((u32)hw->mac_addr[0]) << 8) | - (((u32)hw->mac_addr[1])) ; - AT_WRITE_REG_ARRAY(hw, REG_MAC_STA_ADDR, 1, value); -} - -/* - * atl1c_get_permanent_address - * return 0 if get valid mac address, - */ -static int atl1c_get_permanent_address(struct atl1c_hw *hw) -{ - u32 addr[2]; - u32 i; - u32 otp_ctrl_data; - u32 twsi_ctrl_data; - u8 eth_addr[ETH_ALEN]; - - /* init */ - addr[0] = addr[1] = 0; - AT_READ_REG(hw, REG_OTP_CTRL, &otp_ctrl_data); - if (atl1c_check_eeprom_exist(hw)) { - /* Enable OTP CLK */ - if (!(otp_ctrl_data & OTP_CTRL_CLK_EN)) { - otp_ctrl_data |= OTP_CTRL_CLK_EN; - AT_WRITE_REG(hw, REG_OTP_CTRL, otp_ctrl_data); - AT_WRITE_FLUSH(hw); - msleep(1); - } - - AT_READ_REG(hw, REG_TWSI_CTRL, &twsi_ctrl_data); - twsi_ctrl_data |= TWSI_CTRL_SW_LDSTART; - AT_WRITE_REG(hw, REG_TWSI_CTRL, twsi_ctrl_data); - for (i = 0; i < AT_TWSI_EEPROM_TIMEOUT; i++) { - msleep(10); - AT_READ_REG(hw, REG_TWSI_CTRL, &twsi_ctrl_data); - if ((twsi_ctrl_data & TWSI_CTRL_SW_LDSTART) == 0) - break; - } - if (i >= AT_TWSI_EEPROM_TIMEOUT) - return -1; - } - /* Disable OTP_CLK */ - if (otp_ctrl_data & OTP_CTRL_CLK_EN) { - otp_ctrl_data &= ~OTP_CTRL_CLK_EN; - AT_WRITE_REG(hw, REG_OTP_CTRL, otp_ctrl_data); - AT_WRITE_FLUSH(hw); - msleep(1); - } - - /* maybe MAC-address is from BIOS */ - AT_READ_REG(hw, REG_MAC_STA_ADDR, &addr[0]); - AT_READ_REG(hw, REG_MAC_STA_ADDR + 4, &addr[1]); - *(u32 *) ð_addr[2] = swab32(addr[0]); - *(u16 *) ð_addr[0] = swab16(*(u16 *)&addr[1]); - - if (is_valid_ether_addr(eth_addr)) { - memcpy(hw->perm_mac_addr, eth_addr, ETH_ALEN); - return 0; - } - - return -1; -} - -bool atl1c_read_eeprom(struct atl1c_hw *hw, u32 offset, u32 *p_value) -{ - int i; - int ret = false; - u32 otp_ctrl_data; - u32 control; - u32 data; - - if (offset & 3) - return ret; /* address do not align */ - - AT_READ_REG(hw, REG_OTP_CTRL, &otp_ctrl_data); - if (!(otp_ctrl_data & OTP_CTRL_CLK_EN)) - AT_WRITE_REG(hw, REG_OTP_CTRL, - (otp_ctrl_data | OTP_CTRL_CLK_EN)); - - AT_WRITE_REG(hw, REG_EEPROM_DATA_LO, 0); - control = (offset & EEPROM_CTRL_ADDR_MASK) << EEPROM_CTRL_ADDR_SHIFT; - AT_WRITE_REG(hw, REG_EEPROM_CTRL, control); - - for (i = 0; i < 10; i++) { - udelay(100); - AT_READ_REG(hw, REG_EEPROM_CTRL, &control); - if (control & EEPROM_CTRL_RW) - break; - } - if (control & EEPROM_CTRL_RW) { - AT_READ_REG(hw, REG_EEPROM_CTRL, &data); - AT_READ_REG(hw, REG_EEPROM_DATA_LO, p_value); - data = data & 0xFFFF; - *p_value = swab32((data << 16) | (*p_value >> 16)); - ret = true; - } - if (!(otp_ctrl_data & OTP_CTRL_CLK_EN)) - AT_WRITE_REG(hw, REG_OTP_CTRL, otp_ctrl_data); - - return ret; -} -/* - * Reads the adapter's MAC address from the EEPROM - * - * hw - Struct containing variables accessed by shared code - */ -int atl1c_read_mac_addr(struct atl1c_hw *hw) -{ - int err = 0; - - err = atl1c_get_permanent_address(hw); - if (err) - random_ether_addr(hw->perm_mac_addr); - - memcpy(hw->mac_addr, hw->perm_mac_addr, sizeof(hw->perm_mac_addr)); - return 0; -} - -/* - * atl1c_hash_mc_addr - * purpose - * set hash value for a multicast address - * hash calcu processing : - * 1. calcu 32bit CRC for multicast address - * 2. reverse crc with MSB to LSB - */ -u32 atl1c_hash_mc_addr(struct atl1c_hw *hw, u8 *mc_addr) -{ - u32 crc32; - u32 value = 0; - int i; - - crc32 = ether_crc_le(6, mc_addr); - for (i = 0; i < 32; i++) - value |= (((crc32 >> i) & 1) << (31 - i)); - - return value; -} - -/* - * Sets the bit in the multicast table corresponding to the hash value. - * hw - Struct containing variables accessed by shared code - * hash_value - Multicast address hash value - */ -void atl1c_hash_set(struct atl1c_hw *hw, u32 hash_value) -{ - u32 hash_bit, hash_reg; - u32 mta; - - /* - * The HASH Table is a register array of 2 32-bit registers. - * It is treated like an array of 64 bits. We want to set - * bit BitArray[hash_value]. So we figure out what register - * the bit is in, read it, OR in the new bit, then write - * back the new value. The register is determined by the - * upper bit of the hash value and the bit within that - * register are determined by the lower 5 bits of the value. - */ - hash_reg = (hash_value >> 31) & 0x1; - hash_bit = (hash_value >> 26) & 0x1F; - - mta = AT_READ_REG_ARRAY(hw, REG_RX_HASH_TABLE, hash_reg); - - mta |= (1 << hash_bit); - - AT_WRITE_REG_ARRAY(hw, REG_RX_HASH_TABLE, hash_reg, mta); -} - -/* - * Reads the value from a PHY register - * hw - Struct containing variables accessed by shared code - * reg_addr - address of the PHY register to read - */ -int atl1c_read_phy_reg(struct atl1c_hw *hw, u16 reg_addr, u16 *phy_data) -{ - u32 val; - int i; - - val = ((u32)(reg_addr & MDIO_REG_ADDR_MASK)) << MDIO_REG_ADDR_SHIFT | - MDIO_START | MDIO_SUP_PREAMBLE | MDIO_RW | - MDIO_CLK_25_4 << MDIO_CLK_SEL_SHIFT; - - AT_WRITE_REG(hw, REG_MDIO_CTRL, val); - - for (i = 0; i < MDIO_WAIT_TIMES; i++) { - udelay(2); - AT_READ_REG(hw, REG_MDIO_CTRL, &val); - if (!(val & (MDIO_START | MDIO_BUSY))) - break; - } - if (!(val & (MDIO_START | MDIO_BUSY))) { - *phy_data = (u16)val; - return 0; - } - - return -1; -} - -/* - * Writes a value to a PHY register - * hw - Struct containing variables accessed by shared code - * reg_addr - address of the PHY register to write - * data - data to write to the PHY - */ -int atl1c_write_phy_reg(struct atl1c_hw *hw, u32 reg_addr, u16 phy_data) -{ - int i; - u32 val; - - val = ((u32)(phy_data & MDIO_DATA_MASK)) << MDIO_DATA_SHIFT | - (reg_addr & MDIO_REG_ADDR_MASK) << MDIO_REG_ADDR_SHIFT | - MDIO_SUP_PREAMBLE | MDIO_START | - MDIO_CLK_25_4 << MDIO_CLK_SEL_SHIFT; - - AT_WRITE_REG(hw, REG_MDIO_CTRL, val); - - for (i = 0; i < MDIO_WAIT_TIMES; i++) { - udelay(2); - AT_READ_REG(hw, REG_MDIO_CTRL, &val); - if (!(val & (MDIO_START | MDIO_BUSY))) - break; - } - - if (!(val & (MDIO_START | MDIO_BUSY))) - return 0; - - return -1; -} - -/* - * Configures PHY autoneg and flow control advertisement settings - * - * hw - Struct containing variables accessed by shared code - */ -static int atl1c_phy_setup_adv(struct atl1c_hw *hw) -{ - u16 mii_adv_data = ADVERTISE_DEFAULT_CAP & ~ADVERTISE_SPEED_MASK; - u16 mii_giga_ctrl_data = GIGA_CR_1000T_DEFAULT_CAP & - ~GIGA_CR_1000T_SPEED_MASK; - - if (hw->autoneg_advertised & ADVERTISED_10baseT_Half) - mii_adv_data |= ADVERTISE_10HALF; - if (hw->autoneg_advertised & ADVERTISED_10baseT_Full) - mii_adv_data |= ADVERTISE_10FULL; - if (hw->autoneg_advertised & ADVERTISED_100baseT_Half) - mii_adv_data |= ADVERTISE_100HALF; - if (hw->autoneg_advertised & ADVERTISED_100baseT_Full) - mii_adv_data |= ADVERTISE_100FULL; - - if (hw->autoneg_advertised & ADVERTISED_Autoneg) - mii_adv_data |= ADVERTISE_10HALF | ADVERTISE_10FULL | - ADVERTISE_100HALF | ADVERTISE_100FULL; - - if (hw->ctrl_flags & ATL1C_LINK_CAP_1000M) { - if (hw->autoneg_advertised & ADVERTISED_1000baseT_Half) - mii_giga_ctrl_data |= ADVERTISE_1000HALF; - if (hw->autoneg_advertised & ADVERTISED_1000baseT_Full) - mii_giga_ctrl_data |= ADVERTISE_1000FULL; - if (hw->autoneg_advertised & ADVERTISED_Autoneg) - mii_giga_ctrl_data |= ADVERTISE_1000HALF | - ADVERTISE_1000FULL; - } - - if (atl1c_write_phy_reg(hw, MII_ADVERTISE, mii_adv_data) != 0 || - atl1c_write_phy_reg(hw, MII_GIGA_CR, mii_giga_ctrl_data) != 0) - return -1; - return 0; -} - -void atl1c_phy_disable(struct atl1c_hw *hw) -{ - AT_WRITE_REGW(hw, REG_GPHY_CTRL, - GPHY_CTRL_PW_WOL_DIS | GPHY_CTRL_EXT_RESET); -} - -static void atl1c_phy_magic_data(struct atl1c_hw *hw) -{ - u16 data; - - data = ANA_LOOP_SEL_10BT | ANA_EN_MASK_TB | ANA_EN_10BT_IDLE | - ((1 & ANA_INTERVAL_SEL_TIMER_MASK) << - ANA_INTERVAL_SEL_TIMER_SHIFT); - - atl1c_write_phy_reg(hw, MII_DBG_ADDR, MII_ANA_CTRL_18); - atl1c_write_phy_reg(hw, MII_DBG_DATA, data); - - data = (2 & ANA_SERDES_CDR_BW_MASK) | ANA_MS_PAD_DBG | - ANA_SERDES_EN_DEEM | ANA_SERDES_SEL_HSP | ANA_SERDES_EN_PLL | - ANA_SERDES_EN_LCKDT; - - atl1c_write_phy_reg(hw, MII_DBG_ADDR, MII_ANA_CTRL_5); - atl1c_write_phy_reg(hw, MII_DBG_DATA, data); - - data = (44 & ANA_LONG_CABLE_TH_100_MASK) | - ((33 & ANA_SHORT_CABLE_TH_100_MASK) << - ANA_SHORT_CABLE_TH_100_SHIFT) | ANA_BP_BAD_LINK_ACCUM | - ANA_BP_SMALL_BW; - - atl1c_write_phy_reg(hw, MII_DBG_ADDR, MII_ANA_CTRL_54); - atl1c_write_phy_reg(hw, MII_DBG_DATA, data); - - data = (11 & ANA_IECHO_ADJ_MASK) | ((11 & ANA_IECHO_ADJ_MASK) << - ANA_IECHO_ADJ_2_SHIFT) | ((8 & ANA_IECHO_ADJ_MASK) << - ANA_IECHO_ADJ_1_SHIFT) | ((8 & ANA_IECHO_ADJ_MASK) << - ANA_IECHO_ADJ_0_SHIFT); - - atl1c_write_phy_reg(hw, MII_DBG_ADDR, MII_ANA_CTRL_4); - atl1c_write_phy_reg(hw, MII_DBG_DATA, data); - - data = ANA_RESTART_CAL | ((7 & ANA_MANUL_SWICH_ON_MASK) << - ANA_MANUL_SWICH_ON_SHIFT) | ANA_MAN_ENABLE | - ANA_SEL_HSP | ANA_EN_HB | ANA_OEN_125M; - - atl1c_write_phy_reg(hw, MII_DBG_ADDR, MII_ANA_CTRL_0); - atl1c_write_phy_reg(hw, MII_DBG_DATA, data); - - if (hw->ctrl_flags & ATL1C_HIB_DISABLE) { - atl1c_write_phy_reg(hw, MII_DBG_ADDR, MII_ANA_CTRL_41); - if (atl1c_read_phy_reg(hw, MII_DBG_DATA, &data) != 0) - return; - data &= ~ANA_TOP_PS_EN; - atl1c_write_phy_reg(hw, MII_DBG_DATA, data); - - atl1c_write_phy_reg(hw, MII_DBG_ADDR, MII_ANA_CTRL_11); - if (atl1c_read_phy_reg(hw, MII_DBG_DATA, &data) != 0) - return; - data &= ~ANA_PS_HIB_EN; - atl1c_write_phy_reg(hw, MII_DBG_DATA, data); - } -} - -int atl1c_phy_reset(struct atl1c_hw *hw) -{ - struct atl1c_adapter *adapter = hw->adapter; - struct pci_dev *pdev = adapter->pdev; - u32 phy_ctrl_data = GPHY_CTRL_DEFAULT; - u32 mii_ier_data = IER_LINK_UP | IER_LINK_DOWN; - int err; - - if (hw->ctrl_flags & ATL1C_HIB_DISABLE) - phy_ctrl_data &= ~GPHY_CTRL_HIB_EN; - - AT_WRITE_REG(hw, REG_GPHY_CTRL, phy_ctrl_data); - AT_WRITE_FLUSH(hw); - msleep(40); - phy_ctrl_data |= GPHY_CTRL_EXT_RESET; - AT_WRITE_REG(hw, REG_GPHY_CTRL, phy_ctrl_data); - AT_WRITE_FLUSH(hw); - msleep(10); - - /*Enable PHY LinkChange Interrupt */ - err = atl1c_write_phy_reg(hw, MII_IER, mii_ier_data); - if (err) { - if (netif_msg_hw(adapter)) - dev_err(&pdev->dev, - "Error enable PHY linkChange Interrupt\n"); - return err; - } - if (!(hw->ctrl_flags & ATL1C_FPGA_VERSION)) - atl1c_phy_magic_data(hw); - return 0; -} - -int atl1c_phy_init(struct atl1c_hw *hw) -{ - struct atl1c_adapter *adapter = (struct atl1c_adapter *)hw->adapter; - struct pci_dev *pdev = adapter->pdev; - int ret_val; - u16 mii_bmcr_data = BMCR_RESET; - u16 phy_id1, phy_id2; - - if ((atl1c_read_phy_reg(hw, MII_PHYSID1, &phy_id1) != 0) || - (atl1c_read_phy_reg(hw, MII_PHYSID2, &phy_id2) != 0)) { - if (netif_msg_link(adapter)) - dev_err(&pdev->dev, "Error get phy ID\n"); - return -1; - } - switch (hw->media_type) { - case MEDIA_TYPE_AUTO_SENSOR: - ret_val = atl1c_phy_setup_adv(hw); - if (ret_val) { - if (netif_msg_link(adapter)) - dev_err(&pdev->dev, - "Error Setting up Auto-Negotiation\n"); - return ret_val; - } - mii_bmcr_data |= BMCR_AUTO_NEG_EN | BMCR_RESTART_AUTO_NEG; - break; - case MEDIA_TYPE_100M_FULL: - mii_bmcr_data |= BMCR_SPEED_100 | BMCR_FULL_DUPLEX; - break; - case MEDIA_TYPE_100M_HALF: - mii_bmcr_data |= BMCR_SPEED_100; - break; - case MEDIA_TYPE_10M_FULL: - mii_bmcr_data |= BMCR_SPEED_10 | BMCR_FULL_DUPLEX; - break; - case MEDIA_TYPE_10M_HALF: - mii_bmcr_data |= BMCR_SPEED_10; - break; - default: - if (netif_msg_link(adapter)) - dev_err(&pdev->dev, "Wrong Media type %d\n", - hw->media_type); - return -1; - break; - } - - ret_val = atl1c_write_phy_reg(hw, MII_BMCR, mii_bmcr_data); - if (ret_val) - return ret_val; - hw->phy_configured = true; - - return 0; -} - -/* - * Detects the current speed and duplex settings of the hardware. - * - * hw - Struct containing variables accessed by shared code - * speed - Speed of the connection - * duplex - Duplex setting of the connection - */ -int atl1c_get_speed_and_duplex(struct atl1c_hw *hw, u16 *speed, u16 *duplex) -{ - int err; - u16 phy_data; - - /* Read PHY Specific Status Register (17) */ - err = atl1c_read_phy_reg(hw, MII_GIGA_PSSR, &phy_data); - if (err) - return err; - - if (!(phy_data & GIGA_PSSR_SPD_DPLX_RESOLVED)) - return -1; - - switch (phy_data & GIGA_PSSR_SPEED) { - case GIGA_PSSR_1000MBS: - *speed = SPEED_1000; - break; - case GIGA_PSSR_100MBS: - *speed = SPEED_100; - break; - case GIGA_PSSR_10MBS: - *speed = SPEED_10; - break; - default: - return -1; - break; - } - - if (phy_data & GIGA_PSSR_DPLX) - *duplex = FULL_DUPLEX; - else - *duplex = HALF_DUPLEX; - - return 0; -} - -int atl1c_restart_autoneg(struct atl1c_hw *hw) -{ - int err = 0; - u16 mii_bmcr_data = BMCR_RESET; - - err = atl1c_phy_setup_adv(hw); - if (err) - return err; - mii_bmcr_data |= BMCR_AUTO_NEG_EN | BMCR_RESTART_AUTO_NEG; - - return atl1c_write_phy_reg(hw, MII_BMCR, mii_bmcr_data); -} diff --git a/src/atl1c/atl1c_hw.h b/src/atl1c/atl1c_hw.h deleted file mode 100644 index c2c738d..0000000 --- a/src/atl1c/atl1c_hw.h +++ /dev/null @@ -1,859 +0,0 @@ -/* - * Copyright(c) 2008 - 2009 Atheros Corporation. All rights reserved. - * - * Derived from Intel e1000 driver - * Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef _ATL1C_HW_H_ -#define _ATL1C_HW_H_ - -#include <linux/types.h> -#include <linux/mii.h> - -struct atl1c_adapter; -struct atl1c_hw; - -/* function prototype */ -void atl1c_phy_disable(struct atl1c_hw *hw); -void atl1c_hw_set_mac_addr(struct atl1c_hw *hw); -int atl1c_phy_reset(struct atl1c_hw *hw); -int atl1c_read_mac_addr(struct atl1c_hw *hw); -int atl1c_get_speed_and_duplex(struct atl1c_hw *hw, u16 *speed, u16 *duplex); -u32 atl1c_hash_mc_addr(struct atl1c_hw *hw, u8 *mc_addr); -void atl1c_hash_set(struct atl1c_hw *hw, u32 hash_value); -int atl1c_read_phy_reg(struct atl1c_hw *hw, u16 reg_addr, u16 *phy_data); -int atl1c_write_phy_reg(struct atl1c_hw *hw, u32 reg_addr, u16 phy_data); -bool atl1c_read_eeprom(struct atl1c_hw *hw, u32 offset, u32 *p_value); -int atl1c_phy_init(struct atl1c_hw *hw); -int atl1c_check_eeprom_exist(struct atl1c_hw *hw); -int atl1c_restart_autoneg(struct atl1c_hw *hw); - -/* register definition */ -#define REG_DEVICE_CAP 0x5C -#define DEVICE_CAP_MAX_PAYLOAD_MASK 0x7 -#define DEVICE_CAP_MAX_PAYLOAD_SHIFT 0 - -#define REG_DEVICE_CTRL 0x60 -#define DEVICE_CTRL_MAX_PAYLOAD_MASK 0x7 -#define DEVICE_CTRL_MAX_PAYLOAD_SHIFT 5 -#define DEVICE_CTRL_MAX_RREQ_SZ_MASK 0x7 -#define DEVICE_CTRL_MAX_RREQ_SZ_SHIFT 12 - -#define REG_LINK_CTRL 0x68 -#define LINK_CTRL_L0S_EN 0x01 -#define LINK_CTRL_L1_EN 0x02 - -#define REG_VPD_CAP 0x6C -#define VPD_CAP_ID_MASK 0xff -#define VPD_CAP_ID_SHIFT 0 -#define VPD_CAP_NEXT_PTR_MASK 0xFF -#define VPD_CAP_NEXT_PTR_SHIFT 8 -#define VPD_CAP_VPD_ADDR_MASK 0x7FFF -#define VPD_CAP_VPD_ADDR_SHIFT 16 -#define VPD_CAP_VPD_FLAG 0x80000000 - -#define REG_VPD_DATA 0x70 - -#define REG_PCIE_UC_SEVERITY 0x10C -#define PCIE_UC_SERVRITY_TRN 0x00000001 -#define PCIE_UC_SERVRITY_DLP 0x00000010 -#define PCIE_UC_SERVRITY_PSN_TLP 0x00001000 -#define PCIE_UC_SERVRITY_FCP 0x00002000 -#define PCIE_UC_SERVRITY_CPL_TO 0x00004000 -#define PCIE_UC_SERVRITY_CA 0x00008000 -#define PCIE_UC_SERVRITY_UC 0x00010000 -#define PCIE_UC_SERVRITY_ROV 0x00020000 -#define PCIE_UC_SERVRITY_MLFP 0x00040000 -#define PCIE_UC_SERVRITY_ECRC 0x00080000 -#define PCIE_UC_SERVRITY_UR 0x00100000 - -#define REG_DEV_SERIALNUM_CTRL 0x200 -#define REG_DEV_MAC_SEL_MASK 0x0 /* 0:EUI; 1:MAC */ -#define REG_DEV_MAC_SEL_SHIFT 0 -#define REG_DEV_SERIAL_NUM_EN_MASK 0x1 -#define REG_DEV_SERIAL_NUM_EN_SHIFT 1 - -#define REG_TWSI_CTRL 0x218 -#define TWSI_CTRL_LD_OFFSET_MASK 0xFF -#define TWSI_CTRL_LD_OFFSET_SHIFT 0 -#define TWSI_CTRL_LD_SLV_ADDR_MASK 0x7 -#define TWSI_CTRL_LD_SLV_ADDR_SHIFT 8 -#define TWSI_CTRL_SW_LDSTART 0x800 -#define TWSI_CTRL_HW_LDSTART 0x1000 -#define TWSI_CTRL_SMB_SLV_ADDR_MASK 0x7F -#define TWSI_CTRL_SMB_SLV_ADDR_SHIFT 15 -#define TWSI_CTRL_LD_EXIST 0x400000 -#define TWSI_CTRL_READ_FREQ_SEL_MASK 0x3 -#define TWSI_CTRL_READ_FREQ_SEL_SHIFT 23 -#define TWSI_CTRL_FREQ_SEL_100K 0 -#define TWSI_CTRL_FREQ_SEL_200K 1 -#define TWSI_CTRL_FREQ_SEL_300K 2 -#define TWSI_CTRL_FREQ_SEL_400K 3 -#define TWSI_CTRL_SMB_SLV_ADDR -#define TWSI_CTRL_WRITE_FREQ_SEL_MASK 0x3 -#define TWSI_CTRL_WRITE_FREQ_SEL_SHIFT 24 - - -#define REG_PCIE_DEV_MISC_CTRL 0x21C -#define PCIE_DEV_MISC_EXT_PIPE 0x2 -#define PCIE_DEV_MISC_RETRY_BUFDIS 0x1 -#define PCIE_DEV_MISC_SPIROM_EXIST 0x4 -#define PCIE_DEV_MISC_SERDES_ENDIAN 0x8 -#define PCIE_DEV_MISC_SERDES_SEL_DIN 0x10 - -#define REG_PCIE_PHYMISC 0x1000 -#define PCIE_PHYMISC_FORCE_RCV_DET 0x4 - -#define REG_TWSI_DEBUG 0x1108 -#define TWSI_DEBUG_DEV_EXIST 0x20000000 - -#define REG_EEPROM_CTRL 0x12C0 -#define EEPROM_CTRL_DATA_HI_MASK 0xFFFF -#define EEPROM_CTRL_DATA_HI_SHIFT 0 -#define EEPROM_CTRL_ADDR_MASK 0x3FF -#define EEPROM_CTRL_ADDR_SHIFT 16 -#define EEPROM_CTRL_ACK 0x40000000 -#define EEPROM_CTRL_RW 0x80000000 - -#define REG_EEPROM_DATA_LO 0x12C4 - -#define REG_OTP_CTRL 0x12F0 -#define OTP_CTRL_CLK_EN 0x0002 - -#define REG_PM_CTRL 0x12F8 -#define PM_CTRL_SDES_EN 0x00000001 -#define PM_CTRL_RBER_EN 0x00000002 -#define PM_CTRL_CLK_REQ_EN 0x00000004 -#define PM_CTRL_ASPM_L1_EN 0x00000008 -#define PM_CTRL_SERDES_L1_EN 0x00000010 -#define PM_CTRL_SERDES_PLL_L1_EN 0x00000020 -#define PM_CTRL_SERDES_PD_EX_L1 0x00000040 -#define PM_CTRL_SERDES_BUDS_RX_L1_EN 0x00000080 -#define PM_CTRL_L0S_ENTRY_TIMER_MASK 0xF -#define PM_CTRL_L0S_ENTRY_TIMER_SHIFT 8 -#define PM_CTRL_ASPM_L0S_EN 0x00001000 -#define PM_CTRL_CLK_SWH_L1 0x00002000 -#define PM_CTRL_CLK_PWM_VER1_1 0x00004000 -#define PM_CTRL_PCIE_RECV 0x00008000 -#define PM_CTRL_L1_ENTRY_TIMER_MASK 0xF -#define PM_CTRL_L1_ENTRY_TIMER_SHIFT 16 -#define PM_CTRL_PM_REQ_TIMER_MASK 0xF -#define PM_CTRL_PM_REQ_TIMER_SHIFT 20 -#define PM_CTRL_LCKDET_TIMER_MASK 0x3F -#define PM_CTRL_LCKDET_TIMER_SHIFT 24 -#define PM_CTRL_MAC_ASPM_CHK 0x40000000 -#define PM_CTRL_HOTRST 0x80000000 - -/* Selene Master Control Register */ -#define REG_MASTER_CTRL 0x1400 -#define MASTER_CTRL_SOFT_RST 0x1 -#define MASTER_CTRL_TEST_MODE_MASK 0x3 -#define MASTER_CTRL_TEST_MODE_SHIFT 2 -#define MASTER_CTRL_BERT_START 0x10 -#define MASTER_CTRL_MTIMER_EN 0x100 -#define MASTER_CTRL_MANUAL_INT 0x200 -#define MASTER_CTRL_TX_ITIMER_EN 0x400 -#define MASTER_CTRL_RX_ITIMER_EN 0x800 -#define MASTER_CTRL_CLK_SEL_DIS 0x1000 -#define MASTER_CTRL_CLK_SWH_MODE 0x2000 -#define MASTER_CTRL_INT_RDCLR 0x4000 -#define MASTER_CTRL_REV_NUM_SHIFT 16 -#define MASTER_CTRL_REV_NUM_MASK 0xff -#define MASTER_CTRL_DEV_ID_SHIFT 24 -#define MASTER_CTRL_DEV_ID_MASK 0x7f -#define MASTER_CTRL_OTP_SEL 0x80000000 - -/* Timer Initial Value Register */ -#define REG_MANUAL_TIMER_INIT 0x1404 - -/* IRQ ModeratorTimer Initial Value Register */ -#define REG_IRQ_MODRT_TIMER_INIT 0x1408 -#define IRQ_MODRT_TIMER_MASK 0xffff -#define IRQ_MODRT_TX_TIMER_SHIFT 0 -#define IRQ_MODRT_RX_TIMER_SHIFT 16 - -#define REG_GPHY_CTRL 0x140C -#define GPHY_CTRL_EXT_RESET 0x1 -#define GPHY_CTRL_RTL_MODE 0x2 -#define GPHY_CTRL_LED_MODE 0x4 -#define GPHY_CTRL_ANEG_NOW 0x8 -#define GPHY_CTRL_REV_ANEG 0x10 -#define GPHY_CTRL_GATE_25M_EN 0x20 -#define GPHY_CTRL_LPW_EXIT 0x40 -#define GPHY_CTRL_PHY_IDDQ 0x80 -#define GPHY_CTRL_PHY_IDDQ_DIS 0x100 -#define GPHY_CTRL_GIGA_DIS 0x200 -#define GPHY_CTRL_HIB_EN 0x400 -#define GPHY_CTRL_HIB_PULSE 0x800 -#define GPHY_CTRL_SEL_ANA_RST 0x1000 -#define GPHY_CTRL_PHY_PLL_ON 0x2000 -#define GPHY_CTRL_PWDOWN_HW 0x4000 -#define GPHY_CTRL_PHY_PLL_BYPASS 0x8000 - -#define GPHY_CTRL_DEFAULT ( \ - GPHY_CTRL_SEL_ANA_RST |\ - GPHY_CTRL_HIB_PULSE |\ - GPHY_CTRL_HIB_EN) - -#define GPHY_CTRL_PW_WOL_DIS ( \ - GPHY_CTRL_SEL_ANA_RST |\ - GPHY_CTRL_HIB_PULSE |\ - GPHY_CTRL_HIB_EN |\ - GPHY_CTRL_PWDOWN_HW |\ - GPHY_CTRL_PHY_IDDQ) - -/* Block IDLE Status Register */ -#define REG_IDLE_STATUS 0x1410 -#define IDLE_STATUS_MASK 0x00FF -#define IDLE_STATUS_RXMAC_NO_IDLE 0x1 -#define IDLE_STATUS_TXMAC_NO_IDLE 0x2 -#define IDLE_STATUS_RXQ_NO_IDLE 0x4 -#define IDLE_STATUS_TXQ_NO_IDLE 0x8 -#define IDLE_STATUS_DMAR_NO_IDLE 0x10 -#define IDLE_STATUS_DMAW_NO_IDLE 0x20 -#define IDLE_STATUS_SMB_NO_IDLE 0x40 -#define IDLE_STATUS_CMB_NO_IDLE 0x80 - -/* MDIO Control Register */ -#define REG_MDIO_CTRL 0x1414 -#define MDIO_DATA_MASK 0xffff /* On MDIO write, the 16-bit - * control data to write to PHY - * MII management register */ -#define MDIO_DATA_SHIFT 0 /* On MDIO read, the 16-bit - * status data that was read - * from the PHY MII management register */ -#define MDIO_REG_ADDR_MASK 0x1f /* MDIO register address */ -#define MDIO_REG_ADDR_SHIFT 16 -#define MDIO_RW 0x200000 /* 1: read, 0: write */ -#define MDIO_SUP_PREAMBLE 0x400000 /* Suppress preamble */ -#define MDIO_START 0x800000 /* Write 1 to initiate the MDIO - * master. And this bit is self - * cleared after one cycle */ -#define MDIO_CLK_SEL_SHIFT 24 -#define MDIO_CLK_25_4 0 -#define MDIO_CLK_25_6 2 -#define MDIO_CLK_25_8 3 -#define MDIO_CLK_25_10 4 -#define MDIO_CLK_25_14 5 -#define MDIO_CLK_25_20 6 -#define MDIO_CLK_25_28 7 -#define MDIO_BUSY 0x8000000 -#define MDIO_AP_EN 0x10000000 -#define MDIO_WAIT_TIMES 10 - -/* MII PHY Status Register */ -#define REG_PHY_STATUS 0x1418 -#define PHY_GENERAL_STATUS_MASK 0xFFFF -#define PHY_STATUS_RECV_ENABLE 0x0001 -#define PHY_OE_PWSP_STATUS_MASK 0x07FF -#define PHY_OE_PWSP_STATUS_SHIFT 16 -#define PHY_STATUS_LPW_STATE 0x80000000 -/* BIST Control and Status Register0 (for the Packet Memory) */ -#define REG_BIST0_CTRL 0x141c -#define BIST0_NOW 0x1 -#define BIST0_SRAM_FAIL 0x2 /* 1: The SRAM failure is - * un-repairable because - * it has address decoder - * failure or more than 1 cell - * stuck-to-x failure */ -#define BIST0_FUSE_FLAG 0x4 - -/* BIST Control and Status Register1(for the retry buffer of PCI Express) */ -#define REG_BIST1_CTRL 0x1420 -#define BIST1_NOW 0x1 -#define BIST1_SRAM_FAIL 0x2 -#define BIST1_FUSE_FLAG 0x4 - -/* SerDes Lock Detect Control and Status Register */ -#define REG_SERDES_LOCK 0x1424 -#define SERDES_LOCK_DETECT 0x1 /* SerDes lock detected. This signal - * comes from Analog SerDes */ -#define SERDES_LOCK_DETECT_EN 0x2 /* 1: Enable SerDes Lock detect function */ - -/* MAC Control Register */ -#define REG_MAC_CTRL 0x1480 -#define MAC_CTRL_TX_EN 0x1 -#define MAC_CTRL_RX_EN 0x2 -#define MAC_CTRL_TX_FLOW 0x4 -#define MAC_CTRL_RX_FLOW 0x8 -#define MAC_CTRL_LOOPBACK 0x10 -#define MAC_CTRL_DUPLX 0x20 -#define MAC_CTRL_ADD_CRC 0x40 -#define MAC_CTRL_PAD 0x80 -#define MAC_CTRL_LENCHK 0x100 -#define MAC_CTRL_HUGE_EN 0x200 -#define MAC_CTRL_PRMLEN_SHIFT 10 -#define MAC_CTRL_PRMLEN_MASK 0xf -#define MAC_CTRL_RMV_VLAN 0x4000 -#define MAC_CTRL_PROMIS_EN 0x8000 -#define MAC_CTRL_TX_PAUSE 0x10000 -#define MAC_CTRL_SCNT 0x20000 -#define MAC_CTRL_SRST_TX 0x40000 -#define MAC_CTRL_TX_SIMURST 0x80000 -#define MAC_CTRL_SPEED_SHIFT 20 -#define MAC_CTRL_SPEED_MASK 0x3 -#define MAC_CTRL_DBG_TX_BKPRESURE 0x400000 -#define MAC_CTRL_TX_HUGE 0x800000 -#define MAC_CTRL_RX_CHKSUM_EN 0x1000000 -#define MAC_CTRL_MC_ALL_EN 0x2000000 -#define MAC_CTRL_BC_EN 0x4000000 -#define MAC_CTRL_DBG 0x8000000 -#define MAC_CTRL_SINGLE_PAUSE_EN 0x10000000 - -/* MAC IPG/IFG Control Register */ -#define REG_MAC_IPG_IFG 0x1484 -#define MAC_IPG_IFG_IPGT_SHIFT 0 /* Desired back to back - * inter-packet gap. The - * default is 96-bit time */ -#define MAC_IPG_IFG_IPGT_MASK 0x7f -#define MAC_IPG_IFG_MIFG_SHIFT 8 /* Minimum number of IFG to - * enforce in between RX frames */ -#define MAC_IPG_IFG_MIFG_MASK 0xff /* Frame gap below such IFP is dropped */ -#define MAC_IPG_IFG_IPGR1_SHIFT 16 /* 64bit Carrier-Sense window */ -#define MAC_IPG_IFG_IPGR1_MASK 0x7f -#define MAC_IPG_IFG_IPGR2_SHIFT 24 /* 96-bit IPG window */ -#define MAC_IPG_IFG_IPGR2_MASK 0x7f - -/* MAC STATION ADDRESS */ -#define REG_MAC_STA_ADDR 0x1488 - -/* Hash table for multicast address */ -#define REG_RX_HASH_TABLE 0x1490 - -/* MAC Half-Duplex Control Register */ -#define REG_MAC_HALF_DUPLX_CTRL 0x1498 -#define MAC_HALF_DUPLX_CTRL_LCOL_SHIFT 0 /* Collision Window */ -#define MAC_HALF_DUPLX_CTRL_LCOL_MASK 0x3ff -#define MAC_HALF_DUPLX_CTRL_RETRY_SHIFT 12 -#define MAC_HALF_DUPLX_CTRL_RETRY_MASK 0xf -#define MAC_HALF_DUPLX_CTRL_EXC_DEF_EN 0x10000 -#define MAC_HALF_DUPLX_CTRL_NO_BACK_C 0x20000 -#define MAC_HALF_DUPLX_CTRL_NO_BACK_P 0x40000 /* No back-off on backpressure, - * immediately start the - * transmission after back pressure */ -#define MAC_HALF_DUPLX_CTRL_ABEBE 0x80000 /* 1: Alternative Binary Exponential Back-off Enabled */ -#define MAC_HALF_DUPLX_CTRL_ABEBT_SHIFT 20 /* Maximum binary exponential number */ -#define MAC_HALF_DUPLX_CTRL_ABEBT_MASK 0xf -#define MAC_HALF_DUPLX_CTRL_JAMIPG_SHIFT 24 /* IPG to start JAM for collision based flow control in half-duplex */ -#define MAC_HALF_DUPLX_CTRL_JAMIPG_MASK 0xf /* mode. In unit of 8-bit time */ - -/* Maximum Frame Length Control Register */ -#define REG_MTU 0x149c - -/* Wake-On-Lan control register */ -#define REG_WOL_CTRL 0x14a0 -#define WOL_PATTERN_EN 0x00000001 -#define WOL_PATTERN_PME_EN 0x00000002 -#define WOL_MAGIC_EN 0x00000004 -#define WOL_MAGIC_PME_EN 0x00000008 -#define WOL_LINK_CHG_EN 0x00000010 -#define WOL_LINK_CHG_PME_EN 0x00000020 -#define WOL_PATTERN_ST 0x00000100 -#define WOL_MAGIC_ST 0x00000200 -#define WOL_LINKCHG_ST 0x00000400 -#define WOL_CLK_SWITCH_EN 0x00008000 -#define WOL_PT0_EN 0x00010000 -#define WOL_PT1_EN 0x00020000 -#define WOL_PT2_EN 0x00040000 -#define WOL_PT3_EN 0x00080000 -#define WOL_PT4_EN 0x00100000 -#define WOL_PT5_EN 0x00200000 -#define WOL_PT6_EN 0x00400000 - -/* WOL Length ( 2 DWORD ) */ -#define REG_WOL_PATTERN_LEN 0x14a4 -#define WOL_PT_LEN_MASK 0x7f -#define WOL_PT0_LEN_SHIFT 0 -#define WOL_PT1_LEN_SHIFT 8 -#define WOL_PT2_LEN_SHIFT 16 -#define WOL_PT3_LEN_SHIFT 24 -#define WOL_PT4_LEN_SHIFT 0 -#define WOL_PT5_LEN_SHIFT 8 -#define WOL_PT6_LEN_SHIFT 16 - -/* Internal SRAM Partition Register */ -#define RFDX_HEAD_ADDR_MASK 0x03FF -#define RFDX_HARD_ADDR_SHIFT 0 -#define RFDX_TAIL_ADDR_MASK 0x03FF -#define RFDX_TAIL_ADDR_SHIFT 16 - -#define REG_SRAM_RFD0_INFO 0x1500 -#define REG_SRAM_RFD1_INFO 0x1504 -#define REG_SRAM_RFD2_INFO 0x1508 -#define REG_SRAM_RFD3_INFO 0x150C - -#define REG_RFD_NIC_LEN 0x1510 /* In 8-bytes */ -#define RFD_NIC_LEN_MASK 0x03FF - -#define REG_SRAM_TRD_ADDR 0x1518 -#define TPD_HEAD_ADDR_MASK 0x03FF -#define TPD_HEAD_ADDR_SHIFT 0 -#define TPD_TAIL_ADDR_MASK 0x03FF -#define TPD_TAIL_ADDR_SHIFT 16 - -#define REG_SRAM_TRD_LEN 0x151C /* In 8-bytes */ -#define TPD_NIC_LEN_MASK 0x03FF - -#define REG_SRAM_RXF_ADDR 0x1520 -#define REG_SRAM_RXF_LEN 0x1524 -#define REG_SRAM_TXF_ADDR 0x1528 -#define REG_SRAM_TXF_LEN 0x152C -#define REG_SRAM_TCPH_ADDR 0x1530 -#define REG_SRAM_PKTH_ADDR 0x1532 - -/* - * Load Ptr Register - * Software sets this bit after the initialization of the head and tail */ -#define REG_LOAD_PTR 0x1534 - -/* - * addresses of all descriptors, as well as the following descriptor - * control register, which triggers each function block to load the head - * pointer to prepare for the operation. This bit is then self-cleared - * after one cycle. - */ -#define REG_RX_BASE_ADDR_HI 0x1540 -#define REG_TX_BASE_ADDR_HI 0x1544 -#define REG_SMB_BASE_ADDR_HI 0x1548 -#define REG_SMB_BASE_ADDR_LO 0x154C -#define REG_RFD0_HEAD_ADDR_LO 0x1550 -#define REG_RFD1_HEAD_ADDR_LO 0x1554 -#define REG_RFD2_HEAD_ADDR_LO 0x1558 -#define REG_RFD3_HEAD_ADDR_LO 0x155C -#define REG_RFD_RING_SIZE 0x1560 -#define RFD_RING_SIZE_MASK 0x0FFF -#define REG_RX_BUF_SIZE 0x1564 -#define RX_BUF_SIZE_MASK 0xFFFF -#define REG_RRD0_HEAD_ADDR_LO 0x1568 -#define REG_RRD1_HEAD_ADDR_LO 0x156C -#define REG_RRD2_HEAD_ADDR_LO 0x1570 -#define REG_RRD3_HEAD_ADDR_LO 0x1574 -#define REG_RRD_RING_SIZE 0x1578 -#define RRD_RING_SIZE_MASK 0x0FFF -#define REG_HTPD_HEAD_ADDR_LO 0x157C -#define REG_NTPD_HEAD_ADDR_LO 0x1580 -#define REG_TPD_RING_SIZE 0x1584 -#define TPD_RING_SIZE_MASK 0xFFFF -#define REG_CMB_BASE_ADDR_LO 0x1588 - -/* RSS about */ -#define REG_RSS_KEY0 0x14B0 -#define REG_RSS_KEY1 0x14B4 -#define REG_RSS_KEY2 0x14B8 -#define REG_RSS_KEY3 0x14BC -#define REG_RSS_KEY4 0x14C0 -#define REG_RSS_KEY5 0x14C4 -#define REG_RSS_KEY6 0x14C8 -#define REG_RSS_KEY7 0x14CC -#define REG_RSS_KEY8 0x14D0 -#define REG_RSS_KEY9 0x14D4 -#define REG_IDT_TABLE0 0x14E0 -#define REG_IDT_TABLE1 0x14E4 -#define REG_IDT_TABLE2 0x14E8 -#define REG_IDT_TABLE3 0x14EC -#define REG_IDT_TABLE4 0x14F0 -#define REG_IDT_TABLE5 0x14F4 -#define REG_IDT_TABLE6 0x14F8 -#define REG_IDT_TABLE7 0x14FC -#define REG_IDT_TABLE REG_IDT_TABLE0 -#define REG_RSS_HASH_VALUE 0x15B0 -#define REG_RSS_HASH_FLAG 0x15B4 -#define REG_BASE_CPU_NUMBER 0x15B8 - -/* TXQ Control Register */ -#define REG_TXQ_CTRL 0x1590 -#define TXQ_NUM_TPD_BURST_MASK 0xF -#define TXQ_NUM_TPD_BURST_SHIFT 0 -#define TXQ_CTRL_IP_OPTION_EN 0x10 -#define TXQ_CTRL_EN 0x20 -#define TXQ_CTRL_ENH_MODE 0x40 -#define TXQ_CTRL_LS_8023_EN 0x80 -#define TXQ_TXF_BURST_NUM_SHIFT 16 -#define TXQ_TXF_BURST_NUM_MASK 0xFFFF - -/* Jumbo packet Threshold for task offload */ -#define REG_TX_TSO_OFFLOAD_THRESH 0x1594 /* In 8-bytes */ -#define TX_TSO_OFFLOAD_THRESH_MASK 0x07FF - -#define REG_TXF_WATER_MARK 0x1598 /* In 8-bytes */ -#define TXF_WATER_MARK_MASK 0x0FFF -#define TXF_LOW_WATER_MARK_SHIFT 0 -#define TXF_HIGH_WATER_MARK_SHIFT 16 -#define TXQ_CTRL_BURST_MODE_EN 0x80000000 - -#define REG_THRUPUT_MON_CTRL 0x159C -#define THRUPUT_MON_RATE_MASK 0x3 -#define THRUPUT_MON_RATE_SHIFT 0 -#define THRUPUT_MON_EN 0x80 - -/* RXQ Control Register */ -#define REG_RXQ_CTRL 0x15A0 -#define ASPM_THRUPUT_LIMIT_MASK 0x3 -#define ASPM_THRUPUT_LIMIT_SHIFT 0 -#define ASPM_THRUPUT_LIMIT_NO 0x00 -#define ASPM_THRUPUT_LIMIT_1M 0x01 -#define ASPM_THRUPUT_LIMIT_10M 0x02 -#define ASPM_THRUPUT_LIMIT_100M 0x04 -#define RXQ1_CTRL_EN 0x10 -#define RXQ2_CTRL_EN 0x20 -#define RXQ3_CTRL_EN 0x40 -#define IPV6_CHKSUM_CTRL_EN 0x80 -#define RSS_HASH_BITS_MASK 0x00FF -#define RSS_HASH_BITS_SHIFT 8 -#define RSS_HASH_IPV4 0x10000 -#define RSS_HASH_IPV4_TCP 0x20000 -#define RSS_HASH_IPV6 0x40000 -#define RSS_HASH_IPV6_TCP 0x80000 -#define RXQ_RFD_BURST_NUM_MASK 0x003F -#define RXQ_RFD_BURST_NUM_SHIFT 20 -#define RSS_MODE_MASK 0x0003 -#define RSS_MODE_SHIFT 26 -#define RSS_NIP_QUEUE_SEL_MASK 0x1 -#define RSS_NIP_QUEUE_SEL_SHIFT 28 -#define RRS_HASH_CTRL_EN 0x20000000 -#define RX_CUT_THRU_EN 0x40000000 -#define RXQ_CTRL_EN 0x80000000 - -#define REG_RFD_FREE_THRESH 0x15A4 -#define RFD_FREE_THRESH_MASK 0x003F -#define RFD_FREE_HI_THRESH_SHIFT 0 -#define RFD_FREE_LO_THRESH_SHIFT 6 - -/* RXF flow control register */ -#define REG_RXQ_RXF_PAUSE_THRESH 0x15A8 -#define RXQ_RXF_PAUSE_TH_HI_SHIFT 0 -#define RXQ_RXF_PAUSE_TH_HI_MASK 0x0FFF -#define RXQ_RXF_PAUSE_TH_LO_SHIFT 16 -#define RXQ_RXF_PAUSE_TH_LO_MASK 0x0FFF - -#define REG_RXD_DMA_CTRL 0x15AC -#define RXD_DMA_THRESH_MASK 0x0FFF /* In 8-bytes */ -#define RXD_DMA_THRESH_SHIFT 0 -#define RXD_DMA_DOWN_TIMER_MASK 0xFFFF -#define RXD_DMA_DOWN_TIMER_SHIFT 16 - -/* DMA Engine Control Register */ -#define REG_DMA_CTRL 0x15C0 -#define DMA_CTRL_DMAR_IN_ORDER 0x1 -#define DMA_CTRL_DMAR_ENH_ORDER 0x2 -#define DMA_CTRL_DMAR_OUT_ORDER 0x4 -#define DMA_CTRL_RCB_VALUE 0x8 -#define DMA_CTRL_DMAR_BURST_LEN_MASK 0x0007 -#define DMA_CTRL_DMAR_BURST_LEN_SHIFT 4 -#define DMA_CTRL_DMAW_BURST_LEN_MASK 0x0007 -#define DMA_CTRL_DMAW_BURST_LEN_SHIFT 7 -#define DMA_CTRL_DMAR_REQ_PRI 0x400 -#define DMA_CTRL_DMAR_DLY_CNT_MASK 0x001F -#define DMA_CTRL_DMAR_DLY_CNT_SHIFT 11 -#define DMA_CTRL_DMAW_DLY_CNT_MASK 0x000F -#define DMA_CTRL_DMAW_DLY_CNT_SHIFT 16 -#define DMA_CTRL_CMB_EN 0x100000 -#define DMA_CTRL_SMB_EN 0x200000 -#define DMA_CTRL_CMB_NOW 0x400000 -#define MAC_CTRL_SMB_DIS 0x1000000 -#define DMA_CTRL_SMB_NOW 0x80000000 - -/* CMB/SMB Control Register */ -#define REG_SMB_STAT_TIMER 0x15C4 /* 2us resolution */ -#define SMB_STAT_TIMER_MASK 0xFFFFFF -#define REG_CMB_TPD_THRESH 0x15C8 -#define CMB_TPD_THRESH_MASK 0xFFFF -#define REG_CMB_TX_TIMER 0x15CC /* 2us resolution */ -#define CMB_TX_TIMER_MASK 0xFFFF - -/* Mail box */ -#define MB_RFDX_PROD_IDX_MASK 0xFFFF -#define REG_MB_RFD0_PROD_IDX 0x15E0 -#define REG_MB_RFD1_PROD_IDX 0x15E4 -#define REG_MB_RFD2_PROD_IDX 0x15E8 -#define REG_MB_RFD3_PROD_IDX 0x15EC - -#define MB_PRIO_PROD_IDX_MASK 0xFFFF -#define REG_MB_PRIO_PROD_IDX 0x15F0 -#define MB_HTPD_PROD_IDX_SHIFT 0 -#define MB_NTPD_PROD_IDX_SHIFT 16 - -#define MB_PRIO_CONS_IDX_MASK 0xFFFF -#define REG_MB_PRIO_CONS_IDX 0x15F4 -#define MB_HTPD_CONS_IDX_SHIFT 0 -#define MB_NTPD_CONS_IDX_SHIFT 16 - -#define REG_MB_RFD01_CONS_IDX 0x15F8 -#define MB_RFD0_CONS_IDX_MASK 0x0000FFFF -#define MB_RFD1_CONS_IDX_MASK 0xFFFF0000 -#define REG_MB_RFD23_CONS_IDX 0x15FC -#define MB_RFD2_CONS_IDX_MASK 0x0000FFFF -#define MB_RFD3_CONS_IDX_MASK 0xFFFF0000 - -/* Interrupt Status Register */ -#define REG_ISR 0x1600 -#define ISR_SMB 0x00000001 -#define ISR_TIMER 0x00000002 -/* - * Software manual interrupt, for debug. Set when SW_MAN_INT_EN is set - * in Table 51 Selene Master Control Register (Offset 0x1400). - */ -#define ISR_MANUAL 0x00000004 -#define ISR_HW_RXF_OV 0x00000008 /* RXF overflow interrupt */ -#define ISR_RFD0_UR 0x00000010 /* RFD0 under run */ -#define ISR_RFD1_UR 0x00000020 -#define ISR_RFD2_UR 0x00000040 -#define ISR_RFD3_UR 0x00000080 -#define ISR_TXF_UR 0x00000100 -#define ISR_DMAR_TO_RST 0x00000200 -#define ISR_DMAW_TO_RST 0x00000400 -#define ISR_TX_CREDIT 0x00000800 -#define ISR_GPHY 0x00001000 -/* GPHY low power state interrupt */ -#define ISR_GPHY_LPW 0x00002000 -#define ISR_TXQ_TO_RST 0x00004000 -#define ISR_TX_PKT 0x00008000 -#define ISR_RX_PKT_0 0x00010000 -#define ISR_RX_PKT_1 0x00020000 -#define ISR_RX_PKT_2 0x00040000 -#define ISR_RX_PKT_3 0x00080000 -#define ISR_MAC_RX 0x00100000 -#define ISR_MAC_TX 0x00200000 -#define ISR_UR_DETECTED 0x00400000 -#define ISR_FERR_DETECTED 0x00800000 -#define ISR_NFERR_DETECTED 0x01000000 -#define ISR_CERR_DETECTED 0x02000000 -#define ISR_PHY_LINKDOWN 0x04000000 -#define ISR_DIS_INT 0x80000000 - -/* Interrupt Mask Register */ -#define REG_IMR 0x1604 - -#define IMR_NORMAL_MASK (\ - ISR_MANUAL |\ - ISR_HW_RXF_OV |\ - ISR_RFD0_UR |\ - ISR_TXF_UR |\ - ISR_DMAR_TO_RST |\ - ISR_TXQ_TO_RST |\ - ISR_DMAW_TO_RST |\ - ISR_GPHY |\ - ISR_TX_PKT |\ - ISR_RX_PKT_0 |\ - ISR_GPHY_LPW |\ - ISR_PHY_LINKDOWN) - -#define ISR_RX_PKT (\ - ISR_RX_PKT_0 |\ - ISR_RX_PKT_1 |\ - ISR_RX_PKT_2 |\ - ISR_RX_PKT_3) - -#define ISR_OVER (\ - ISR_RFD0_UR |\ - ISR_RFD1_UR |\ - ISR_RFD2_UR |\ - ISR_RFD3_UR |\ - ISR_HW_RXF_OV |\ - ISR_TXF_UR) - -#define ISR_ERROR (\ - ISR_DMAR_TO_RST |\ - ISR_TXQ_TO_RST |\ - ISR_DMAW_TO_RST |\ - ISR_PHY_LINKDOWN) - -#define REG_INT_RETRIG_TIMER 0x1608 -#define INT_RETRIG_TIMER_MASK 0xFFFF - -#define REG_HDS_CTRL 0x160C -#define HDS_CTRL_EN 0x0001 -#define HDS_CTRL_BACKFILLSIZE_SHIFT 8 -#define HDS_CTRL_BACKFILLSIZE_MASK 0x0FFF -#define HDS_CTRL_MAX_HDRSIZE_SHIFT 20 -#define HDS_CTRL_MAC_HDRSIZE_MASK 0x0FFF - -#define REG_MAC_RX_STATUS_BIN 0x1700 -#define REG_MAC_RX_STATUS_END 0x175c -#define REG_MAC_TX_STATUS_BIN 0x1760 -#define REG_MAC_TX_STATUS_END 0x17c0 - -/* DEBUG ADDR */ -#define REG_DEBUG_DATA0 0x1900 -#define REG_DEBUG_DATA1 0x1904 - -/* PHY Control Register */ -#define MII_BMCR 0x00 -#define BMCR_SPEED_SELECT_MSB 0x0040 /* bits 6,13: 10=1000, 01=100, 00=10 */ -#define BMCR_COLL_TEST_ENABLE 0x0080 /* Collision test enable */ -#define BMCR_FULL_DUPLEX 0x0100 /* FDX =1, half duplex =0 */ -#define BMCR_RESTART_AUTO_NEG 0x0200 /* Restart auto negotiation */ -#define BMCR_ISOLATE 0x0400 /* Isolate PHY from MII */ -#define BMCR_POWER_DOWN 0x0800 /* Power down */ -#define BMCR_AUTO_NEG_EN 0x1000 /* Auto Neg Enable */ -#define BMCR_SPEED_SELECT_LSB 0x2000 /* bits 6,13: 10=1000, 01=100, 00=10 */ -#define BMCR_LOOPBACK 0x4000 /* 0 = normal, 1 = loopback */ -#define BMCR_RESET 0x8000 /* 0 = normal, 1 = PHY reset */ -#define BMCR_SPEED_MASK 0x2040 -#define BMCR_SPEED_1000 0x0040 -#define BMCR_SPEED_100 0x2000 -#define BMCR_SPEED_10 0x0000 - -/* PHY Status Register */ -#define MII_BMSR 0x01 -#define BMMSR_EXTENDED_CAPS 0x0001 /* Extended register capabilities */ -#define BMSR_JABBER_DETECT 0x0002 /* Jabber Detected */ -#define BMSR_LINK_STATUS 0x0004 /* Link Status 1 = link */ -#define BMSR_AUTONEG_CAPS 0x0008 /* Auto Neg Capable */ -#define BMSR_REMOTE_FAULT 0x0010 /* Remote Fault Detect */ -#define BMSR_AUTONEG_COMPLETE 0x0020 /* Auto Neg Complete */ -#define BMSR_PREAMBLE_SUPPRESS 0x0040 /* Preamble may be suppressed */ -#define BMSR_EXTENDED_STATUS 0x0100 /* Ext. status info in Reg 0x0F */ -#define BMSR_100T2_HD_CAPS 0x0200 /* 100T2 Half Duplex Capable */ -#define BMSR_100T2_FD_CAPS 0x0400 /* 100T2 Full Duplex Capable */ -#define BMSR_10T_HD_CAPS 0x0800 /* 10T Half Duplex Capable */ -#define BMSR_10T_FD_CAPS 0x1000 /* 10T Full Duplex Capable */ -#define BMSR_100X_HD_CAPS 0x2000 /* 100X Half Duplex Capable */ -#define BMMII_SR_100X_FD_CAPS 0x4000 /* 100X Full Duplex Capable */ -#define BMMII_SR_100T4_CAPS 0x8000 /* 100T4 Capable */ - -#define MII_PHYSID1 0x02 -#define MII_PHYSID2 0x03 - -/* Autoneg Advertisement Register */ -#define MII_ADVERTISE 0x04 -#define ADVERTISE_SPEED_MASK 0x01E0 -#define ADVERTISE_DEFAULT_CAP 0x0DE0 - -/* 1000BASE-T Control Register */ -#define MII_GIGA_CR 0x09 -#define GIGA_CR_1000T_REPEATER_DTE 0x0400 /* 1=Repeater/switch device port 0=DTE device */ - -#define GIGA_CR_1000T_MS_VALUE 0x0800 /* 1=Configure PHY as Master 0=Configure PHY as Slave */ -#define GIGA_CR_1000T_MS_ENABLE 0x1000 /* 1=Master/Slave manual config value 0=Automatic Master/Slave config */ -#define GIGA_CR_1000T_TEST_MODE_NORMAL 0x0000 /* Normal Operation */ -#define GIGA_CR_1000T_TEST_MODE_1 0x2000 /* Transmit Waveform test */ -#define GIGA_CR_1000T_TEST_MODE_2 0x4000 /* Master Transmit Jitter test */ -#define GIGA_CR_1000T_TEST_MODE_3 0x6000 /* Slave Transmit Jitter test */ -#define GIGA_CR_1000T_TEST_MODE_4 0x8000 /* Transmitter Distortion test */ -#define GIGA_CR_1000T_SPEED_MASK 0x0300 -#define GIGA_CR_1000T_DEFAULT_CAP 0x0300 - -/* PHY Specific Status Register */ -#define MII_GIGA_PSSR 0x11 -#define GIGA_PSSR_SPD_DPLX_RESOLVED 0x0800 /* 1=Speed & Duplex resolved */ -#define GIGA_PSSR_DPLX 0x2000 /* 1=Duplex 0=Half Duplex */ -#define GIGA_PSSR_SPEED 0xC000 /* Speed, bits 14:15 */ -#define GIGA_PSSR_10MBS 0x0000 /* 00=10Mbs */ -#define GIGA_PSSR_100MBS 0x4000 /* 01=100Mbs */ -#define GIGA_PSSR_1000MBS 0x8000 /* 10=1000Mbs */ - -/* PHY Interrupt Enable Register */ -#define MII_IER 0x12 -#define IER_LINK_UP 0x0400 -#define IER_LINK_DOWN 0x0800 - -/* PHY Interrupt Status Register */ -#define MII_ISR 0x13 -#define ISR_LINK_UP 0x0400 -#define ISR_LINK_DOWN 0x0800 - -/* Cable-Detect-Test Control Register */ -#define MII_CDTC 0x16 -#define CDTC_EN_OFF 0 /* sc */ -#define CDTC_EN_BITS 1 -#define CDTC_PAIR_OFF 8 -#define CDTC_PAIR_BIT 2 - -/* Cable-Detect-Test Status Register */ -#define MII_CDTS 0x1C -#define CDTS_STATUS_OFF 8 -#define CDTS_STATUS_BITS 2 -#define CDTS_STATUS_NORMAL 0 -#define CDTS_STATUS_SHORT 1 -#define CDTS_STATUS_OPEN 2 -#define CDTS_STATUS_INVALID 3 - -#define MII_DBG_ADDR 0x1D -#define MII_DBG_DATA 0x1E - -#define MII_ANA_CTRL_0 0x0 -#define ANA_RESTART_CAL 0x0001 -#define ANA_MANUL_SWICH_ON_SHIFT 0x1 -#define ANA_MANUL_SWICH_ON_MASK 0xF -#define ANA_MAN_ENABLE 0x0020 -#define ANA_SEL_HSP 0x0040 -#define ANA_EN_HB 0x0080 -#define ANA_EN_HBIAS 0x0100 -#define ANA_OEN_125M 0x0200 -#define ANA_EN_LCKDT 0x0400 -#define ANA_LCKDT_PHY 0x0800 -#define ANA_AFE_MODE 0x1000 -#define ANA_VCO_SLOW 0x2000 -#define ANA_VCO_FAST 0x4000 -#define ANA_SEL_CLK125M_DSP 0x8000 - -#define MII_ANA_CTRL_4 0x4 -#define ANA_IECHO_ADJ_MASK 0xF -#define ANA_IECHO_ADJ_3_SHIFT 0 -#define ANA_IECHO_ADJ_2_SHIFT 4 -#define ANA_IECHO_ADJ_1_SHIFT 8 -#define ANA_IECHO_ADJ_0_SHIFT 12 - -#define MII_ANA_CTRL_5 0x5 -#define ANA_SERDES_CDR_BW_SHIFT 0 -#define ANA_SERDES_CDR_BW_MASK 0x3 -#define ANA_MS_PAD_DBG 0x0004 -#define ANA_SPEEDUP_DBG 0x0008 -#define ANA_SERDES_TH_LOS_SHIFT 4 -#define ANA_SERDES_TH_LOS_MASK 0x3 -#define ANA_SERDES_EN_DEEM 0x0040 -#define ANA_SERDES_TXELECIDLE 0x0080 -#define ANA_SERDES_BEACON 0x0100 -#define ANA_SERDES_HALFTXDR 0x0200 -#define ANA_SERDES_SEL_HSP 0x0400 -#define ANA_SERDES_EN_PLL 0x0800 -#define ANA_SERDES_EN 0x1000 -#define ANA_SERDES_EN_LCKDT 0x2000 - -#define MII_ANA_CTRL_11 0xB -#define ANA_PS_HIB_EN 0x8000 - -#define MII_ANA_CTRL_18 0x12 -#define ANA_TEST_MODE_10BT_01SHIFT 0 -#define ANA_TEST_MODE_10BT_01MASK 0x3 -#define ANA_LOOP_SEL_10BT 0x0004 -#define ANA_RGMII_MODE_SW 0x0008 -#define ANA_EN_LONGECABLE 0x0010 -#define ANA_TEST_MODE_10BT_2 0x0020 -#define ANA_EN_10BT_IDLE 0x0400 -#define ANA_EN_MASK_TB 0x0800 -#define ANA_TRIGGER_SEL_TIMER_SHIFT 12 -#define ANA_TRIGGER_SEL_TIMER_MASK 0x3 -#define ANA_INTERVAL_SEL_TIMER_SHIFT 14 -#define ANA_INTERVAL_SEL_TIMER_MASK 0x3 - -#define MII_ANA_CTRL_41 0x29 -#define ANA_TOP_PS_EN 0x8000 - -#define MII_ANA_CTRL_54 0x36 -#define ANA_LONG_CABLE_TH_100_SHIFT 0 -#define ANA_LONG_CABLE_TH_100_MASK 0x3F -#define ANA_DESERVED 0x0040 -#define ANA_EN_LIT_CH 0x0080 -#define ANA_SHORT_CABLE_TH_100_SHIFT 8 -#define ANA_SHORT_CABLE_TH_100_MASK 0x3F -#define ANA_BP_BAD_LINK_ACCUM 0x4000 -#define ANA_BP_SMALL_BW 0x8000 - -#endif /*_ATL1C_HW_H_*/ diff --git a/src/atl1c/atl1c_main.c b/src/atl1c/atl1c_main.c deleted file mode 100644 index 50799db..0000000 --- a/src/atl1c/atl1c_main.c +++ /dev/null @@ -1,2801 +0,0 @@ -/* - * Copyright(c) 2008 - 2009 Atheros Corporation. All rights reserved. - * - * Derived from Intel e1000 driver - * Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#include "atl1c.h" - -#define ATL1C_DRV_VERSION "1.0.0.1-NAPI" -char atl1c_driver_name[] = "atl1c"; -char atl1c_driver_version[] = ATL1C_DRV_VERSION; -#define PCI_DEVICE_ID_ATTANSIC_L2C 0x1062 -#define PCI_DEVICE_ID_ATTANSIC_L1C 0x1063 -/* - * atl1c_pci_tbl - PCI Device ID Table - * - * Wildcard entries (PCI_ANY_ID) should come last - * Last entry must be all 0s - * - * { Vendor ID, Device ID, SubVendor ID, SubDevice ID, - * Class, Class Mask, private data (not used) } - */ -static struct pci_device_id atl1c_pci_tbl[] = { - {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATTANSIC_L1C)}, - {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATTANSIC_L2C)}, - /* required last entry */ - { 0 } -}; -MODULE_DEVICE_TABLE(pci, atl1c_pci_tbl); - -MODULE_AUTHOR("Jie Yang jie.yang@atheros.com"); -MODULE_DESCRIPTION("Atheros 1000M Ethernet Network Driver"); -MODULE_LICENSE("GPL"); -MODULE_VERSION(ATL1C_DRV_VERSION); - -static int atl1c_stop_mac(struct atl1c_hw *hw); -static void atl1c_enable_rx_ctrl(struct atl1c_hw *hw); -static void atl1c_enable_tx_ctrl(struct atl1c_hw *hw); -static void atl1c_disable_l0s_l1(struct atl1c_hw *hw); -static void atl1c_set_aspm(struct atl1c_hw *hw, bool linkup); -static void atl1c_setup_mac_ctrl(struct atl1c_adapter *adapter); -static void atl1c_clean_rx_irq(struct atl1c_adapter *adapter, u8 que, - int *work_done, int work_to_do); - -static const u16 atl1c_pay_load_size[] = { - 128, 256, 512, 1024, 2048, 4096, -}; - -static const u16 atl1c_rfd_prod_idx_regs[AT_MAX_RECEIVE_QUEUE] = -{ - REG_MB_RFD0_PROD_IDX, - REG_MB_RFD1_PROD_IDX, - REG_MB_RFD2_PROD_IDX, - REG_MB_RFD3_PROD_IDX -}; - -static const u16 atl1c_rfd_addr_lo_regs[AT_MAX_RECEIVE_QUEUE] = -{ - REG_RFD0_HEAD_ADDR_LO, - REG_RFD1_HEAD_ADDR_LO, - REG_RFD2_HEAD_ADDR_LO, - REG_RFD3_HEAD_ADDR_LO -}; - -static const u16 atl1c_rrd_addr_lo_regs[AT_MAX_RECEIVE_QUEUE] = -{ - REG_RRD0_HEAD_ADDR_LO, - REG_RRD1_HEAD_ADDR_LO, - REG_RRD2_HEAD_ADDR_LO, - REG_RRD3_HEAD_ADDR_LO -}; - -static const u32 atl1c_default_msg = NETIF_MSG_DRV | NETIF_MSG_PROBE | - NETIF_MSG_LINK | NETIF_MSG_TIMER | NETIF_MSG_IFDOWN | NETIF_MSG_IFUP; - -/* - * atl1c_init_pcie - init PCIE module - */ -static void atl1c_reset_pcie(struct atl1c_hw *hw, u32 flag) -{ - u32 data; - u32 pci_cmd; - struct pci_dev *pdev = hw->adapter->pdev; - - AT_READ_REG(hw, PCI_COMMAND, &pci_cmd); - pci_cmd &= ~PCI_COMMAND_INTX_DISABLE; - pci_cmd |= (PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | - PCI_COMMAND_IO); - AT_WRITE_REG(hw, PCI_COMMAND, pci_cmd); - - /* - * Clear any PowerSaveing Settings - */ - pci_enable_wake(pdev, PCI_D3hot, 0); - pci_enable_wake(pdev, PCI_D3cold, 0); - - /* - * Mask some pcie error bits - */ - AT_READ_REG(hw, REG_PCIE_UC_SEVERITY, &data); - data &= ~PCIE_UC_SERVRITY_DLP; - data &= ~PCIE_UC_SERVRITY_FCP; - AT_WRITE_REG(hw, REG_PCIE_UC_SEVERITY, data); - - if (flag & ATL1C_PCIE_L0S_L1_DISABLE) - atl1c_disable_l0s_l1(hw); - if (flag & ATL1C_PCIE_PHY_RESET) - AT_WRITE_REG(hw, REG_GPHY_CTRL, GPHY_CTRL_DEFAULT); - else - AT_WRITE_REG(hw, REG_GPHY_CTRL, - GPHY_CTRL_DEFAULT | GPHY_CTRL_EXT_RESET); - - msleep(1); -} - -/* - * atl1c_irq_enable - Enable default interrupt generation settings - * @adapter: board private structure - */ -static inline void atl1c_irq_enable(struct atl1c_adapter *adapter) -{ - if (likely(atomic_dec_and_test(&adapter->irq_sem))) { - AT_WRITE_REG(&adapter->hw, REG_ISR, 0x7FFFFFFF); - AT_WRITE_REG(&adapter->hw, REG_IMR, adapter->hw.intr_mask); - AT_WRITE_FLUSH(&adapter->hw); - } -} - -/* - * atl1c_irq_disable - Mask off interrupt generation on the NIC - * @adapter: board private structure - */ -static inline void atl1c_irq_disable(struct atl1c_adapter *adapter) -{ - atomic_inc(&adapter->irq_sem); - AT_WRITE_REG(&adapter->hw, REG_IMR, 0); - AT_WRITE_FLUSH(&adapter->hw); - synchronize_irq(adapter->pdev->irq); -} - -/* - * atl1c_irq_reset - reset interrupt confiure on the NIC - * @adapter: board private structure - */ -static inline void atl1c_irq_reset(struct atl1c_adapter *adapter) -{ - atomic_set(&adapter->irq_sem, 1); - atl1c_irq_enable(adapter); -} - -/* - * atl1c_wait_until_idle - wait up to AT_HW_MAX_IDLE_DELAY reads - * of the idle status register until the device is actually idle - */ -static u32 atl1c_wait_until_idle(struct atl1c_hw *hw) -{ - int timeout; - u32 data; - - for (timeout = 0; timeout < AT_HW_MAX_IDLE_DELAY; timeout++) { - AT_READ_REG(hw, REG_IDLE_STATUS, &data); - if ((data & IDLE_STATUS_MASK) == 0) - return 0; - msleep(1); - } - return data; -} - -/* - * atl1c_phy_config - Timer Call-back - * @data: pointer to netdev cast into an unsigned long - */ -static void atl1c_phy_config(unsigned long data) -{ - struct atl1c_adapter *adapter = (struct atl1c_adapter *) data; - struct atl1c_hw *hw = &adapter->hw; - unsigned long flags; - - spin_lock_irqsave(&adapter->mdio_lock, flags); - atl1c_restart_autoneg(hw); - spin_unlock_irqrestore(&adapter->mdio_lock, flags); -} - -void atl1c_reinit_locked(struct atl1c_adapter *adapter) -{ - - WARN_ON(in_interrupt()); - atl1c_down(adapter); - atl1c_up(adapter); - clear_bit(__AT_RESETTING, &adapter->flags); -} - -static void atl1c_reset_task(struct work_struct *work) -{ - struct atl1c_adapter *adapter; - struct net_device *netdev; - - adapter = container_of(work, struct atl1c_adapter, reset_task); - netdev = adapter->netdev; - - netif_device_detach(netdev); - atl1c_down(adapter); - atl1c_up(adapter); - netif_device_attach(netdev); -} - -static void atl1c_check_link_status(struct atl1c_adapter *adapter) -{ - struct atl1c_hw *hw = &adapter->hw; - struct net_device *netdev = adapter->netdev; - struct pci_dev *pdev = adapter->pdev; - int err; - unsigned long flags; - u16 speed, duplex, phy_data; - - spin_lock_irqsave(&adapter->mdio_lock, flags); - /* MII_BMSR must read twise */ - atl1c_read_phy_reg(hw, MII_BMSR, &phy_data); - atl1c_read_phy_reg(hw, MII_BMSR, &phy_data); - spin_unlock_irqrestore(&adapter->mdio_lock, flags); - - if ((phy_data & BMSR_LSTATUS) == 0) { - /* link down */ - if (netif_carrier_ok(netdev)) { - hw->hibernate = true; - if (atl1c_stop_mac(hw) != 0) - if (netif_msg_hw(adapter)) - dev_warn(&pdev->dev, - "stop mac failed\n"); - atl1c_set_aspm(hw, false); - } - netif_carrier_off(netdev); - } else { - /* Link Up */ - hw->hibernate = false; - spin_lock_irqsave(&adapter->mdio_lock, flags); - err = atl1c_get_speed_and_duplex(hw, &speed, &duplex); - spin_unlock_irqrestore(&adapter->mdio_lock, flags); - if (unlikely(err)) - return; - /* link result is our setting */ - if (adapter->link_speed != speed || - adapter->link_duplex != duplex) { - adapter->link_speed = speed; - adapter->link_duplex = duplex; - atl1c_set_aspm(hw, true); - atl1c_enable_tx_ctrl(hw); - atl1c_enable_rx_ctrl(hw); - atl1c_setup_mac_ctrl(adapter); - if (netif_msg_link(adapter)) - dev_info(&pdev->dev, - "%s: %s NIC Link is Up<%d Mbps %s>\n", - atl1c_driver_name, netdev->name, - adapter->link_speed, - adapter->link_duplex == FULL_DUPLEX ? - "Full Duplex" : "Half Duplex"); - } - if (!netif_carrier_ok(netdev)) - netif_carrier_on(netdev); - } -} - -/* - * atl1c_link_chg_task - deal with link change event Out of interrupt context - * @netdev: network interface device structure - */ -static void atl1c_link_chg_task(struct work_struct *work) -{ - struct atl1c_adapter *adapter; - - adapter = container_of(work, struct atl1c_adapter, link_chg_task); - atl1c_check_link_status(adapter); -} - -static void atl1c_link_chg_event(struct atl1c_adapter *adapter) -{ - struct net_device *netdev = adapter->netdev; - struct pci_dev *pdev = adapter->pdev; - u16 phy_data; - u16 link_up; - - spin_lock(&adapter->mdio_lock); - atl1c_read_phy_reg(&adapter->hw, MII_BMSR, &phy_data); - atl1c_read_phy_reg(&adapter->hw, MII_BMSR, &phy_data); - spin_unlock(&adapter->mdio_lock); - link_up = phy_data & BMSR_LSTATUS; - /* notify upper layer link down ASAP */ - if (!link_up) { - if (netif_carrier_ok(netdev)) { - /* old link state: Up */ - netif_carrier_off(netdev); - if (netif_msg_link(adapter)) - dev_info(&pdev->dev, - "%s: %s NIC Link is Down\n", - atl1c_driver_name, netdev->name); - adapter->link_speed = SPEED_0; - } - } - schedule_work(&adapter->link_chg_task); -} - -static void atl1c_del_timer(struct atl1c_adapter *adapter) -{ - del_timer_sync(&adapter->phy_config_timer); -} - -static void atl1c_cancel_work(struct atl1c_adapter *adapter) -{ - cancel_work_sync(&adapter->reset_task); - cancel_work_sync(&adapter->link_chg_task); -} - -/* - * atl1c_tx_timeout - Respond to a Tx Hang - * @netdev: network interface device structure - */ -static void atl1c_tx_timeout(struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - - /* Do the reset outside of interrupt context */ - schedule_work(&adapter->reset_task); -} - -/* - * atl1c_set_multi - Multicast and Promiscuous mode set - * @netdev: network interface device structure - * - * The set_multi entry point is called whenever the multicast address - * list or the network interface flags are updated. This routine is - * responsible for configuring the hardware for proper multicast, - * promiscuous mode, and all-multi behavior. - */ -static void atl1c_set_multi(struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct atl1c_hw *hw = &adapter->hw; - struct dev_mc_list *mc_ptr; - u32 mac_ctrl_data; - u32 hash_value; - - /* Check for Promiscuous and All Multicast modes */ - AT_READ_REG(hw, REG_MAC_CTRL, &mac_ctrl_data); - - if (netdev->flags & IFF_PROMISC) { - mac_ctrl_data |= MAC_CTRL_PROMIS_EN; - } else if (netdev->flags & IFF_ALLMULTI) { - mac_ctrl_data |= MAC_CTRL_MC_ALL_EN; - mac_ctrl_data &= ~MAC_CTRL_PROMIS_EN; - } else { - mac_ctrl_data &= ~(MAC_CTRL_PROMIS_EN | MAC_CTRL_MC_ALL_EN); - } - - AT_WRITE_REG(hw, REG_MAC_CTRL, mac_ctrl_data); - - /* clear the old settings from the multicast hash table */ - AT_WRITE_REG(hw, REG_RX_HASH_TABLE, 0); - AT_WRITE_REG_ARRAY(hw, REG_RX_HASH_TABLE, 1, 0); - - /* comoute mc addresses' hash value ,and put it into hash table */ - for (mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) { - hash_value = atl1c_hash_mc_addr(hw, mc_ptr->dmi_addr); - atl1c_hash_set(hw, hash_value); - } -} - -static void atl1c_vlan_rx_register(struct net_device *netdev, - struct vlan_group *grp) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct pci_dev *pdev = adapter->pdev; - u32 mac_ctrl_data = 0; - - if (netif_msg_pktdata(adapter)) - dev_dbg(&pdev->dev, "atl1c_vlan_rx_register\n"); - - atl1c_irq_disable(adapter); - - adapter->vlgrp = grp; - AT_READ_REG(&adapter->hw, REG_MAC_CTRL, &mac_ctrl_data); - - if (grp) { - /* enable VLAN tag insert/strip */ - mac_ctrl_data |= MAC_CTRL_RMV_VLAN; - } else { - /* disable VLAN tag insert/strip */ - mac_ctrl_data &= ~MAC_CTRL_RMV_VLAN; - } - - AT_WRITE_REG(&adapter->hw, REG_MAC_CTRL, mac_ctrl_data); - atl1c_irq_enable(adapter); -} - -static void atl1c_restore_vlan(struct atl1c_adapter *adapter) -{ - struct pci_dev *pdev = adapter->pdev; - - if (netif_msg_pktdata(adapter)) - dev_dbg(&pdev->dev, "atl1c_restore_vlan !"); - atl1c_vlan_rx_register(adapter->netdev, adapter->vlgrp); -} -/* - * atl1c_set_mac - Change the Ethernet Address of the NIC - * @netdev: network interface device structure - * @p: pointer to an address structure - * - * Returns 0 on success, negative on failure - */ -static int atl1c_set_mac_addr(struct net_device *netdev, void *p) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct sockaddr *addr = p; - - if (!is_valid_ether_addr(addr->sa_data)) - return -EADDRNOTAVAIL; - - if (netif_running(netdev)) - return -EBUSY; - - memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len); - memcpy(adapter->hw.mac_addr, addr->sa_data, netdev->addr_len); - - atl1c_hw_set_mac_addr(&adapter->hw); - - return 0; -} - -static void atl1c_set_rxbufsize(struct atl1c_adapter *adapter, - struct net_device *dev) -{ - int mtu = dev->mtu; - - adapter->rx_buffer_len = mtu > AT_RX_BUF_SIZE ? - roundup(mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN, 8) : AT_RX_BUF_SIZE; -} -/* - * atl1c_change_mtu - Change the Maximum Transfer Unit - * @netdev: network interface device structure - * @new_mtu: new value for maximum frame size - * - * Returns 0 on success, negative on failure - */ -static int atl1c_change_mtu(struct net_device *netdev, int new_mtu) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - int old_mtu = netdev->mtu; - int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN; - - if ((max_frame < ETH_ZLEN + ETH_FCS_LEN) || - (max_frame > MAX_JUMBO_FRAME_SIZE)) { - if (netif_msg_link(adapter)) - dev_warn(&adapter->pdev->dev, "invalid MTU setting\n"); - return -EINVAL; - } - /* set MTU */ - if (old_mtu != new_mtu && netif_running(netdev)) { - while (test_and_set_bit(__AT_RESETTING, &adapter->flags)) - msleep(1); - netdev->mtu = new_mtu; - adapter->hw.max_frame_size = new_mtu; - atl1c_set_rxbufsize(adapter, netdev); - atl1c_down(adapter); - atl1c_up(adapter); - clear_bit(__AT_RESETTING, &adapter->flags); - if (adapter->hw.ctrl_flags & ATL1C_FPGA_VERSION) { - u32 phy_data; - - AT_READ_REG(&adapter->hw, 0x1414, &phy_data); - phy_data |= 0x10000000; - AT_WRITE_REG(&adapter->hw, 0x1414, phy_data); - } - - } - return 0; -} - -/* - * caller should hold mdio_lock - */ -static int atl1c_mdio_read(struct net_device *netdev, int phy_id, int reg_num) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - u16 result; - - atl1c_read_phy_reg(&adapter->hw, reg_num & MDIO_REG_ADDR_MASK, &result); - return result; -} - -static void atl1c_mdio_write(struct net_device *netdev, int phy_id, - int reg_num, int val) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - - atl1c_write_phy_reg(&adapter->hw, reg_num & MDIO_REG_ADDR_MASK, val); -} - -/* - * atl1c_mii_ioctl - - * @netdev: - * @ifreq: - * @cmd: - */ -static int atl1c_mii_ioctl(struct net_device *netdev, - struct ifreq *ifr, int cmd) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct pci_dev *pdev = adapter->pdev; - struct mii_ioctl_data *data = if_mii(ifr); - unsigned long flags; - int retval = 0; - - if (!netif_running(netdev)) - return -EINVAL; - - spin_lock_irqsave(&adapter->mdio_lock, flags); - switch (cmd) { - case SIOCGMIIPHY: - data->phy_id = 0; - break; - - case SIOCGMIIREG: - if (!capable(CAP_NET_ADMIN)) { - retval = -EPERM; - goto out; - } - if (atl1c_read_phy_reg(&adapter->hw, data->reg_num & 0x1F, - &data->val_out)) { - retval = -EIO; - goto out; - } - break; - - case SIOCSMIIREG: - if (!capable(CAP_NET_ADMIN)) { - retval = -EPERM; - goto out; - } - if (data->reg_num & ~(0x1F)) { - retval = -EFAULT; - goto out; - } - - dev_dbg(&pdev->dev, "<atl1c_mii_ioctl> write %x %x", - data->reg_num, data->val_in); - if (atl1c_write_phy_reg(&adapter->hw, - data->reg_num, data->val_in)) { - retval = -EIO; - goto out; - } - break; - - default: - retval = -EOPNOTSUPP; - break; - } -out: - spin_unlock_irqrestore(&adapter->mdio_lock, flags); - return retval; -} - -/* - * atl1c_ioctl - - * @netdev: - * @ifreq: - * @cmd: - */ -static int atl1c_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) -{ - switch (cmd) { - case SIOCGMIIPHY: - case SIOCGMIIREG: - case SIOCSMIIREG: - return atl1c_mii_ioctl(netdev, ifr, cmd); - default: - return -EOPNOTSUPP; - } -} - -/* - * atl1c_alloc_queues - Allocate memory for all rings - * @adapter: board private structure to initialize - * - */ -static int __devinit atl1c_alloc_queues(struct atl1c_adapter *adapter) -{ - return 0; -} - -static void atl1c_set_mac_type(struct atl1c_hw *hw) -{ - switch (hw->device_id) { - case PCI_DEVICE_ID_ATTANSIC_L2C: - hw->nic_type = athr_l2c; - break; - - case PCI_DEVICE_ID_ATTANSIC_L1C: - hw->nic_type = athr_l1c; - break; - - default: - break; - } -} - -static int atl1c_setup_mac_funcs(struct atl1c_hw *hw) -{ - u32 phy_status_data; - u32 link_ctrl_data; - - atl1c_set_mac_type(hw); - AT_READ_REG(hw, REG_PHY_STATUS, &phy_status_data); - AT_READ_REG(hw, REG_LINK_CTRL, &link_ctrl_data); - - hw->ctrl_flags = ATL1C_INTR_CLEAR_ON_READ | - ATL1C_INTR_MODRT_ENABLE | - ATL1C_RX_IPV6_CHKSUM | - ATL1C_TXQ_MODE_ENHANCE; - if (link_ctrl_data & LINK_CTRL_L0S_EN) - hw->ctrl_flags |= ATL1C_ASPM_L0S_SUPPORT; - if (link_ctrl_data & LINK_CTRL_L1_EN) - hw->ctrl_flags |= ATL1C_ASPM_L1_SUPPORT; - - if (hw->nic_type == athr_l1c) { - hw->ctrl_flags |= ATL1C_ASPM_CTRL_MON; - hw->ctrl_flags |= ATL1C_LINK_CAP_1000M; - } - return 0; -} -/* - * atl1c_sw_init - Initialize general software structures (struct atl1c_adapter) - * @adapter: board private structure to initialize - * - * atl1c_sw_init initializes the Adapter private data structure. - * Fields are initialized based on PCI device information and - * OS network device settings (MTU size). - */ -static int __devinit atl1c_sw_init(struct atl1c_adapter *adapter) -{ - struct atl1c_hw *hw = &adapter->hw; - struct pci_dev *pdev = adapter->pdev; - - adapter->wol = 0; - adapter->link_speed = SPEED_0; - adapter->link_duplex = FULL_DUPLEX; - adapter->num_rx_queues = AT_DEF_RECEIVE_QUEUE; - adapter->tpd_ring[0].count = 1024; - adapter->rfd_ring[0].count = 512; - - hw->vendor_id = pdev->vendor; - hw->device_id = pdev->device; - hw->subsystem_vendor_id = pdev->subsystem_vendor; - hw->subsystem_id = pdev->subsystem_device; - - /* before link up, we assume hibernate is true */ - hw->hibernate = true; - hw->media_type = MEDIA_TYPE_AUTO_SENSOR; - if (atl1c_setup_mac_funcs(hw) != 0) { - dev_err(&pdev->dev, "set mac function pointers failed\n"); - return -1; - } - hw->intr_mask = IMR_NORMAL_MASK; - hw->phy_configured = false; - hw->preamble_len = 7; - hw->max_frame_size = adapter->netdev->mtu; - if (adapter->num_rx_queues < 2) { - hw->rss_type = atl1c_rss_disable; - hw->rss_mode = atl1c_rss_mode_disable; - } else { - hw->rss_type = atl1c_rss_ipv4; - hw->rss_mode = atl1c_rss_mul_que_mul_int; - hw->rss_hash_bits = 16; - } - hw->autoneg_advertised = ADVERTISED_Autoneg; - hw->indirect_tab = 0xE4E4E4E4; - hw->base_cpu = 0; - - hw->ict = 50000; /* 100ms */ - hw->smb_timer = 200000; /* 400ms */ - hw->cmb_tpd = 4; - hw->cmb_tx_timer = 1; /* 2 us */ - hw->rx_imt = 200; - hw->tx_imt = 1000; - - hw->tpd_burst = 5; - hw->rfd_burst = 8; - hw->dma_order = atl1c_dma_ord_out; - hw->dmar_block = atl1c_dma_req_1024; - hw->dmaw_block = atl1c_dma_req_1024; - hw->dmar_dly_cnt = 15; - hw->dmaw_dly_cnt = 4; - - if (atl1c_alloc_queues(adapter)) { - dev_err(&pdev->dev, "Unable to allocate memory for queues\n"); - return -ENOMEM; - } - /* TODO */ - atl1c_set_rxbufsize(adapter, adapter->netdev); - atomic_set(&adapter->irq_sem, 1); - spin_lock_init(&adapter->mdio_lock); - spin_lock_init(&adapter->tx_lock); - set_bit(__AT_DOWN, &adapter->flags); - - return 0; -} - -/* - * atl1c_clean_tx_ring - Free Tx-skb - * @adapter: board private structure - */ -static void atl1c_clean_tx_ring(struct atl1c_adapter *adapter, - enum atl1c_trans_queue type) -{ - struct atl1c_tpd_ring *tpd_ring = &adapter->tpd_ring[type]; - struct atl1c_buffer *buffer_info; - struct pci_dev *pdev = adapter->pdev; - u16 index, ring_count; - - ring_count = tpd_ring->count; - for (index = 0; index < ring_count; index++) { - buffer_info = &tpd_ring->buffer_info[index]; - if (buffer_info->state == ATL1_BUFFER_FREE) - continue; - if (buffer_info->dma) - pci_unmap_single(pdev, buffer_info->dma, - buffer_info->length, - PCI_DMA_TODEVICE); - if (buffer_info->skb) - dev_kfree_skb(buffer_info->skb); - buffer_info->dma = 0; - buffer_info->skb = NULL; - buffer_info->state = ATL1_BUFFER_FREE; - } - - /* Zero out Tx-buffers */ - memset(tpd_ring->desc, 0, sizeof(struct atl1c_tpd_desc) * - ring_count); - atomic_set(&tpd_ring->next_to_clean, 0); - tpd_ring->next_to_use = 0; -} - -/* - * atl1c_clean_rx_ring - Free rx-reservation skbs - * @adapter: board private structure - */ -static void atl1c_clean_rx_ring(struct atl1c_adapter *adapter) -{ - struct atl1c_rfd_ring *rfd_ring = adapter->rfd_ring; - struct atl1c_rrd_ring *rrd_ring = adapter->rrd_ring; - struct atl1c_buffer *buffer_info; - struct pci_dev *pdev = adapter->pdev; - int i, j; - - for (i = 0; i < adapter->num_rx_queues; i++) { - for (j = 0; j < rfd_ring[i].count; j++) { - buffer_info = &rfd_ring[i].buffer_info[j]; - if (buffer_info->state == ATL1_BUFFER_FREE) - continue; - if (buffer_info->dma) - pci_unmap_single(pdev, buffer_info->dma, - buffer_info->length, - PCI_DMA_FROMDEVICE); - if (buffer_info->skb) - dev_kfree_skb(buffer_info->skb); - buffer_info->state = ATL1_BUFFER_FREE; - buffer_info->skb = NULL; - } - /* zero out the descriptor ring */ - memset(rfd_ring[i].desc, 0, rfd_ring[i].size); - rfd_ring[i].next_to_clean = 0; - rfd_ring[i].next_to_use = 0; - rrd_ring[i].next_to_use = 0; - rrd_ring[i].next_to_clean = 0; - } -} - -/* - * Read / Write Ptr Initialize: - */ -static void atl1c_init_ring_ptrs(struct atl1c_adapter *adapter) -{ - struct atl1c_tpd_ring *tpd_ring = adapter->tpd_ring; - struct atl1c_rfd_ring *rfd_ring = adapter->rfd_ring; - struct atl1c_rrd_ring *rrd_ring = adapter->rrd_ring; - struct atl1c_buffer *buffer_info; - int i, j; - - for (i = 0; i < AT_MAX_TRANSMIT_QUEUE; i++) { - tpd_ring[i].next_to_use = 0; - atomic_set(&tpd_ring[i].next_to_clean, 0); - buffer_info = tpd_ring[i].buffer_info; - for (j = 0; j < tpd_ring->count; j++) - buffer_info[i].state = ATL1_BUFFER_FREE; - } - for (i = 0; i < adapter->num_rx_queues; i++) { - rfd_ring[i].next_to_use = 0; - rfd_ring[i].next_to_clean = 0; - rrd_ring[i].next_to_use = 0; - rrd_ring[i].next_to_clean = 0; - for (j = 0; j < rfd_ring[i].count; j++) { - buffer_info = &rfd_ring[i].buffer_info[j]; - buffer_info->state = ATL1_BUFFER_FREE; - } - } -} - -/* - * atl1c_free_ring_resources - Free Tx / RX descriptor Resources - * @adapter: board private structure - * - * Free all transmit software resources - */ -static void atl1c_free_ring_resources(struct atl1c_adapter *adapter) -{ - struct pci_dev *pdev = adapter->pdev; - - pci_free_consistent(pdev, adapter->ring_header.size, - adapter->ring_header.desc, - adapter->ring_header.dma); - adapter->ring_header.desc = NULL; - - /* Note: just free tdp_ring.buffer_info, - * it contain rfd_ring.buffer_info, do not double free */ - if (adapter->tpd_ring[0].buffer_info) { - kfree(adapter->tpd_ring[0].buffer_info); - adapter->tpd_ring[0].buffer_info = NULL; - } -} - -/* - * atl1c_setup_mem_resources - allocate Tx / RX descriptor resources - * @adapter: board private structure - * - * Return 0 on success, negative on failure - */ -static int atl1c_setup_ring_resources(struct atl1c_adapter *adapter) -{ - struct pci_dev *pdev = adapter->pdev; - struct atl1c_tpd_ring *tpd_ring = adapter->tpd_ring; - struct atl1c_rfd_ring *rfd_ring = adapter->rfd_ring; - struct atl1c_rrd_ring *rrd_ring = adapter->rrd_ring; - struct atl1c_ring_header *ring_header = &adapter->ring_header; - int num_rx_queues = adapter->num_rx_queues; - int size; - int i; - int count = 0; - int rx_desc_count = 0; - u32 offset = 0; - - rrd_ring[0].count = rfd_ring[0].count; - for (i = 1; i < AT_MAX_TRANSMIT_QUEUE; i++) - tpd_ring[i].count = tpd_ring[0].count; - - for (i = 1; i < adapter->num_rx_queues; i++) - rfd_ring[i].count = rrd_ring[i].count = rfd_ring[0].count; - - /* 2 tpd queue, one high priority queue, - * another normal priority queue */ - size = sizeof(struct atl1c_buffer) * (tpd_ring->count * 2 + - rfd_ring->count * num_rx_queues); - tpd_ring->buffer_info = kzalloc(size, GFP_KERNEL); - if (unlikely(!tpd_ring->buffer_info)) { - dev_err(&pdev->dev, "kzalloc failed, size = %d\n", - size); - goto err_nomem; - } - for (i = 0; i < AT_MAX_TRANSMIT_QUEUE; i++) { - tpd_ring[i].buffer_info = - (struct atl1c_buffer *) (tpd_ring->buffer_info + count); - count += tpd_ring[i].count; - } - - for (i = 0; i < num_rx_queues; i++) { - rfd_ring[i].buffer_info = - (struct atl1c_buffer *) (tpd_ring->buffer_info + count); - count += rfd_ring[i].count; - rx_desc_count += rfd_ring[i].count; - } - /* - * real ring DMA buffer - * each ring/block may need up to 8 bytes for alignment, hence the - * additional bytes tacked onto the end. - */ - ring_header->size = size = - sizeof(struct atl1c_tpd_desc) * tpd_ring->count * 2 + - sizeof(struct atl1c_rx_free_desc) * rx_desc_count + - sizeof(struct atl1c_recv_ret_status) * rx_desc_count + - sizeof(struct atl1c_hw_stats) + - 8 * 4 + 8 * 2 * num_rx_queues; - - ring_header->desc = pci_alloc_consistent(pdev, ring_header->size, - &ring_header->dma); - if (unlikely(!ring_header->desc)) { - dev_err(&pdev->dev, "pci_alloc_consistend failed\n"); - goto err_nomem; - } - memset(ring_header->desc, 0, ring_header->size); - /* init TPD ring */ - - tpd_ring[0].dma = roundup(ring_header->dma, 8); - offset = tpd_ring[0].dma - ring_header->dma; - for (i = 0; i < AT_MAX_TRANSMIT_QUEUE; i++) { - tpd_ring[i].dma = ring_header->dma + offset; - tpd_ring[i].desc = (u8 *) ring_header->desc + offset; - tpd_ring[i].size = - sizeof(struct atl1c_tpd_desc) * tpd_ring[i].count; - offset += roundup(tpd_ring[i].size, 8); - } - /* init RFD ring */ - for (i = 0; i < num_rx_queues; i++) { - rfd_ring[i].dma = ring_header->dma + offset; - rfd_ring[i].desc = (u8 *) ring_header->desc + offset; - rfd_ring[i].size = sizeof(struct atl1c_rx_free_desc) * - rfd_ring[i].count; - offset += roundup(rfd_ring[i].size, 8); - } - - /* init RRD ring */ - for (i = 0; i < num_rx_queues; i++) { - rrd_ring[i].dma = ring_header->dma + offset; - rrd_ring[i].desc = (u8 *) ring_header->desc + offset; - rrd_ring[i].size = sizeof(struct atl1c_recv_ret_status) * - rrd_ring[i].count; - offset += roundup(rrd_ring[i].size, 8); - } - - adapter->smb.dma = ring_header->dma + offset; - adapter->smb.smb = (u8 *)ring_header->desc + offset; - return 0; - -err_nomem: - kfree(tpd_ring->buffer_info); - return -ENOMEM; -} - -static void atl1c_configure_des_ring(struct atl1c_adapter *adapter) -{ - struct atl1c_hw *hw = &adapter->hw; - struct atl1c_rfd_ring *rfd_ring = (struct atl1c_rfd_ring *) - adapter->rfd_ring; - struct atl1c_rrd_ring *rrd_ring = (struct atl1c_rrd_ring *) - adapter->rrd_ring; - struct atl1c_tpd_ring *tpd_ring = (struct atl1c_tpd_ring *) - adapter->tpd_ring; - struct atl1c_cmb *cmb = (struct atl1c_cmb *) &adapter->cmb; - struct atl1c_smb *smb = (struct atl1c_smb *) &adapter->smb; - int i; - - /* TPD */ - AT_WRITE_REG(hw, REG_TX_BASE_ADDR_HI, - (u32)((tpd_ring[atl1c_trans_normal].dma & - AT_DMA_HI_ADDR_MASK) >> 32)); - /* just enable normal priority TX queue */ - AT_WRITE_REG(hw, REG_NTPD_HEAD_ADDR_LO, - (u32)(tpd_ring[atl1c_trans_normal].dma & - AT_DMA_LO_ADDR_MASK)); - AT_WRITE_REG(hw, REG_HTPD_HEAD_ADDR_LO, - (u32)(tpd_ring[atl1c_trans_high].dma & - AT_DMA_LO_ADDR_MASK)); - AT_WRITE_REG(hw, REG_TPD_RING_SIZE, - (u32)(tpd_ring[0].count & TPD_RING_SIZE_MASK)); - - - /* RFD */ - AT_WRITE_REG(hw, REG_RX_BASE_ADDR_HI, - (u32)((rfd_ring[0].dma & AT_DMA_HI_ADDR_MASK) >> 32)); - for (i = 0; i < adapter->num_rx_queues; i++) - AT_WRITE_REG(hw, atl1c_rfd_addr_lo_regs[i], - (u32)(rfd_ring[i].dma & AT_DMA_LO_ADDR_MASK)); - - AT_WRITE_REG(hw, REG_RFD_RING_SIZE, - rfd_ring[0].count & RFD_RING_SIZE_MASK); - AT_WRITE_REG(hw, REG_RX_BUF_SIZE, - adapter->rx_buffer_len & RX_BUF_SIZE_MASK); - - /* RRD */ - for (i = 0; i < adapter->num_rx_queues; i++) - AT_WRITE_REG(hw, atl1c_rrd_addr_lo_regs[i], - (u32)(rrd_ring[i].dma & AT_DMA_LO_ADDR_MASK)); - AT_WRITE_REG(hw, REG_RRD_RING_SIZE, - (rrd_ring[0].count & RRD_RING_SIZE_MASK)); - - /* CMB */ - AT_WRITE_REG(hw, REG_CMB_BASE_ADDR_LO, cmb->dma & AT_DMA_LO_ADDR_MASK); - - /* SMB */ - AT_WRITE_REG(hw, REG_SMB_BASE_ADDR_HI, - (u32)((smb->dma & AT_DMA_HI_ADDR_MASK) >> 32)); - AT_WRITE_REG(hw, REG_SMB_BASE_ADDR_LO, - (u32)(smb->dma & AT_DMA_LO_ADDR_MASK)); - /* Load all of base address above */ - AT_WRITE_REG(hw, REG_LOAD_PTR, 1); -} - -static void atl1c_configure_tx(struct atl1c_adapter *adapter) -{ - struct atl1c_hw *hw = &adapter->hw; - u32 dev_ctrl_data; - u32 max_pay_load; - u16 tx_offload_thresh; - u32 txq_ctrl_data; - u32 extra_size = 0; /* Jumbo frame threshold in QWORD unit */ - - extra_size = ETH_HLEN + VLAN_HLEN + ETH_FCS_LEN; - tx_offload_thresh = MAX_TX_OFFLOAD_THRESH; - AT_WRITE_REG(hw, REG_TX_TSO_OFFLOAD_THRESH, - (tx_offload_thresh >> 3) & TX_TSO_OFFLOAD_THRESH_MASK); - AT_READ_REG(hw, REG_DEVICE_CTRL, &dev_ctrl_data); - max_pay_load = (dev_ctrl_data >> DEVICE_CTRL_MAX_PAYLOAD_SHIFT) & - DEVICE_CTRL_MAX_PAYLOAD_MASK; - hw->dmaw_block = min(max_pay_load, hw->dmaw_block); - max_pay_load = (dev_ctrl_data >> DEVICE_CTRL_MAX_RREQ_SZ_SHIFT) & - DEVICE_CTRL_MAX_RREQ_SZ_MASK; - hw->dmar_block = min(max_pay_load, hw->dmar_block); - - txq_ctrl_data = (hw->tpd_burst & TXQ_NUM_TPD_BURST_MASK) << - TXQ_NUM_TPD_BURST_SHIFT; - if (hw->ctrl_flags & ATL1C_TXQ_MODE_ENHANCE) - txq_ctrl_data |= TXQ_CTRL_ENH_MODE; - txq_ctrl_data |= (atl1c_pay_load_size[hw->dmar_block] & - TXQ_TXF_BURST_NUM_MASK) << TXQ_TXF_BURST_NUM_SHIFT; - - AT_WRITE_REG(hw, REG_TXQ_CTRL, txq_ctrl_data); -} - -static void atl1c_configure_rx(struct atl1c_adapter *adapter) -{ - struct atl1c_hw *hw = &adapter->hw; - u32 rxq_ctrl_data; - - rxq_ctrl_data = (hw->rfd_burst & RXQ_RFD_BURST_NUM_MASK) << - RXQ_RFD_BURST_NUM_SHIFT; - - if (hw->ctrl_flags & ATL1C_RX_IPV6_CHKSUM) - rxq_ctrl_data |= IPV6_CHKSUM_CTRL_EN; - if (hw->rss_type == atl1c_rss_ipv4) - rxq_ctrl_data |= RSS_HASH_IPV4; - if (hw->rss_type == atl1c_rss_ipv4_tcp) - rxq_ctrl_data |= RSS_HASH_IPV4_TCP; - if (hw->rss_type == atl1c_rss_ipv6) - rxq_ctrl_data |= RSS_HASH_IPV6; - if (hw->rss_type == atl1c_rss_ipv6_tcp) - rxq_ctrl_data |= RSS_HASH_IPV6_TCP; - if (hw->rss_type != atl1c_rss_disable) - rxq_ctrl_data |= RRS_HASH_CTRL_EN; - - rxq_ctrl_data |= (hw->rss_mode & RSS_MODE_MASK) << - RSS_MODE_SHIFT; - rxq_ctrl_data |= (hw->rss_hash_bits & RSS_HASH_BITS_MASK) << - RSS_HASH_BITS_SHIFT; - if (hw->ctrl_flags & ATL1C_ASPM_CTRL_MON) - rxq_ctrl_data |= (ASPM_THRUPUT_LIMIT_100M & - ASPM_THRUPUT_LIMIT_MASK) << ASPM_THRUPUT_LIMIT_SHIFT; - - AT_WRITE_REG(hw, REG_RXQ_CTRL, rxq_ctrl_data); -} - -static void atl1c_configure_rss(struct atl1c_adapter *adapter) -{ - struct atl1c_hw *hw = &adapter->hw; - - AT_WRITE_REG(hw, REG_IDT_TABLE, hw->indirect_tab); - AT_WRITE_REG(hw, REG_BASE_CPU_NUMBER, hw->base_cpu); -} - -static void atl1c_configure_dma(struct atl1c_adapter *adapter) -{ - struct atl1c_hw *hw = &adapter->hw; - u32 dma_ctrl_data; - - dma_ctrl_data = DMA_CTRL_DMAR_REQ_PRI; - if (hw->ctrl_flags & ATL1C_CMB_ENABLE) - dma_ctrl_data |= DMA_CTRL_CMB_EN; - if (hw->ctrl_flags & ATL1C_SMB_ENABLE) - dma_ctrl_data |= DMA_CTRL_SMB_EN; - else - dma_ctrl_data |= MAC_CTRL_SMB_DIS; - - switch (hw->dma_order) { - case atl1c_dma_ord_in: - dma_ctrl_data |= DMA_CTRL_DMAR_IN_ORDER; - break; - case atl1c_dma_ord_enh: - dma_ctrl_data |= DMA_CTRL_DMAR_ENH_ORDER; - break; - case atl1c_dma_ord_out: - dma_ctrl_data |= DMA_CTRL_DMAR_OUT_ORDER; - break; - default: - break; - } - - dma_ctrl_data |= (((u32)hw->dmar_block) & DMA_CTRL_DMAR_BURST_LEN_MASK) - << DMA_CTRL_DMAR_BURST_LEN_SHIFT; - dma_ctrl_data |= (((u32)hw->dmaw_block) & DMA_CTRL_DMAW_BURST_LEN_MASK) - << DMA_CTRL_DMAW_BURST_LEN_SHIFT; - dma_ctrl_data |= (((u32)hw->dmar_dly_cnt) & DMA_CTRL_DMAR_DLY_CNT_MASK) - << DMA_CTRL_DMAR_DLY_CNT_SHIFT; - dma_ctrl_data |= (((u32)hw->dmaw_dly_cnt) & DMA_CTRL_DMAW_DLY_CNT_MASK) - << DMA_CTRL_DMAW_DLY_CNT_SHIFT; - - AT_WRITE_REG(hw, REG_DMA_CTRL, dma_ctrl_data); -} - -/* - * Stop the mac, transmit and receive units - * hw - Struct containing variables accessed by shared code - * return : 0 or idle status (if error) - */ -static int atl1c_stop_mac(struct atl1c_hw *hw) -{ - u32 data; - - AT_READ_REG(hw, REG_RXQ_CTRL, &data); - data &= ~(RXQ1_CTRL_EN | RXQ2_CTRL_EN | - RXQ3_CTRL_EN | RXQ_CTRL_EN); - AT_WRITE_REG(hw, REG_RXQ_CTRL, data); - - AT_READ_REG(hw, REG_TXQ_CTRL, &data); - data &= ~TXQ_CTRL_EN; - AT_WRITE_REG(hw, REG_TWSI_CTRL, data); - - atl1c_wait_until_idle(hw); - - AT_READ_REG(hw, REG_MAC_CTRL, &data); - data &= ~(MAC_CTRL_TX_EN | MAC_CTRL_RX_EN); - AT_WRITE_REG(hw, REG_MAC_CTRL, data); - - return (int)atl1c_wait_until_idle(hw); -} - -static void atl1c_enable_rx_ctrl(struct atl1c_hw *hw) -{ - u32 data; - - AT_READ_REG(hw, REG_RXQ_CTRL, &data); - switch (hw->adapter->num_rx_queues) { - case 4: - data |= (RXQ3_CTRL_EN | RXQ2_CTRL_EN | RXQ1_CTRL_EN); - break; - case 3: - data |= (RXQ2_CTRL_EN | RXQ1_CTRL_EN); - break; - case 2: - data |= RXQ1_CTRL_EN; - break; - default: - break; - } - data |= RXQ_CTRL_EN; - AT_WRITE_REG(hw, REG_RXQ_CTRL, data); -} - -static void atl1c_enable_tx_ctrl(struct atl1c_hw *hw) -{ - u32 data; - - AT_READ_REG(hw, REG_TXQ_CTRL, &data); - data |= TXQ_CTRL_EN; - AT_WRITE_REG(hw, REG_TXQ_CTRL, data); -} - -/* - * Reset the transmit and receive units; mask and clear all interrupts. - * hw - Struct containing variables accessed by shared code - * return : 0 or idle status (if error) - */ -static int atl1c_reset_mac(struct atl1c_hw *hw) -{ - struct atl1c_adapter *adapter = (struct atl1c_adapter *)hw->adapter; - struct pci_dev *pdev = adapter->pdev; - int ret; - - AT_WRITE_REG(hw, REG_IMR, 0); - AT_WRITE_REG(hw, REG_ISR, ISR_DIS_INT); - - ret = atl1c_stop_mac(hw); - if (ret) - return ret; - /* - * Issue Soft Reset to the MAC. This will reset the chip's - * transmit, receive, DMA. It will not effect - * the current PCI configuration. The global reset bit is self- - * clearing, and should clear within a microsecond. - */ - AT_WRITE_REGW(hw, REG_MASTER_CTRL, MASTER_CTRL_SOFT_RST); - AT_WRITE_FLUSH(hw); - msleep(10); - /* Wait at least 10ms for All module to be Idle */ - - if (atl1c_wait_until_idle(hw)) { - dev_err(&pdev->dev, - "MAC state machine can't be idle since" - " disabled for 10ms second\n"); - return -1; - } - return 0; -} - -static void atl1c_disable_l0s_l1(struct atl1c_hw *hw) -{ - u32 pm_ctrl_data; - - AT_READ_REG(hw, REG_PM_CTRL, &pm_ctrl_data); - pm_ctrl_data &= ~(PM_CTRL_L1_ENTRY_TIMER_MASK << - PM_CTRL_L1_ENTRY_TIMER_SHIFT); - pm_ctrl_data &= ~PM_CTRL_CLK_SWH_L1; - pm_ctrl_data &= ~PM_CTRL_ASPM_L0S_EN; - pm_ctrl_data &= ~PM_CTRL_ASPM_L1_EN; - pm_ctrl_data &= ~PM_CTRL_MAC_ASPM_CHK; - pm_ctrl_data &= ~PM_CTRL_SERDES_PD_EX_L1; - - pm_ctrl_data |= PM_CTRL_SERDES_BUDS_RX_L1_EN; - pm_ctrl_data |= PM_CTRL_SERDES_PLL_L1_EN; - pm_ctrl_data |= PM_CTRL_SERDES_L1_EN; - AT_WRITE_REG(hw, REG_PM_CTRL, pm_ctrl_data); -} - -/* - * Set ASPM state. - * Enable/disable L0s/L1 depend on link state. - */ -static void atl1c_set_aspm(struct atl1c_hw *hw, bool linkup) -{ - u32 pm_ctrl_data; - - AT_READ_REG(hw, REG_PM_CTRL, &pm_ctrl_data); - - pm_ctrl_data &= ~PM_CTRL_SERDES_PD_EX_L1; - pm_ctrl_data &= ~(PM_CTRL_L1_ENTRY_TIMER_MASK << - PM_CTRL_L1_ENTRY_TIMER_SHIFT); - - pm_ctrl_data |= PM_CTRL_MAC_ASPM_CHK; - - if (linkup) { - pm_ctrl_data |= PM_CTRL_SERDES_PLL_L1_EN; - pm_ctrl_data &= ~PM_CTRL_CLK_SWH_L1; - - pm_ctrl_data |= PM_CTRL_SERDES_BUDS_RX_L1_EN; - pm_ctrl_data |= PM_CTRL_SERDES_L1_EN; - } else { - pm_ctrl_data &= ~PM_CTRL_SERDES_BUDS_RX_L1_EN; - pm_ctrl_data &= ~PM_CTRL_SERDES_L1_EN; - pm_ctrl_data &= ~PM_CTRL_ASPM_L0S_EN; - pm_ctrl_data &= ~PM_CTRL_SERDES_PLL_L1_EN; - - pm_ctrl_data |= PM_CTRL_CLK_SWH_L1; - - if (hw->ctrl_flags & ATL1C_ASPM_L1_SUPPORT) - pm_ctrl_data |= PM_CTRL_ASPM_L1_EN; - else - pm_ctrl_data &= ~PM_CTRL_ASPM_L1_EN; - } - - AT_WRITE_REG(hw, REG_PM_CTRL, pm_ctrl_data); -} - -static void atl1c_setup_mac_ctrl(struct atl1c_adapter *adapter) -{ - struct atl1c_hw *hw = &adapter->hw; - struct net_device *netdev = adapter->netdev; - u32 mac_ctrl_data; - - mac_ctrl_data = MAC_CTRL_TX_EN | MAC_CTRL_RX_EN; - mac_ctrl_data |= (MAC_CTRL_TX_FLOW | MAC_CTRL_RX_FLOW); - - if (adapter->link_duplex == FULL_DUPLEX) { - hw->mac_duplex = true; - mac_ctrl_data |= MAC_CTRL_DUPLX; - } - - if (adapter->link_speed == SPEED_1000) - hw->mac_speed = atl1c_mac_speed_1000; - else - hw->mac_speed = atl1c_mac_speed_10_100; - - mac_ctrl_data |= (hw->mac_speed & MAC_CTRL_SPEED_MASK) << - MAC_CTRL_SPEED_SHIFT; - - mac_ctrl_data |= (MAC_CTRL_ADD_CRC | MAC_CTRL_PAD); - mac_ctrl_data |= ((hw->preamble_len & MAC_CTRL_PRMLEN_MASK) << - MAC_CTRL_PRMLEN_SHIFT); - - if (adapter->vlgrp) - mac_ctrl_data |= MAC_CTRL_RMV_VLAN; - - mac_ctrl_data |= MAC_CTRL_BC_EN; - if (netdev->flags & IFF_PROMISC) - mac_ctrl_data |= MAC_CTRL_PROMIS_EN; - if (netdev->flags & IFF_ALLMULTI) - mac_ctrl_data |= MAC_CTRL_MC_ALL_EN; - - mac_ctrl_data |= MAC_CTRL_SINGLE_PAUSE_EN; - AT_WRITE_REG(hw, REG_MAC_CTRL, mac_ctrl_data); -} - -/* - * atl1c_configure - Configure Transmit&Receive Unit after Reset - * @adapter: board private structure - * - * Configure the Tx /Rx unit of the MAC after a reset. - */ -static int atl1c_configure(struct atl1c_adapter *adapter) -{ - struct atl1c_hw *hw = &adapter->hw; - u32 master_ctrl_data = 0; - u32 intr_modrt_data; - - /* clear interrupt status */ - AT_WRITE_REG(hw, REG_ISR, 0xFFFFFFFF); - /* Clear any WOL status */ - AT_WRITE_REG(hw, REG_WOL_CTRL, 0); - /* set Interrupt Clear Timer - * HW will enable self to assert interrupt event to system after - * waiting x-time for software to notify it accept interrupt. - */ - AT_WRITE_REG(hw, REG_INT_RETRIG_TIMER, - hw->ict & INT_RETRIG_TIMER_MASK); - - atl1c_configure_des_ring(adapter); - - if (hw->ctrl_flags & ATL1C_INTR_MODRT_ENABLE) { - intr_modrt_data = (hw->tx_imt & IRQ_MODRT_TIMER_MASK) << - IRQ_MODRT_TX_TIMER_SHIFT; - intr_modrt_data |= (hw->rx_imt & IRQ_MODRT_TIMER_MASK) << - IRQ_MODRT_RX_TIMER_SHIFT; - AT_WRITE_REG(hw, REG_IRQ_MODRT_TIMER_INIT, intr_modrt_data); - master_ctrl_data |= - MASTER_CTRL_TX_ITIMER_EN | MASTER_CTRL_RX_ITIMER_EN; - } - - if (hw->ctrl_flags & ATL1C_INTR_CLEAR_ON_READ) - master_ctrl_data |= MASTER_CTRL_INT_RDCLR; - - AT_WRITE_REG(hw, REG_MASTER_CTRL, master_ctrl_data); - - if (hw->ctrl_flags & ATL1C_CMB_ENABLE) { - AT_WRITE_REG(hw, REG_CMB_TPD_THRESH, - hw->cmb_tpd & CMB_TPD_THRESH_MASK); - AT_WRITE_REG(hw, REG_CMB_TX_TIMER, - hw->cmb_tx_timer & CMB_TX_TIMER_MASK); - } - - if (hw->ctrl_flags & ATL1C_SMB_ENABLE) - AT_WRITE_REG(hw, REG_SMB_STAT_TIMER, - hw->smb_timer & SMB_STAT_TIMER_MASK); - /* set MTU */ - AT_WRITE_REG(hw, REG_MTU, hw->max_frame_size + ETH_HLEN + - VLAN_HLEN + ETH_FCS_LEN); - /* HDS, disable */ - AT_WRITE_REG(hw, REG_HDS_CTRL, 0); - - atl1c_configure_tx(adapter); - atl1c_configure_rx(adapter); - atl1c_configure_rss(adapter); - atl1c_configure_dma(adapter); - - return 0; -} - -static void atl1c_update_hw_stats(struct atl1c_adapter *adapter) -{ - u16 hw_reg_addr = 0; - unsigned long *stats_item = NULL; - u32 data; - - /* update rx status */ - hw_reg_addr = REG_MAC_RX_STATUS_BIN; - stats_item = &adapter->hw_stats.rx_ok; - while (hw_reg_addr <= REG_MAC_RX_STATUS_END) { - AT_READ_REG(&adapter->hw, hw_reg_addr, &data); - *stats_item += data; - stats_item++; - hw_reg_addr += 4; - } -/* update tx status */ - hw_reg_addr = REG_MAC_TX_STATUS_BIN; - stats_item = &adapter->hw_stats.tx_ok; - while (hw_reg_addr <= REG_MAC_TX_STATUS_END) { - AT_READ_REG(&adapter->hw, hw_reg_addr, &data); - *stats_item += data; - stats_item++; - hw_reg_addr += 4; - } -} - -/* - * atl1c_get_stats - Get System Network Statistics - * @netdev: network interface device structure - * - * Returns the address of the device statistics structure. - * The statistics are actually updated from the timer callback. - */ -static struct net_device_stats *atl1c_get_stats(struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct atl1c_hw_stats *hw_stats = &adapter->hw_stats; - struct net_device_stats *net_stats = &adapter->net_stats; - - atl1c_update_hw_stats(adapter); - net_stats->rx_packets = hw_stats->rx_ok; - net_stats->tx_packets = hw_stats->tx_ok; - net_stats->rx_bytes = hw_stats->rx_byte_cnt; - net_stats->tx_bytes = hw_stats->tx_byte_cnt; - net_stats->multicast = hw_stats->rx_mcast; - net_stats->collisions = hw_stats->tx_1_col + - hw_stats->tx_2_col * 2 + - hw_stats->tx_late_col + hw_stats->tx_abort_col; - net_stats->rx_errors = hw_stats->rx_frag + hw_stats->rx_fcs_err + - hw_stats->rx_len_err + hw_stats->rx_sz_ov + - hw_stats->rx_rrd_ov + hw_stats->rx_align_err; - net_stats->rx_fifo_errors = hw_stats->rx_rxf_ov; - net_stats->rx_length_errors = hw_stats->rx_len_err; - net_stats->rx_crc_errors = hw_stats->rx_fcs_err; - net_stats->rx_frame_errors = hw_stats->rx_align_err; - net_stats->rx_over_errors = hw_stats->rx_rrd_ov + hw_stats->rx_rxf_ov; - - net_stats->rx_missed_errors = hw_stats->rx_rrd_ov + hw_stats->rx_rxf_ov; - - net_stats->tx_errors = hw_stats->tx_late_col + hw_stats->tx_abort_col + - hw_stats->tx_underrun + hw_stats->tx_trunc; - net_stats->tx_fifo_errors = hw_stats->tx_underrun; - net_stats->tx_aborted_errors = hw_stats->tx_abort_col; - net_stats->tx_window_errors = hw_stats->tx_late_col; - - return &adapter->net_stats; -} - -static inline void atl1c_clear_phy_int(struct atl1c_adapter *adapter) -{ - u16 phy_data; - - spin_lock(&adapter->mdio_lock); - atl1c_read_phy_reg(&adapter->hw, MII_ISR, &phy_data); - spin_unlock(&adapter->mdio_lock); -} - -static bool atl1c_clean_tx_irq(struct atl1c_adapter *adapter, - enum atl1c_trans_queue type) -{ - struct atl1c_tpd_ring *tpd_ring = (struct atl1c_tpd_ring *) - &adapter->tpd_ring[type]; - struct atl1c_buffer *buffer_info; - u16 next_to_clean = atomic_read(&tpd_ring->next_to_clean); - u16 hw_next_to_clean; - u16 shift; - u32 data; - - if (type == atl1c_trans_high) - shift = MB_HTPD_CONS_IDX_SHIFT; - else - shift = MB_NTPD_CONS_IDX_SHIFT; - - AT_READ_REG(&adapter->hw, REG_MB_PRIO_CONS_IDX, &data); - hw_next_to_clean = (data >> shift) & MB_PRIO_PROD_IDX_MASK; - - while (next_to_clean != hw_next_to_clean) { - buffer_info = &tpd_ring->buffer_info[next_to_clean]; - if (buffer_info->state == ATL1_BUFFER_BUSY) { - pci_unmap_page(adapter->pdev, buffer_info->dma, - buffer_info->length, PCI_DMA_TODEVICE); - buffer_info->dma = 0; - if (buffer_info->skb) { - dev_kfree_skb_irq(buffer_info->skb); - buffer_info->skb = NULL; - } - buffer_info->state = ATL1_BUFFER_FREE; - } - if (++next_to_clean == tpd_ring->count) - next_to_clean = 0; - atomic_set(&tpd_ring->next_to_clean, next_to_clean); - } - - if (netif_queue_stopped(adapter->netdev) && - netif_carrier_ok(adapter->netdev)) { - netif_wake_queue(adapter->netdev); - } - - return true; -} - -/* - * atl1c_intr - Interrupt Handler - * @irq: interrupt number - * @data: pointer to a network interface device structure - * @pt_regs: CPU registers structure - */ -static irqreturn_t atl1c_intr(int irq, void *data) -{ - struct net_device *netdev = data; - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct pci_dev *pdev = adapter->pdev; - struct atl1c_hw *hw = &adapter->hw; - int max_ints = AT_MAX_INT_WORK; - int handled = IRQ_NONE; - u32 status; - u32 reg_data; - - do { - AT_READ_REG(hw, REG_ISR, ®_data); - status = reg_data & hw->intr_mask; - - if (status == 0 || (status & ISR_DIS_INT) != 0) { - if (max_ints != AT_MAX_INT_WORK) - handled = IRQ_HANDLED; - break; - } - /* link event */ - if (status & ISR_GPHY) - atl1c_clear_phy_int(adapter); - /* Ack ISR */ - AT_WRITE_REG(hw, REG_ISR, status | ISR_DIS_INT); - if (status & ISR_RX_PKT) { - if (likely(napi_schedule_prep(&adapter->napi))) { - hw->intr_mask &= ~ISR_RX_PKT; - AT_WRITE_REG(hw, REG_IMR, hw->intr_mask); - __napi_schedule(&adapter->napi); - } - } - if (status & ISR_TX_PKT) - atl1c_clean_tx_irq(adapter, atl1c_trans_normal); - - handled = IRQ_HANDLED; - /* check if PCIE PHY Link down */ - if (status & ISR_ERROR) { - if (netif_msg_hw(adapter)) - dev_err(&pdev->dev, - "atl1c hardware error (status = 0x%x)\n", - status & ISR_ERROR); - /* reset MAC */ - hw->intr_mask &= ~ISR_ERROR; - AT_WRITE_REG(hw, REG_IMR, hw->intr_mask); - schedule_work(&adapter->reset_task); - break; - } - - if (status & ISR_OVER) - if (netif_msg_intr(adapter)) - dev_warn(&pdev->dev, - "TX/RX over flow (status = 0x%x)\n", - status & ISR_OVER); - - /* link event */ - if (status & (ISR_GPHY | ISR_MANUAL)) { - adapter->net_stats.tx_carrier_errors++; - atl1c_link_chg_event(adapter); - break; - } - - } while (--max_ints > 0); - /* re-enable Interrupt*/ - AT_WRITE_REG(&adapter->hw, REG_ISR, 0); - return handled; -} - -static inline void atl1c_rx_checksum(struct atl1c_adapter *adapter, - struct sk_buff *skb, struct atl1c_recv_ret_status *prrs) -{ - /* - * The pid field in RRS in not correct sometimes, so we - * cannot figure out if the packet is fragmented or not, - * so we tell the KERNEL CHECKSUM_NONE - */ - skb->ip_summed = CHECKSUM_NONE; -} - -static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter, const int ringid) -{ - struct atl1c_rfd_ring *rfd_ring = &adapter->rfd_ring[ringid]; - struct pci_dev *pdev = adapter->pdev; - struct atl1c_buffer *buffer_info, *next_info; - struct sk_buff *skb; - void *vir_addr = NULL; - u16 num_alloc = 0; - u16 rfd_next_to_use, next_next; - struct atl1c_rx_free_desc *rfd_desc; - - next_next = rfd_next_to_use = rfd_ring->next_to_use; - if (++next_next == rfd_ring->count) - next_next = 0; - buffer_info = &rfd_ring->buffer_info[rfd_next_to_use]; - next_info = &rfd_ring->buffer_info[next_next]; - - while (next_info->state == ATL1_BUFFER_FREE) { - rfd_desc = ATL1C_RFD_DESC(rfd_ring, rfd_next_to_use); - - skb = dev_alloc_skb(adapter->rx_buffer_len); - if (unlikely(!skb)) { - if (netif_msg_rx_err(adapter)) - dev_warn(&pdev->dev, "alloc rx buffer failed\n"); - break; - } - - /* - * Make buffer alignment 2 beyond a 16 byte boundary - * this will result in a 16 byte aligned IP header after - * the 14 byte MAC header is removed - */ - vir_addr = skb->data; - buffer_info->state = ATL1_BUFFER_BUSY; - buffer_info->skb = skb; - buffer_info->length = adapter->rx_buffer_len; - buffer_info->dma = pci_map_single(pdev, vir_addr, - buffer_info->length, - PCI_DMA_FROMDEVICE); - rfd_desc->buffer_addr = cpu_to_le64(buffer_info->dma); - rfd_next_to_use = next_next; - if (++next_next == rfd_ring->count) - next_next = 0; - buffer_info = &rfd_ring->buffer_info[rfd_next_to_use]; - next_info = &rfd_ring->buffer_info[next_next]; - num_alloc++; - } - - if (num_alloc) { - /* TODO: update mailbox here */ - wmb(); - rfd_ring->next_to_use = rfd_next_to_use; - AT_WRITE_REG(&adapter->hw, atl1c_rfd_prod_idx_regs[ringid], - rfd_ring->next_to_use & MB_RFDX_PROD_IDX_MASK); - } - - return num_alloc; -} - -static void atl1c_clean_rrd(struct atl1c_rrd_ring *rrd_ring, - struct atl1c_recv_ret_status *rrs, u16 num) -{ - u16 i; - /* the relationship between rrd and rfd is one map one */ - for (i = 0; i < num; i++, rrs = ATL1C_RRD_DESC(rrd_ring, - rrd_ring->next_to_clean)) { - rrs->word3 &= ~RRS_RXD_UPDATED; - if (++rrd_ring->next_to_clean == rrd_ring->count) - rrd_ring->next_to_clean = 0; - } -} - -static void atl1c_clean_rfd(struct atl1c_rfd_ring *rfd_ring, - struct atl1c_recv_ret_status *rrs, u16 num) -{ - u16 i; - u16 rfd_index; - struct atl1c_buffer *buffer_info = rfd_ring->buffer_info; - - rfd_index = (rrs->word0 >> RRS_RX_RFD_INDEX_SHIFT) & - RRS_RX_RFD_INDEX_MASK; - for (i = 0; i < num; i++) { - buffer_info[rfd_index].skb = NULL; - buffer_info[rfd_index].state = ATL1_BUFFER_FREE; - if (++rfd_index == rfd_ring->count) - rfd_index = 0; - } - rfd_ring->next_to_clean = rfd_index; -} - -static void atl1c_clean_rx_irq(struct atl1c_adapter *adapter, u8 que, - int *work_done, int work_to_do) -{ - u16 rfd_num, rfd_index; - u16 count = 0; - u16 length; - struct pci_dev *pdev = adapter->pdev; - struct net_device *netdev = adapter->netdev; - struct atl1c_rfd_ring *rfd_ring = &adapter->rfd_ring[que]; - struct atl1c_rrd_ring *rrd_ring = &adapter->rrd_ring[que]; - struct sk_buff *skb; - struct atl1c_recv_ret_status *rrs; - struct atl1c_buffer *buffer_info; - - while (1) { - if (*work_done >= work_to_do) - break; - rrs = ATL1C_RRD_DESC(rrd_ring, rrd_ring->next_to_clean); - if (likely(RRS_RXD_IS_VALID(rrs->word3))) { - rfd_num = (rrs->word0 >> RRS_RX_RFD_CNT_SHIFT) & - RRS_RX_RFD_CNT_MASK; - if (unlikely(rfd_num != 1)) - /* TODO support mul rfd*/ - if (netif_msg_rx_err(adapter)) - dev_warn(&pdev->dev, - "Multi rfd not support yet!\n"); - goto rrs_checked; - } else { - break; - } -rrs_checked: - atl1c_clean_rrd(rrd_ring, rrs, rfd_num); - if (rrs->word3 & (RRS_RX_ERR_SUM | RRS_802_3_LEN_ERR)) { - atl1c_clean_rfd(rfd_ring, rrs, rfd_num); - if (netif_msg_rx_err(adapter)) - dev_warn(&pdev->dev, - "wrong packet! rrs word3 is %x\n", - rrs->word3); - continue; - } - - length = le16_to_cpu((rrs->word3 >> RRS_PKT_SIZE_SHIFT) & - RRS_PKT_SIZE_MASK); - /* Good Receive */ - if (likely(rfd_num == 1)) { - rfd_index = (rrs->word0 >> RRS_RX_RFD_INDEX_SHIFT) & - RRS_RX_RFD_INDEX_MASK; - buffer_info = &rfd_ring->buffer_info[rfd_index]; - pci_unmap_single(pdev, buffer_info->dma, - buffer_info->length, PCI_DMA_FROMDEVICE); - skb = buffer_info->skb; - } else { - /* TODO */ - if (netif_msg_rx_err(adapter)) - dev_warn(&pdev->dev, - "Multi rfd not support yet!\n"); - break; - } - atl1c_clean_rfd(rfd_ring, rrs, rfd_num); - skb_put(skb, length - ETH_FCS_LEN); - skb->protocol = eth_type_trans(skb, netdev); - skb->dev = netdev; - atl1c_rx_checksum(adapter, skb, rrs); - if (unlikely(adapter->vlgrp) && rrs->word3 & RRS_VLAN_INS) { - u16 vlan; - - AT_TAG_TO_VLAN(rrs->vlan_tag, vlan); - vlan = le16_to_cpu(vlan); - vlan_hwaccel_receive_skb(skb, adapter->vlgrp, vlan); - } else - netif_receive_skb(skb); - - netdev->last_rx = jiffies; - (*work_done)++; - count++; - } - if (count) - atl1c_alloc_rx_buffer(adapter, que); -} - -/* - * atl1c_clean - NAPI Rx polling callback - * @adapter: board private structure - */ -static int atl1c_clean(struct napi_struct *napi, int budget) -{ - struct atl1c_adapter *adapter = - container_of(napi, struct atl1c_adapter, napi); - int work_done = 0; - - /* Keep link state information with original netdev */ - if (!netif_carrier_ok(adapter->netdev)) - goto quit_polling; - /* just enable one RXQ */ - atl1c_clean_rx_irq(adapter, 0, &work_done, budget); - - if (work_done < budget) { -quit_polling: - napi_complete(napi); - adapter->hw.intr_mask |= ISR_RX_PKT; - AT_WRITE_REG(&adapter->hw, REG_IMR, adapter->hw.intr_mask); - } - return work_done; -} - -#ifdef CONFIG_NET_POLL_CONTROLLER - -/* - * Polling 'interrupt' - used by things like netconsole to send skbs - * without having to re-enable interrupts. It's not called while - * the interrupt routine is executing. - */ -static void atl1c_netpoll(struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - - disable_irq(adapter->pdev->irq); - atl1c_intr(adapter->pdev->irq, netdev); - enable_irq(adapter->pdev->irq); -} -#endif - -static inline u16 atl1c_tpd_avail(struct atl1c_adapter *adapter, enum atl1c_trans_queue type) -{ - struct atl1c_tpd_ring *tpd_ring = &adapter->tpd_ring[type]; - u16 next_to_use = 0; - u16 next_to_clean = 0; - - next_to_clean = atomic_read(&tpd_ring->next_to_clean); - next_to_use = tpd_ring->next_to_use; - - return (u16)(next_to_clean > next_to_use) ? - (next_to_clean - next_to_use - 1) : - (tpd_ring->count + next_to_clean - next_to_use - 1); -} - -/* - * get next usable tpd - * Note: should call atl1c_tdp_avail to make sure - * there is enough tpd to use - */ -static struct atl1c_tpd_desc *atl1c_get_tpd(struct atl1c_adapter *adapter, - enum atl1c_trans_queue type) -{ - struct atl1c_tpd_ring *tpd_ring = &adapter->tpd_ring[type]; - struct atl1c_tpd_desc *tpd_desc; - u16 next_to_use = 0; - - next_to_use = tpd_ring->next_to_use; - if (++tpd_ring->next_to_use == tpd_ring->count) - tpd_ring->next_to_use = 0; - tpd_desc = ATL1C_TPD_DESC(tpd_ring, next_to_use); - memset(tpd_desc, 0, sizeof(struct atl1c_tpd_desc)); - return tpd_desc; -} - -static struct atl1c_buffer * -atl1c_get_tx_buffer(struct atl1c_adapter *adapter, struct atl1c_tpd_desc *tpd) -{ - struct atl1c_tpd_ring *tpd_ring = adapter->tpd_ring; - - return &tpd_ring->buffer_info[tpd - - (struct atl1c_tpd_desc *)tpd_ring->desc]; -} - -/* Calculate the transmit packet descript needed*/ -static u16 atl1c_cal_tpd_req(const struct sk_buff *skb) -{ - u16 tpd_req; - u16 proto_hdr_len = 0; - - tpd_req = skb_shinfo(skb)->nr_frags + 1; - - if (skb_is_gso(skb)) { - proto_hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb); - if (proto_hdr_len < skb_headlen(skb)) - tpd_req++; - if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) - tpd_req++; - } - return tpd_req; -} - -static int atl1c_tso_csum(struct atl1c_adapter *adapter, - struct sk_buff *skb, - struct atl1c_tpd_desc **tpd, - enum atl1c_trans_queue type) -{ - struct pci_dev *pdev = adapter->pdev; - u8 hdr_len; - u32 real_len; - unsigned short offload_type; - int err; - - if (skb_is_gso(skb)) { - if (skb_header_cloned(skb)) { - err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC); - if (unlikely(err)) - return -1; - } - offload_type = skb_shinfo(skb)->gso_type; - - if (offload_type & SKB_GSO_TCPV4) { - real_len = (((unsigned char *)ip_hdr(skb) - skb->data) - + ntohs(ip_hdr(skb)->tot_len)); - - if (real_len < skb->len) - pskb_trim(skb, real_len); - - hdr_len = (skb_transport_offset(skb) + tcp_hdrlen(skb)); - if (unlikely(skb->len == hdr_len)) { - /* only xsum need */ - if (netif_msg_tx_queued(adapter)) - dev_warn(&pdev->dev, - "IPV4 tso with zero data??\n"); - goto check_sum; - } else { - ip_hdr(skb)->check = 0; - tcp_hdr(skb)->check = ~csum_tcpudp_magic( - ip_hdr(skb)->saddr, - ip_hdr(skb)->daddr, - 0, IPPROTO_TCP, 0); - (*tpd)->word1 |= 1 << TPD_IPV4_PACKET_SHIFT; - } - } - - if (offload_type & SKB_GSO_TCPV6) { - struct atl1c_tpd_ext_desc *etpd = - *(struct atl1c_tpd_ext_desc **)(tpd); - - memset(etpd, 0, sizeof(struct atl1c_tpd_ext_desc)); - *tpd = atl1c_get_tpd(adapter, type); - ipv6_hdr(skb)->payload_len = 0; - /* check payload == 0 byte ? */ - hdr_len = (skb_transport_offset(skb) + tcp_hdrlen(skb)); - if (unlikely(skb->len == hdr_len)) { - /* only xsum need */ - if (netif_msg_tx_queued(adapter)) - dev_warn(&pdev->dev, - "IPV6 tso with zero data??\n"); - goto check_sum; - } else - tcp_hdr(skb)->check = ~csum_ipv6_magic( - &ipv6_hdr(skb)->saddr, - &ipv6_hdr(skb)->daddr, - 0, IPPROTO_TCP, 0); - etpd->word1 |= 1 << TPD_LSO_EN_SHIFT; - etpd->word1 |= 1 << TPD_LSO_VER_SHIFT; - etpd->pkt_len = cpu_to_le32(skb->len); - (*tpd)->word1 |= 1 << TPD_LSO_VER_SHIFT; - } - - (*tpd)->word1 |= 1 << TPD_LSO_EN_SHIFT; - (*tpd)->word1 |= (skb_transport_offset(skb) & TPD_TCPHDR_OFFSET_MASK) << - TPD_TCPHDR_OFFSET_SHIFT; - (*tpd)->word1 |= (skb_shinfo(skb)->gso_size & TPD_MSS_MASK) << - TPD_MSS_SHIFT; - return 0; - } - -check_sum: - if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) { - u8 css, cso; - cso = skb_transport_offset(skb); - - if (unlikely(cso & 0x1)) { - if (netif_msg_tx_err(adapter)) - dev_err(&adapter->pdev->dev, - "payload offset should not an event number\n"); - return -1; - } else { - css = cso + skb->csum_offset; - - (*tpd)->word1 |= ((cso >> 1) & TPD_PLOADOFFSET_MASK) << - TPD_PLOADOFFSET_SHIFT; - (*tpd)->word1 |= ((css >> 1) & TPD_CCSUM_OFFSET_MASK) << - TPD_CCSUM_OFFSET_SHIFT; - (*tpd)->word1 |= 1 << TPD_CCSUM_EN_SHIFT; - } - } - return 0; -} - -static void atl1c_tx_map(struct atl1c_adapter *adapter, - struct sk_buff *skb, struct atl1c_tpd_desc *tpd, - enum atl1c_trans_queue type) -{ - struct atl1c_tpd_desc *use_tpd = NULL; - struct atl1c_buffer *buffer_info = NULL; - u16 buf_len = skb_headlen(skb); - u16 map_len = 0; - u16 mapped_len = 0; - u16 hdr_len = 0; - u16 nr_frags; - u16 f; - int tso; - - nr_frags = skb_shinfo(skb)->nr_frags; - tso = (tpd->word1 >> TPD_LSO_EN_SHIFT) & TPD_LSO_EN_MASK; - if (tso) { - /* TSO */ - map_len = hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb); - use_tpd = tpd; - - buffer_info = atl1c_get_tx_buffer(adapter, use_tpd); - buffer_info->length = map_len; - buffer_info->dma = pci_map_single(adapter->pdev, - skb->data, hdr_len, PCI_DMA_TODEVICE); - buffer_info->state = ATL1_BUFFER_BUSY; - mapped_len += map_len; - use_tpd->buffer_addr = cpu_to_le64(buffer_info->dma); - use_tpd->buffer_len = cpu_to_le16(buffer_info->length); - } - - if (mapped_len < buf_len) { - /* mapped_len == 0, means we should use the first tpd, - which is given by caller */ - if (mapped_len == 0) - use_tpd = tpd; - else { - use_tpd = atl1c_get_tpd(adapter, type); - memcpy(use_tpd, tpd, sizeof(struct atl1c_tpd_desc)); - use_tpd = atl1c_get_tpd(adapter, type); - memcpy(use_tpd, tpd, sizeof(struct atl1c_tpd_desc)); - } - buffer_info = atl1c_get_tx_buffer(adapter, use_tpd); - buffer_info->length = buf_len - mapped_len; - buffer_info->dma = - pci_map_single(adapter->pdev, skb->data + mapped_len, - buffer_info->length, PCI_DMA_TODEVICE); - buffer_info->state = ATL1_BUFFER_BUSY; - - use_tpd->buffer_addr = cpu_to_le64(buffer_info->dma); - use_tpd->buffer_len = cpu_to_le16(buffer_info->length); - } - - for (f = 0; f < nr_frags; f++) { - struct skb_frag_struct *frag; - - frag = &skb_shinfo(skb)->frags[f]; - - use_tpd = atl1c_get_tpd(adapter, type); - memcpy(use_tpd, tpd, sizeof(struct atl1c_tpd_desc)); - - buffer_info = atl1c_get_tx_buffer(adapter, use_tpd); - buffer_info->length = frag->size; - buffer_info->dma = - pci_map_page(adapter->pdev, frag->page, - frag->page_offset, - buffer_info->length, - PCI_DMA_TODEVICE); - buffer_info->state = ATL1_BUFFER_BUSY; - - use_tpd->buffer_addr = cpu_to_le64(buffer_info->dma); - use_tpd->buffer_len = cpu_to_le16(buffer_info->length); - } - - /* The last tpd */ - use_tpd->word1 |= 1 << TPD_EOP_SHIFT; - /* The last buffer info contain the skb address, - so it will be free after unmap */ - buffer_info->skb = skb; -} - -static void atl1c_tx_queue(struct atl1c_adapter *adapter, struct sk_buff *skb, - struct atl1c_tpd_desc *tpd, enum atl1c_trans_queue type) -{ - struct atl1c_tpd_ring *tpd_ring = &adapter->tpd_ring[type]; - u32 prod_data; - - AT_READ_REG(&adapter->hw, REG_MB_PRIO_PROD_IDX, &prod_data); - switch (type) { - case atl1c_trans_high: - prod_data &= 0xFFFF0000; - prod_data |= tpd_ring->next_to_use & 0xFFFF; - break; - case atl1c_trans_normal: - prod_data &= 0x0000FFFF; - prod_data |= (tpd_ring->next_to_use & 0xFFFF) << 16; - break; - default: - break; - } - wmb(); - AT_WRITE_REG(&adapter->hw, REG_MB_PRIO_PROD_IDX, prod_data); -} - -static int atl1c_xmit_frame(struct sk_buff *skb, struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - unsigned long flags; - u16 tpd_req = 1; - struct atl1c_tpd_desc *tpd; - enum atl1c_trans_queue type = atl1c_trans_normal; - - if (test_bit(__AT_DOWN, &adapter->flags)) { - dev_kfree_skb_any(skb); - return NETDEV_TX_OK; - } - - tpd_req = atl1c_cal_tpd_req(skb); - if (!spin_trylock_irqsave(&adapter->tx_lock, flags)) { - if (netif_msg_pktdata(adapter)) - dev_info(&adapter->pdev->dev, "tx locked\n"); - return NETDEV_TX_LOCKED; - } - if (skb->mark == 0x01) - type = atl1c_trans_high; - else - type = atl1c_trans_normal; - - if (atl1c_tpd_avail(adapter, type) < tpd_req) { - /* no enough descriptor, just stop queue */ - netif_stop_queue(netdev); - spin_unlock_irqrestore(&adapter->tx_lock, flags); - return NETDEV_TX_BUSY; - } - - tpd = atl1c_get_tpd(adapter, type); - - /* do TSO and check sum */ - if (atl1c_tso_csum(adapter, skb, &tpd, type) != 0) { - spin_unlock_irqrestore(&adapter->tx_lock, flags); - dev_kfree_skb_any(skb); - return NETDEV_TX_OK; - } - - if (unlikely(adapter->vlgrp && vlan_tx_tag_present(skb))) { - u16 vlan = vlan_tx_tag_get(skb); - __le16 tag; - - vlan = cpu_to_le16(vlan); - AT_VLAN_TO_TAG(vlan, tag); - tpd->word1 |= 1 << TPD_INS_VTAG_SHIFT; - tpd->vlan_tag = tag; - } - - if (skb_network_offset(skb) != ETH_HLEN) - tpd->word1 |= 1 << TPD_ETH_TYPE_SHIFT; /* Ethernet frame */ - - atl1c_tx_map(adapter, skb, tpd, type); - atl1c_tx_queue(adapter, skb, tpd, type); - - spin_unlock_irqrestore(&adapter->tx_lock, flags); - return NETDEV_TX_OK; -} - -static void atl1c_free_irq(struct atl1c_adapter *adapter) -{ - struct net_device *netdev = adapter->netdev; - - free_irq(adapter->pdev->irq, netdev); - - if (adapter->have_msi) - pci_disable_msi(adapter->pdev); -} - -static int atl1c_request_irq(struct atl1c_adapter *adapter) -{ - struct pci_dev *pdev = adapter->pdev; - struct net_device *netdev = adapter->netdev; - int flags = 0; - int err = 0; - - adapter->have_msi = true; - err = pci_enable_msi(adapter->pdev); - if (err) { - if (netif_msg_ifup(adapter)) - dev_err(&pdev->dev, - "Unable to allocate MSI interrupt Error: %d\n", - err); - adapter->have_msi = false; - } else - netdev->irq = pdev->irq; - - if (!adapter->have_msi) - flags |= IRQF_SHARED; - err = request_irq(adapter->pdev->irq, &atl1c_intr, flags, - netdev->name, netdev); - if (err) { - if (netif_msg_ifup(adapter)) - dev_err(&pdev->dev, - "Unable to allocate interrupt Error: %d\n", - err); - if (adapter->have_msi) - pci_disable_msi(adapter->pdev); - return err; - } - if (netif_msg_ifup(adapter)) - dev_dbg(&pdev->dev, "atl1c_request_irq OK\n"); - return err; -} - -int atl1c_up(struct atl1c_adapter *adapter) -{ - struct net_device *netdev = adapter->netdev; - int num; - int err; - int i; - - netif_carrier_off(netdev); - atl1c_init_ring_ptrs(adapter); - atl1c_set_multi(netdev); - atl1c_restore_vlan(adapter); - - for (i = 0; i < adapter->num_rx_queues; i++) { - num = atl1c_alloc_rx_buffer(adapter, i); - if (unlikely(num == 0)) { - err = -ENOMEM; - goto err_alloc_rx; - } - } - - if (atl1c_configure(adapter)) { - err = -EIO; - goto err_up; - } - - err = atl1c_request_irq(adapter); - if (unlikely(err)) - goto err_up; - - clear_bit(__AT_DOWN, &adapter->flags); - napi_enable(&adapter->napi); - atl1c_irq_enable(adapter); - atl1c_check_link_status(adapter); - netif_start_queue(netdev); - return err; - -err_up: -err_alloc_rx: - atl1c_clean_rx_ring(adapter); - return err; -} - -void atl1c_down(struct atl1c_adapter *adapter) -{ - struct net_device *netdev = adapter->netdev; - - atl1c_del_timer(adapter); - atl1c_cancel_work(adapter); - - /* signal that we're down so the interrupt handler does not - * reschedule our watchdog timer */ - set_bit(__AT_DOWN, &adapter->flags); - netif_carrier_off(netdev); - napi_disable(&adapter->napi); - atl1c_irq_disable(adapter); - atl1c_free_irq(adapter); - AT_WRITE_REG(&adapter->hw, REG_ISR, ISR_DIS_INT); - /* reset MAC to disable all RX/TX */ - atl1c_reset_mac(&adapter->hw); - msleep(1); - - adapter->link_speed = SPEED_0; - adapter->link_duplex = -1; - atl1c_clean_tx_ring(adapter, atl1c_trans_normal); - atl1c_clean_tx_ring(adapter, atl1c_trans_high); - atl1c_clean_rx_ring(adapter); -} - -/* - * atl1c_open - Called when a network interface is made active - * @netdev: network interface device structure - * - * Returns 0 on success, negative value on failure - * - * The open entry point is called when a network interface is made - * active by the system (IFF_UP). At this point all resources needed - * for transmit and receive operations are allocated, the interrupt - * handler is registered with the OS, the watchdog timer is started, - * and the stack is notified that the interface is ready. - */ -static int atl1c_open(struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - int err; - - /* disallow open during test */ - if (test_bit(__AT_TESTING, &adapter->flags)) - return -EBUSY; - - /* allocate rx/tx dma buffer & descriptors */ - err = atl1c_setup_ring_resources(adapter); - if (unlikely(err)) - return err; - - err = atl1c_up(adapter); - if (unlikely(err)) - goto err_up; - - if (adapter->hw.ctrl_flags & ATL1C_FPGA_VERSION) { - u32 phy_data; - - AT_READ_REG(&adapter->hw, REG_MDIO_CTRL, &phy_data); - phy_data |= MDIO_AP_EN; - AT_WRITE_REG(&adapter->hw, REG_MDIO_CTRL, phy_data); - } - return 0; - -err_up: - atl1c_free_irq(adapter); - atl1c_free_ring_resources(adapter); - atl1c_reset_mac(&adapter->hw); - return err; -} - -/* - * atl1c_close - Disables a network interface - * @netdev: network interface device structure - * - * Returns 0, this is not allowed to fail - * - * The close entry point is called when an interface is de-activated - * by the OS. The hardware is still under the drivers control, but - * needs to be disabled. A global MAC reset is issued to stop the - * hardware, and all transmit and receive resources are freed. - */ -static int atl1c_close(struct net_device *netdev) -{ - struct atl1c_adapter *adapter = netdev_priv(netdev); - - WARN_ON(test_bit(__AT_RESETTING, &adapter->flags)); - atl1c_down(adapter); - atl1c_free_ring_resources(adapter); - return 0; -} - -static int atl1c_suspend(struct pci_dev *pdev, pm_message_t state) -{ - struct net_device *netdev = pci_get_drvdata(pdev); - struct atl1c_adapter *adapter = netdev_priv(netdev); - struct atl1c_hw *hw = &adapter->hw; - u32 ctrl; - u32 mac_ctrl_data; - u32 master_ctrl_data; - u32 wol_ctrl_data; - u16 mii_bmsr_data; - u16 save_autoneg_advertised; - u16 mii_intr_status_data; - u32 wufc = adapter->wol; - u32 i; - int retval = 0; - - if (netif_running(netdev)) { - WARN_ON(test_bit(__AT_RESETTING, &adapter->flags)); - atl1c_down(adapter); - } - netif_device_detach(netdev); - atl1c_disable_l0s_l1(hw); - retval = pci_save_state(pdev); - if (retval) - return retval; - if (wufc) { - AT_READ_REG(hw, REG_MASTER_CTRL, &master_ctrl_data); - master_ctrl_data &= ~MASTER_CTRL_CLK_SEL_DIS; - - /* get link status */ - atl1c_read_phy_reg(hw, MII_BMSR, (u16 *)&mii_bmsr_data); - atl1c_read_phy_reg(hw, MII_BMSR, (u16 *)&mii_bmsr_data); - save_autoneg_advertised = hw->autoneg_advertised; - hw->autoneg_advertised = ADVERTISED_10baseT_Half; - if (atl1c_restart_autoneg(hw) != 0) - if (netif_msg_link(adapter)) - dev_warn(&pdev->dev, "phy autoneg failed\n"); - hw->phy_configured = false; /* re-init PHY when resume */ - hw->autoneg_advertised = save_autoneg_advertised; - /* turn on magic packet wol */ - if (wufc & AT_WUFC_MAG) - wol_ctrl_data = WOL_MAGIC_EN | WOL_MAGIC_PME_EN; - - if (wufc & AT_WUFC_LNKC) { - for (i = 0; i < AT_SUSPEND_LINK_TIMEOUT; i++) { - msleep(100); - atl1c_read_phy_reg(hw, MII_BMSR, - (u16 *)&mii_bmsr_data); - if (mii_bmsr_data & BMSR_LSTATUS) - break; - } - if ((mii_bmsr_data & BMSR_LSTATUS) == 0) - if (netif_msg_link(adapter)) - dev_warn(&pdev->dev, - "%s: Link may change" - "when suspend\n", - atl1c_driver_name); - wol_ctrl_data |= WOL_LINK_CHG_EN | WOL_LINK_CHG_PME_EN; - /* only link up can wake up */ - if (atl1c_write_phy_reg(hw, MII_IER, IER_LINK_UP) != 0) { - if (netif_msg_link(adapter)) - dev_err(&pdev->dev, - "%s: read write phy " - "register failed.\n", - atl1c_driver_name); - goto wol_dis; - } - } - /* clear phy interrupt */ - atl1c_read_phy_reg(hw, MII_ISR, &mii_intr_status_data); - /* Config MAC Ctrl register */ - mac_ctrl_data = MAC_CTRL_RX_EN; - /* set to 10/100M halt duplex */ - mac_ctrl_data |= atl1c_mac_speed_10_100 << MAC_CTRL_SPEED_SHIFT; - mac_ctrl_data |= (((u32)adapter->hw.preamble_len & - MAC_CTRL_PRMLEN_MASK) << - MAC_CTRL_PRMLEN_SHIFT); - - if (adapter->vlgrp) - mac_ctrl_data |= MAC_CTRL_RMV_VLAN; - - /* magic packet maybe Broadcast&multicast&Unicast frame */ - if (wufc & AT_WUFC_MAG) - mac_ctrl_data |= MAC_CTRL_BC_EN; - - if (netif_msg_hw(adapter)) - dev_dbg(&pdev->dev, - "%s: suspend MAC=0x%x\n", - atl1c_driver_name, mac_ctrl_data); - AT_WRITE_REG(hw, REG_MASTER_CTRL, master_ctrl_data); - AT_WRITE_REG(hw, REG_WOL_CTRL, wol_ctrl_data); - AT_WRITE_REG(hw, REG_MAC_CTRL, mac_ctrl_data); - - /* pcie patch */ - AT_READ_REG(hw, REG_PCIE_PHYMISC, &ctrl); - ctrl |= PCIE_PHYMISC_FORCE_RCV_DET; - AT_WRITE_REG(hw, REG_PCIE_PHYMISC, ctrl); - - pci_enable_wake(pdev, pci_choose_state(pdev, state), 1); - goto suspend_exit; - } -wol_dis: - - /* WOL disabled */ - AT_WRITE_REG(hw, REG_WOL_CTRL, 0); - - /* pcie patch */ - AT_READ_REG(hw, REG_PCIE_PHYMISC, &ctrl); - ctrl |= PCIE_PHYMISC_FORCE_RCV_DET; - AT_WRITE_REG(hw, REG_PCIE_PHYMISC, ctrl); - - atl1c_phy_disable(hw); - hw->phy_configured = false; /* re-init PHY when resume */ - - pci_enable_wake(pdev, pci_choose_state(pdev, state), 0); -suspend_exit: - - pci_disable_device(pdev); - pci_set_power_state(pdev, pci_choose_state(pdev, state)); - - return 0; -} - -static int atl1c_resume(struct pci_dev *pdev) -{ - struct net_device *netdev = pci_get_drvdata(pdev); - struct atl1c_adapter *adapter = netdev_priv(netdev); - - pci_set_power_state(pdev, PCI_D0); - pci_restore_state(pdev); - pci_enable_wake(pdev, PCI_D3hot, 0); - pci_enable_wake(pdev, PCI_D3cold, 0); - - AT_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0); - - atl1c_phy_reset(&adapter->hw); - atl1c_reset_mac(&adapter->hw); - netif_device_attach(netdev); - if (netif_running(netdev)) - atl1c_up(adapter); - - return 0; -} - -static void atl1c_shutdown(struct pci_dev *pdev) -{ - atl1c_suspend(pdev, PMSG_SUSPEND); -} - -#ifdef HAVE_NET_DEVICE_OPS -static const struct net_device_ops atl1c_netdev_ops = { - .ndo_open = atl1c_open, - .ndo_stop = atl1c_close, - .ndo_validate_addr = eth_validate_addr, - .ndo_start_xmit = atl1c_xmit_frame, - .ndo_set_mac_address = atl1c_set_mac_addr, - .ndo_set_multicast_list = atl1c_set_multi, - .ndo_change_mtu = atl1c_change_mtu, - .ndo_do_ioctl = atl1c_ioctl, - .ndo_tx_timeout = atl1c_tx_timeout, - .ndo_get_stats = atl1c_get_stats, - .ndo_vlan_rx_register = atl1c_vlan_rx_register, -#ifdef CONFIG_NET_POLL_CONTROLLER - .ndo_poll_controller = atl1c_netpoll, -#endif /*HAVE_NET_DEVICE_OPS*/ -}; -#endif - -static int atl1c_init_netdev(struct net_device *netdev, struct pci_dev *pdev) -{ - SET_NETDEV_DEV(netdev, &pdev->dev); - pci_set_drvdata(pdev, netdev); - - netdev->irq = pdev->irq; - -#ifdef HAVE_NET_DEVICE_OPS - netdev->netdev_ops = &atl1c_netdev_ops; -#else - netdev->open = &atl1c_open; - netdev->stop = &atl1c_close; - netdev->hard_start_xmit = &atl1c_xmit_frame; - netdev->set_mac_address = &atl1c_set_mac_addr; - netdev->set_multicast_list = &atl1c_set_multi; - netdev->change_mtu = &atl1c_change_mtu; - netdev->do_ioctl = &atl1c_ioctl; - netdev->tx_timeout = &atl1c_tx_timeout; - netdev->get_stats = &atl1c_get_stats; - netdev->vlan_rx_register = atl1c_vlan_rx_register; -#endif /*HAVE_NET_DEVICE_OPS*/ - - netdev->watchdog_timeo = AT_TX_WATCHDOG; - atl1c_set_ethtool_ops(netdev); - - /* TODO: add when ready */ - netdev->features = NETIF_F_SG | - NETIF_F_HW_CSUM | - NETIF_F_HW_VLAN_TX | - NETIF_F_HW_VLAN_RX | - NETIF_F_TSO | - NETIF_F_TSO6; - return 0; -} - -/* - * atl1c_probe - Device Initialization Routine - * @pdev: PCI device information struct - * @ent: entry in atl1c_pci_tbl - * - * Returns 0 on success, negative on failure - * - * atl1c_probe initializes an adapter identified by a pci_dev structure. - * The OS initialization, configuring of the adapter private structure, - * and a hardware reset occur. - */ -static int __devinit atl1c_probe(struct pci_dev *pdev, - const struct pci_device_id *ent) -{ - struct net_device *netdev; - struct atl1c_adapter *adapter; - static int cards_found; - - int err = 0; - - /* enable device (incl. PCI PM wakeup and hotplug setup) */ - err = pci_enable_device_mem(pdev); - if (err) { - dev_err(&pdev->dev, "cannot enable PCI device\n"); - return err; - } - - /* - * The atl1c chip can DMA to 64-bit addresses, but it uses a single - * shared register for the high 32 bits, so only a single, aligned, - * 4 GB physical address range can be used at a time. - * - * Supporting 64-bit DMA on this hardware is more trouble than it's - * worth. It is far easier to limit to 32-bit DMA than update - * various kernel subsystems to support the mechanics required by a - * fixed-high-32-bit system. - */ - if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) != 0) || - (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)) != 0)) { - dev_err(&pdev->dev, "No usable DMA configuration,aborting\n"); - goto err_dma; - } - - err = pci_request_regions(pdev, atl1c_driver_name); - if (err) { - dev_err(&pdev->dev, "cannot obtain PCI resources\n"); - goto err_pci_reg; - } - - pci_set_master(pdev); - - netdev = alloc_etherdev(sizeof(struct atl1c_adapter)); - if (netdev == NULL) { - err = -ENOMEM; - dev_err(&pdev->dev, "etherdev alloc failed\n"); - goto err_alloc_etherdev; - } - - err = atl1c_init_netdev(netdev, pdev); - if (err) { - dev_err(&pdev->dev, "init netdevice failed\n"); - goto err_init_netdev; - } - adapter = netdev_priv(netdev); - adapter->bd_number = cards_found; - adapter->netdev = netdev; - adapter->pdev = pdev; - adapter->hw.adapter = adapter; - adapter->msg_enable = netif_msg_init(-1, atl1c_default_msg); - adapter->hw.hw_addr = ioremap(pci_resource_start(pdev, 0), pci_resource_len(pdev, 0)); - if (!adapter->hw.hw_addr) { - err = -EIO; - dev_err(&pdev->dev, "cannot map device registers\n"); - goto err_ioremap; - } - netdev->base_addr = (unsigned long)adapter->hw.hw_addr; - - /* init mii data */ - adapter->mii.dev = netdev; - adapter->mii.mdio_read = atl1c_mdio_read; - adapter->mii.mdio_write = atl1c_mdio_write; - adapter->mii.phy_id_mask = 0x1f; - adapter->mii.reg_num_mask = MDIO_REG_ADDR_MASK; - netif_napi_add(netdev, &adapter->napi, atl1c_clean, 64); - setup_timer(&adapter->phy_config_timer, atl1c_phy_config, - (unsigned long)adapter); - /* setup the private structure */ - err = atl1c_sw_init(adapter); - if (err) { - dev_err(&pdev->dev, "net device private data init failed\n"); - goto err_sw_init; - } - atl1c_reset_pcie(&adapter->hw, ATL1C_PCIE_L0S_L1_DISABLE | - ATL1C_PCIE_PHY_RESET); - - /* Init GPHY as early as possible due to power saving issue */ - atl1c_phy_reset(&adapter->hw); - - err = atl1c_reset_mac(&adapter->hw); - if (err) { - err = -EIO; - goto err_reset; - } - - device_init_wakeup(&pdev->dev, 1); - /* reset the controller to - * put the device in a known good starting state */ - err = atl1c_phy_init(&adapter->hw); - if (err) { - err = -EIO; - goto err_reset; - } - if (atl1c_read_mac_addr(&adapter->hw) != 0) { - err = -EIO; - dev_err(&pdev->dev, "get mac address failed\n"); - goto err_eeprom; - } - memcpy(netdev->dev_addr, adapter->hw.mac_addr, netdev->addr_len); - memcpy(netdev->perm_addr, adapter->hw.mac_addr, netdev->addr_len); - if (netif_msg_probe(adapter)) - dev_dbg(&pdev->dev, - "mac address : %02x-%02x-%02x-%02x-%02x-%02x\n", - adapter->hw.mac_addr[0], adapter->hw.mac_addr[1], - adapter->hw.mac_addr[2], adapter->hw.mac_addr[3], - adapter->hw.mac_addr[4], adapter->hw.mac_addr[5]); - - atl1c_hw_set_mac_addr(&adapter->hw); - INIT_WORK(&adapter->reset_task, atl1c_reset_task); - INIT_WORK(&adapter->link_chg_task, atl1c_link_chg_task); - err = register_netdev(netdev); - if (err) { - dev_err(&pdev->dev, "register netdevice failed\n"); - goto err_register; - } - - if (netif_msg_probe(adapter)) - dev_info(&pdev->dev, "version %s\n", ATL1C_DRV_VERSION); - cards_found++; - return 0; - -err_reset: -err_register: -err_sw_init: -err_eeprom: - iounmap(adapter->hw.hw_addr); -err_init_netdev: -err_ioremap: - free_netdev(netdev); -err_alloc_etherdev: - pci_release_regions(pdev); -err_pci_reg: -err_dma: - pci_disable_device(pdev); - return err; -} - -/* - * atl1c_remove - Device Removal Routine - * @pdev: PCI device information struct - * - * atl1c_remove is called by the PCI subsystem to alert the driver - * that it should release a PCI device. The could be caused by a - * Hot-Plug event, or because the driver is going to be removed from - * memory. - */ -static void __devexit atl1c_remove(struct pci_dev *pdev) -{ - struct net_device *netdev = pci_get_drvdata(pdev); - struct atl1c_adapter *adapter = netdev_priv(netdev); - - unregister_netdev(netdev); - atl1c_phy_disable(&adapter->hw); - - iounmap(adapter->hw.hw_addr); - - pci_release_regions(pdev); - pci_disable_device(pdev); - free_netdev(netdev); -} - -/* - * atl1c_io_error_detected - called when PCI error is detected - * @pdev: Pointer to PCI device - * @state: The current pci connection state - * - * This function is called after a PCI bus error affecting - * this device has been detected. - */ -static pci_ers_result_t atl1c_io_error_detected(struct pci_dev *pdev, - pci_channel_state_t state) -{ - struct net_device *netdev = pci_get_drvdata(pdev); - struct atl1c_adapter *adapter = netdev_priv(netdev); - - netif_device_detach(netdev); - - if (netif_running(netdev)) - atl1c_down(adapter); - - pci_disable_device(pdev); - - /* Request a slot slot reset. */ - return PCI_ERS_RESULT_NEED_RESET; -} - -/* - * atl1c_io_slot_reset - called after the pci bus has been reset. - * @pdev: Pointer to PCI device - * - * Restart the card from scratch, as if from a cold-boot. Implementation - * resembles the first-half of the e1000_resume routine. - */ -static pci_ers_result_t atl1c_io_slot_reset(struct pci_dev *pdev) -{ - struct net_device *netdev = pci_get_drvdata(pdev); - struct atl1c_adapter *adapter = netdev_priv(netdev); - - if (pci_enable_device(pdev)) { - if (netif_msg_hw(adapter)) - dev_err(&pdev->dev, - "Cannot re-enable PCI device after reset\n"); - return PCI_ERS_RESULT_DISCONNECT; - } - pci_set_master(pdev); - - pci_enable_wake(pdev, PCI_D3hot, 0); - pci_enable_wake(pdev, PCI_D3cold, 0); - - atl1c_reset_mac(&adapter->hw); - - return PCI_ERS_RESULT_RECOVERED; -} - -/* - * atl1c_io_resume - called when traffic can start flowing again. - * @pdev: Pointer to PCI device - * - * This callback is called when the error recovery driver tells us that - * its OK to resume normal operation. Implementation resembles the - * second-half of the atl1c_resume routine. - */ -static void atl1c_io_resume(struct pci_dev *pdev) -{ - struct net_device *netdev = pci_get_drvdata(pdev); - struct atl1c_adapter *adapter = netdev_priv(netdev); - - if (netif_running(netdev)) { - if (atl1c_up(adapter)) { - if (netif_msg_hw(adapter)) - dev_err(&pdev->dev, - "Cannot bring device back up after reset\n"); - return; - } - } - - netif_device_attach(netdev); -} - -static struct pci_error_handlers atl1c_err_handler = { - .error_detected = atl1c_io_error_detected, - .slot_reset = atl1c_io_slot_reset, - .resume = atl1c_io_resume, -}; - -static struct pci_driver atl1c_driver = { - .name = atl1c_driver_name, - .id_table = atl1c_pci_tbl, - .probe = atl1c_probe, - .remove = __devexit_p(atl1c_remove), - /* Power Managment Hooks */ - .suspend = atl1c_suspend, - .resume = atl1c_resume, - .shutdown = atl1c_shutdown, - .err_handler = &atl1c_err_handler -}; - -/* - * atl1c_init_module - Driver Registration Routine - * - * atl1c_init_module is the first routine called when the driver is - * loaded. All it does is register with the PCI subsystem. - */ -static int __init atl1c_init_module(void) -{ - return pci_register_driver(&atl1c_driver); -} - -/* - * atl1c_exit_module - Driver Exit Cleanup Routine - * - * atl1c_exit_module is called just before the driver is removed - * from memory. - */ -static void __exit atl1c_exit_module(void) -{ - pci_unregister_driver(&atl1c_driver); -} - -module_init(atl1c_init_module); -module_exit(atl1c_exit_module); diff --git a/src/et131x/Kconfig b/src/et131x/Kconfig deleted file mode 100644 index e11cf34..0000000 --- a/src/et131x/Kconfig +++ /dev/null @@ -1,18 +0,0 @@ -config ET131X - tristate "Agere ET-1310 Gigabit Ethernet support" - depends on NETDEV_1000 && PCI - default n - ---help--- - This driver supports Agere ET-1310 ethernet adapters. - - To compile this driver as a module, choose M here. The module - will be called et131x. - -config ET131X_DEBUG - bool "Enable et131x debugging" - depends on ET131X - default n - ---help--- - Say Y for detailed debug information. - - If in doubt, say N. diff --git a/src/et131x/Makefile b/src/et131x/Makefile deleted file mode 100644 index 71640ff..0000000 --- a/src/et131x/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -KSRC ?= /lib/modules/$(shell uname -r)/build - -obj-m = et131x.o - -et131x-objs := et1310_eeprom.o \ - et1310_jagcore.o \ - et1310_mac.o \ - et1310_phy.o \ - et1310_pm.o \ - et1310_rx.o \ - et1310_tx.o \ - et131x_config.o \ - et131x_debug.o \ - et131x_initpci.o \ - et131x_isr.o \ - et131x_netdev.o - -all: - $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules - -clean: - rm -rf *.ko *.mod.* *.o .*.cmd .tmp_versions Module.symvers - -distclean: clean - rm -rf cscope.* *~ diff --git a/src/et131x/README b/src/et131x/README deleted file mode 100644 index 28752a5..0000000 --- a/src/et131x/README +++ /dev/null @@ -1,25 +0,0 @@ -This is a driver for the ET1310 network device. - -Based on the driver found at https://sourceforge.net/projects/et131x/ - -Cleaned up immensely by Olaf Hartman o.hartmann@telovital.com and Christoph -Hellwig hch@infradead.org - -Note, the powermanagement options were removed from the vendor provided -driver as they did not build properly at the time. - -TODO: - - kernel coding style cleanups - - forward port for latest network driver changes - - kill useless typecasts (e.g. in et1310_phy.c) - - alloc_etherdev is initializing memory with zero?!? - - add_timer call in et131x_netdev.c is correct? - - Add power saving functionality (suspend, sleep, resume) - - Implement a few more kernel Parameter (set mac ) - -Please send patches to: - Greg Kroah-Hartman gregkh@suse.de - -And Cc: Olaf Hartmann o.hartmann@telovital.com as he has this device and can -test any changes. - diff --git a/src/et131x/et1310_address_map.h b/src/et131x/et1310_address_map.h deleted file mode 100644 index 3c85999..0000000 --- a/src/et131x/et1310_address_map.h +++ /dev/null @@ -1,2399 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_address_map.h - Contains the register mapping for the ET1310 - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef _ET1310_ADDRESS_MAP_H_ -#define _ET1310_ADDRESS_MAP_H_ - - -/* START OF GLOBAL REGISTER ADDRESS MAP */ - -typedef union _Q_ADDR_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:22; // bits 10-31 - u32 addr:10; // bits 0-9 -#else - u32 addr:10; // bits 0-9 - u32 unused:22; // bits 10-31 -#endif - } bits; -} Q_ADDR_t, *PQ_ADDR_t; - -/* - * structure for tx queue start address reg in global address map - * located at address 0x0000 - * Defined earlier (Q_ADDR_t) - */ - -/* - * structure for tx queue end address reg in global address map - * located at address 0x0004 - * Defined earlier (Q_ADDR_t) - */ - -/* - * structure for rx queue start address reg in global address map - * located at address 0x0008 - * Defined earlier (Q_ADDR_t) - */ - -/* - * structure for rx queue end address reg in global address map - * located at address 0x000C - * Defined earlier (Q_ADDR_t) - */ - -/* - * structure for power management control status reg in global address map - * located at address 0x0010 - */ -typedef union _PM_CSR_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:22; // bits 10-31 - u32 pm_jagcore_rx_rdy:1; // bit 9 - u32 pm_jagcore_tx_rdy:1; // bit 8 - u32 pm_phy_lped_en:1; // bit 7 - u32 pm_phy_sw_coma:1; // bit 6 - u32 pm_rxclk_gate:1; // bit 5 - u32 pm_txclk_gate:1; // bit 4 - u32 pm_sysclk_gate:1; // bit 3 - u32 pm_jagcore_rx_en:1; // bit 2 - u32 pm_jagcore_tx_en:1; // bit 1 - u32 pm_gigephy_en:1; // bit 0 -#else - u32 pm_gigephy_en:1; // bit 0 - u32 pm_jagcore_tx_en:1; // bit 1 - u32 pm_jagcore_rx_en:1; // bit 2 - u32 pm_sysclk_gate:1; // bit 3 - u32 pm_txclk_gate:1; // bit 4 - u32 pm_rxclk_gate:1; // bit 5 - u32 pm_phy_sw_coma:1; // bit 6 - u32 pm_phy_lped_en:1; // bit 7 - u32 pm_jagcore_tx_rdy:1; // bit 8 - u32 pm_jagcore_rx_rdy:1; // bit 9 - u32 unused:22; // bits 10-31 -#endif - } bits; -} PM_CSR_t, *PPM_CSR_t; - -/* - * structure for interrupt status reg in global address map - * located at address 0x0018 - */ -typedef union _INTERRUPT_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused5:11; // bits 21-31 - u32 slv_timeout:1; // bit 20 - u32 mac_stat_interrupt:1; // bit 19 - u32 rxmac_interrupt:1; // bit 18 - u32 txmac_interrupt:1; // bit 17 - u32 phy_interrupt:1; // bit 16 - u32 wake_on_lan:1; // bit 15 - u32 watchdog_interrupt:1; // bit 14 - u32 unused4:4; // bits 10-13 - u32 rxdma_err:1; // bit 9 - u32 rxdma_pkt_stat_ring_low:1; // bit 8 - u32 rxdma_fb_ring1_low:1; // bit 7 - u32 rxdma_fb_ring0_low:1; // bit 6 - u32 rxdma_xfr_done:1; // bit 5 - u32 txdma_err:1; // bit 4 - u32 txdma_isr:1; // bit 3 - u32 unused3:1; // bit 2 - u32 unused2:1; // bit 1 - u32 unused1:1; // bit 0 -#else - u32 unused1:1; // bit 0 - u32 unused2:1; // bit 1 - u32 unused3:1; // bit 2 - u32 txdma_isr:1; // bit 3 - u32 txdma_err:1; // bit 4 - u32 rxdma_xfr_done:1; // bit 5 - u32 rxdma_fb_ring0_low:1; // bit 6 - u32 rxdma_fb_ring1_low:1; // bit 7 - u32 rxdma_pkt_stat_ring_low:1; // bit 8 - u32 rxdma_err:1; // bit 9 - u32 unused4:4; // bits 10-13 - u32 watchdog_interrupt:1; // bit 14 - u32 wake_on_lan:1; // bit 15 - u32 phy_interrupt:1; // bit 16 - u32 txmac_interrupt:1; // bit 17 - u32 rxmac_interrupt:1; // bit 18 - u32 mac_stat_interrupt:1; // bit 19 - u32 slv_timeout:1; // bit 20 - u32 unused5:11; // bits 21-31 -#endif - } bits; -} INTERRUPT_t, *PINTERRUPT_t; - -/* - * structure for interrupt mask reg in global address map - * located at address 0x001C - * Defined earlier (INTERRUPT_t), but 'watchdog_interrupt' is not used. - */ - -/* - * structure for interrupt alias clear mask reg in global address map - * located at address 0x0020 - * Defined earlier (INTERRUPT_t) - */ - -/* - * structure for interrupt status alias reg in global address map - * located at address 0x0024 - * Defined earlier (INTERRUPT_t) - */ - -/* - * structure for software reset reg in global address map - * located at address 0x0028 - */ -typedef union _SW_RESET_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 selfclr_disable:1; // bit 31 - u32 unused:24; // bits 7-30 - u32 mmc_sw_reset:1; // bit 6 - u32 mac_stat_sw_reset:1; // bit 5 - u32 mac_sw_reset:1; // bit 4 - u32 rxmac_sw_reset:1; // bit 3 - u32 txmac_sw_reset:1; // bit 2 - u32 rxdma_sw_reset:1; // bit 1 - u32 txdma_sw_reset:1; // bit 0 -#else - u32 txdma_sw_reset:1; // bit 0 - u32 rxdma_sw_reset:1; // bit 1 - u32 txmac_sw_reset:1; // bit 2 - u32 rxmac_sw_reset:1; // bit 3 - u32 mac_sw_reset:1; // bit 4 - u32 mac_stat_sw_reset:1; // bit 5 - u32 mmc_sw_reset:1; // bit 6 - u32 unused:24; // bits 7-30 - u32 selfclr_disable:1; // bit 31 -#endif - } bits; -} SW_RESET_t, *PSW_RESET_t; - -/* - * structure for SLV Timer reg in global address map - * located at address 0x002C - */ -typedef union _SLV_TIMER_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:8; // bits 24-31 - u32 timer_ini:24; // bits 0-23 -#else - u32 timer_ini:24; // bits 0-23 - u32 unused:8; // bits 24-31 -#endif - } bits; -} SLV_TIMER_t, *PSLV_TIMER_t; - -/* - * structure for MSI Configuration reg in global address map - * located at address 0x0030 - */ -typedef union _MSI_CONFIG_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused1:13; // bits 19-31 - u32 msi_tc:3; // bits 16-18 - u32 unused2:11; // bits 5-15 - u32 msi_vector:5; // bits 0-4 -#else - u32 msi_vector:5; // bits 0-4 - u32 unused2:11; // bits 5-15 - u32 msi_tc:3; // bits 16-18 - u32 unused1:13; // bits 19-31 -#endif - } bits; -} MSI_CONFIG_t, *PMSI_CONFIG_t; - -/* - * structure for Loopback reg in global address map - * located at address 0x0034 - */ -typedef union _LOOPBACK_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:30; // bits 2-31 - u32 dma_loopback:1; // bit 1 - u32 mac_loopback:1; // bit 0 -#else - u32 mac_loopback:1; // bit 0 - u32 dma_loopback:1; // bit 1 - u32 unused:30; // bits 2-31 -#endif - } bits; -} LOOPBACK_t, *PLOOPBACK_t; - -/* - * GLOBAL Module of JAGCore Address Mapping - * Located at address 0x0000 - */ -typedef struct _GLOBAL_t { // Location: - Q_ADDR_t txq_start_addr; // 0x0000 - Q_ADDR_t txq_end_addr; // 0x0004 - Q_ADDR_t rxq_start_addr; // 0x0008 - Q_ADDR_t rxq_end_addr; // 0x000C - PM_CSR_t pm_csr; // 0x0010 - u32 unused; // 0x0014 - INTERRUPT_t int_status; // 0x0018 - INTERRUPT_t int_mask; // 0x001C - INTERRUPT_t int_alias_clr_en; // 0x0020 - INTERRUPT_t int_status_alias; // 0x0024 - SW_RESET_t sw_reset; // 0x0028 - SLV_TIMER_t slv_timer; // 0x002C - MSI_CONFIG_t msi_config; // 0x0030 - LOOPBACK_t loopback; // 0x0034 - u32 watchdog_timer; // 0x0038 -} GLOBAL_t, *PGLOBAL_t; - -/* END OF GLOBAL REGISTER ADDRESS MAP */ - - -/* START OF TXDMA REGISTER ADDRESS MAP */ - -/* - * structure for txdma control status reg in txdma address map - * located at address 0x1000 - */ -typedef union _TXDMA_CSR_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused2:19; // bits 13-31 - u32 traffic_class:4; // bits 9-12 - u32 sngl_epkt_mode:1; // bit 8 - u32 cache_thrshld:4; // bits 4-7 - u32 unused1:2; // bits 2-3 - u32 drop_TLP_disable:1; // bit 1 - u32 halt:1; // bit 0 -#else - u32 halt:1; // bit 0 - u32 drop_TLP_disable:1; // bit 1 - u32 unused1:2; // bits 2-3 - u32 cache_thrshld:4; // bits 4-7 - u32 sngl_epkt_mode:1; // bit 8 - u32 traffic_class:4; // bits 9-12 - u32 unused2:19; // bits 13-31 -#endif - } bits; -} TXDMA_CSR_t, *PTXDMA_CSR_t; - -/* - * structure for txdma packet ring base address hi reg in txdma address map - * located at address 0x1004 - * Defined earlier (u32) - */ - -/* - * structure for txdma packet ring base address low reg in txdma address map - * located at address 0x1008 - * Defined earlier (u32) - */ - -/* - * structure for txdma packet ring number of descriptor reg in txdma address - * map. Located at address 0x100C - */ -typedef union _TXDMA_PR_NUM_DES_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:22; // bits 10-31 - u32 pr_ndes:10; // bits 0-9 -#else - u32 pr_ndes:10; // bits 0-9 - u32 unused:22; // bits 10-31 -#endif - } bits; -} TXDMA_PR_NUM_DES_t, *PTXDMA_PR_NUM_DES_t; - - -typedef union _DMA10W_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:21; // bits 11-31 - u32 wrap:1; // bit 10 - u32 val:10; // bits 0-9 -#else - u32 val:10; // bits 0-9 - u32 wrap:1; // bit 10 - u32 unused:21; // bits 11-31 -#endif - } bits; -} DMA10W_t, *PDMA10W_t; - -/* - * structure for txdma tx queue write address reg in txdma address map - * located at address 0x1010 - * Defined earlier (DMA10W_t) - */ - -/* - * structure for txdma tx queue write address external reg in txdma address map - * located at address 0x1014 - * Defined earlier (DMA10W_t) - */ - -/* - * structure for txdma tx queue read address reg in txdma address map - * located at address 0x1018 - * Defined earlier (DMA10W_t) - */ - -/* - * structure for txdma status writeback address hi reg in txdma address map - * located at address 0x101C - * Defined earlier (u32) - */ - -/* - * structure for txdma status writeback address lo reg in txdma address map - * located at address 0x1020 - * Defined earlier (u32) - */ - -/* - * structure for txdma service request reg in txdma address map - * located at address 0x1024 - * Defined earlier (DMA10W_t) - */ - -/* - * structure for txdma service complete reg in txdma address map - * located at address 0x1028 - * Defined earlier (DMA10W_t) - */ - -typedef union _DMA4W_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:27; // bits 5-31 - u32 wrap:1; // bit 4 - u32 val:4; // bit 0-3 -#else - u32 val:4; // bits 0-3 - u32 wrap:1; // bit 4 - u32 unused:27; // bits 5-31 -#endif - } bits; -} DMA4W_t, *PDMA4W_t; - -/* - * structure for txdma tx descriptor cache read index reg in txdma address map - * located at address 0x102C - * Defined earlier (DMA4W_t) - */ - -/* - * structure for txdma tx descriptor cache write index reg in txdma address map - * located at address 0x1030 - * Defined earlier (DMA4W_t) - */ - -/* - * structure for txdma error reg in txdma address map - * located at address 0x1034 - */ -typedef union _TXDMA_ERROR_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused3:22; // bits 10-31 - u32 WrbkRewind:1; // bit 9 - u32 WrbkResend:1; // bit 8 - u32 unused2:2; // bits 6-7 - u32 DescrRewind:1; // bit 5 - u32 DescrResend:1; // bit 4 - u32 unused1:2; // bits 2-3 - u32 PyldRewind:1; // bit 1 - u32 PyldResend:1; // bit 0 -#else - u32 PyldResend:1; // bit 0 - u32 PyldRewind:1; // bit 1 - u32 unused1:2; // bits 2-3 - u32 DescrResend:1; // bit 4 - u32 DescrRewind:1; // bit 5 - u32 unused2:2; // bits 6-7 - u32 WrbkResend:1; // bit 8 - u32 WrbkRewind:1; // bit 9 - u32 unused3:22; // bits 10-31 -#endif - } bits; -} TXDMA_ERROR_t, *PTXDMA_ERROR_t; - -/* - * Tx DMA Module of JAGCore Address Mapping - * Located at address 0x1000 - */ -typedef struct _TXDMA_t { // Location: - TXDMA_CSR_t csr; // 0x1000 - u32 pr_base_hi; // 0x1004 - u32 pr_base_lo; // 0x1008 - TXDMA_PR_NUM_DES_t pr_num_des; // 0x100C - DMA10W_t txq_wr_addr; // 0x1010 - DMA10W_t txq_wr_addr_ext; // 0x1014 - DMA10W_t txq_rd_addr; // 0x1018 - u32 dma_wb_base_hi; // 0x101C - u32 dma_wb_base_lo; // 0x1020 - DMA10W_t service_request; // 0x1024 - DMA10W_t service_complete; // 0x1028 - DMA4W_t cache_rd_index; // 0x102C - DMA4W_t cache_wr_index; // 0x1030 - TXDMA_ERROR_t TxDmaError; // 0x1034 - u32 DescAbortCount; // 0x1038 - u32 PayloadAbortCnt; // 0x103c - u32 WriteBackAbortCnt; // 0x1040 - u32 DescTimeoutCnt; // 0x1044 - u32 PayloadTimeoutCnt; // 0x1048 - u32 WriteBackTimeoutCnt; // 0x104c - u32 DescErrorCount; // 0x1050 - u32 PayloadErrorCnt; // 0x1054 - u32 WriteBackErrorCnt; // 0x1058 - u32 DroppedTLPCount; // 0x105c - DMA10W_t NewServiceComplete; // 0x1060 - u32 EthernetPacketCount; // 0x1064 -} TXDMA_t, *PTXDMA_t; - -/* END OF TXDMA REGISTER ADDRESS MAP */ - - -/* START OF RXDMA REGISTER ADDRESS MAP */ - -/* - * structure for control status reg in rxdma address map - * Located at address 0x2000 - */ -typedef union _RXDMA_CSR_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused2:14; // bits 18-31 - u32 halt_status:1; // bit 17 - u32 pkt_done_flush:1; // bit 16 - u32 pkt_drop_disable:1; // bit 15 - u32 unused1:1; // bit 14 - u32 fbr1_enable:1; // bit 13 - u32 fbr1_size:2; // bits 11-12 - u32 fbr0_enable:1; // bit 10 - u32 fbr0_size:2; // bits 8-9 - u32 dma_big_endian:1; // bit 7 - u32 pkt_big_endian:1; // bit 6 - u32 psr_big_endian:1; // bit 5 - u32 fbr_big_endian:1; // bit 4 - u32 tc:3; // bits 1-3 - u32 halt:1; // bit 0 -#else - u32 halt:1; // bit 0 - u32 tc:3; // bits 1-3 - u32 fbr_big_endian:1; // bit 4 - u32 psr_big_endian:1; // bit 5 - u32 pkt_big_endian:1; // bit 6 - u32 dma_big_endian:1; // bit 7 - u32 fbr0_size:2; // bits 8-9 - u32 fbr0_enable:1; // bit 10 - u32 fbr1_size:2; // bits 11-12 - u32 fbr1_enable:1; // bit 13 - u32 unused1:1; // bit 14 - u32 pkt_drop_disable:1; // bit 15 - u32 pkt_done_flush:1; // bit 16 - u32 halt_status:1; // bit 17 - u32 unused2:14; // bits 18-31 -#endif - } bits; -} RXDMA_CSR_t, *PRXDMA_CSR_t; - -/* - * structure for dma writeback lo reg in rxdma address map - * located at address 0x2004 - * Defined earlier (u32) - */ - -/* - * structure for dma writeback hi reg in rxdma address map - * located at address 0x2008 - * Defined earlier (u32) - */ - -/* - * structure for number of packets done reg in rxdma address map - * located at address 0x200C - */ -typedef union _RXDMA_NUM_PKT_DONE_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:24; // bits 8-31 - u32 num_done:8; // bits 0-7 -#else - u32 num_done:8; // bits 0-7 - u32 unused:24; // bits 8-31 -#endif - } bits; -} RXDMA_NUM_PKT_DONE_t, *PRXDMA_NUM_PKT_DONE_t; - -/* - * structure for max packet time reg in rxdma address map - * located at address 0x2010 - */ -typedef union _RXDMA_MAX_PKT_TIME_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:14; // bits 18-31 - u32 time_done:18; // bits 0-17 -#else - u32 time_done:18; // bits 0-17 - u32 unused:14; // bits 18-31 -#endif - } bits; -} RXDMA_MAX_PKT_TIME_t, *PRXDMA_MAX_PKT_TIME_t; - -/* - * structure for rx queue read address reg in rxdma address map - * located at address 0x2014 - * Defined earlier (DMA10W_t) - */ - -/* - * structure for rx queue read address external reg in rxdma address map - * located at address 0x2018 - * Defined earlier (DMA10W_t) - */ - -/* - * structure for rx queue write address reg in rxdma address map - * located at address 0x201C - * Defined earlier (DMA10W_t) - */ - -/* - * structure for packet status ring base address lo reg in rxdma address map - * located at address 0x2020 - * Defined earlier (u32) - */ - -/* - * structure for packet status ring base address hi reg in rxdma address map - * located at address 0x2024 - * Defined earlier (u32) - */ - -/* - * structure for packet status ring number of descriptors reg in rxdma address - * map. Located at address 0x2028 - */ -typedef union _RXDMA_PSR_NUM_DES_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:20; // bits 12-31 - u32 psr_ndes:12; // bit 0-11 -#else - u32 psr_ndes:12; // bit 0-11 - u32 unused:20; // bits 12-31 -#endif - } bits; -} RXDMA_PSR_NUM_DES_t, *PRXDMA_PSR_NUM_DES_t; - -/* - * structure for packet status ring available offset reg in rxdma address map - * located at address 0x202C - */ -typedef union _RXDMA_PSR_AVAIL_OFFSET_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:19; // bits 13-31 - u32 psr_avail_wrap:1; // bit 12 - u32 psr_avail:12; // bit 0-11 -#else - u32 psr_avail:12; // bit 0-11 - u32 psr_avail_wrap:1; // bit 12 - u32 unused:19; // bits 13-31 -#endif - } bits; -} RXDMA_PSR_AVAIL_OFFSET_t, *PRXDMA_PSR_AVAIL_OFFSET_t; - -/* - * structure for packet status ring full offset reg in rxdma address map - * located at address 0x2030 - */ -typedef union _RXDMA_PSR_FULL_OFFSET_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:19; // bits 13-31 - u32 psr_full_wrap:1; // bit 12 - u32 psr_full:12; // bit 0-11 -#else - u32 psr_full:12; // bit 0-11 - u32 psr_full_wrap:1; // bit 12 - u32 unused:19; // bits 13-31 -#endif - } bits; -} RXDMA_PSR_FULL_OFFSET_t, *PRXDMA_PSR_FULL_OFFSET_t; - -/* - * structure for packet status ring access index reg in rxdma address map - * located at address 0x2034 - */ -typedef union _RXDMA_PSR_ACCESS_INDEX_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:27; // bits 5-31 - u32 psr_ai:5; // bits 0-4 -#else - u32 psr_ai:5; // bits 0-4 - u32 unused:27; // bits 5-31 -#endif - } bits; -} RXDMA_PSR_ACCESS_INDEX_t, *PRXDMA_PSR_ACCESS_INDEX_t; - -/* - * structure for packet status ring minimum descriptors reg in rxdma address - * map. Located at address 0x2038 - */ -typedef union _RXDMA_PSR_MIN_DES_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:20; // bits 12-31 - u32 psr_min:12; // bits 0-11 -#else - u32 psr_min:12; // bits 0-11 - u32 unused:20; // bits 12-31 -#endif - } bits; -} RXDMA_PSR_MIN_DES_t, *PRXDMA_PSR_MIN_DES_t; - -/* - * structure for free buffer ring base lo address reg in rxdma address map - * located at address 0x203C - * Defined earlier (u32) - */ - -/* - * structure for free buffer ring base hi address reg in rxdma address map - * located at address 0x2040 - * Defined earlier (u32) - */ - -/* - * structure for free buffer ring number of descriptors reg in rxdma address - * map. Located at address 0x2044 - */ -typedef union _RXDMA_FBR_NUM_DES_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:22; // bits 10-31 - u32 fbr_ndesc:10; // bits 0-9 -#else - u32 fbr_ndesc:10; // bits 0-9 - u32 unused:22; // bits 10-31 -#endif - } bits; -} RXDMA_FBR_NUM_DES_t, *PRXDMA_FBR_NUM_DES_t; - -/* - * structure for free buffer ring 0 available offset reg in rxdma address map - * located at address 0x2048 - * Defined earlier (DMA10W_t) - */ - -/* - * structure for free buffer ring 0 full offset reg in rxdma address map - * located at address 0x204C - * Defined earlier (DMA10W_t) - */ - -/* - * structure for free buffer cache 0 full offset reg in rxdma address map - * located at address 0x2050 - */ -typedef union _RXDMA_FBC_RD_INDEX_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:27; // bits 5-31 - u32 fbc_rdi:5; // bit 0-4 -#else - u32 fbc_rdi:5; // bit 0-4 - u32 unused:27; // bits 5-31 -#endif - } bits; -} RXDMA_FBC_RD_INDEX_t, *PRXDMA_FBC_RD_INDEX_t; - -/* - * structure for free buffer ring 0 minimum descriptor reg in rxdma address map - * located at address 0x2054 - */ -typedef union _RXDMA_FBR_MIN_DES_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:22; // bits 10-31 - u32 fbr_min:10; // bits 0-9 -#else - u32 fbr_min:10; // bits 0-9 - u32 unused:22; // bits 10-31 -#endif - } bits; -} RXDMA_FBR_MIN_DES_t, *PRXDMA_FBR_MIN_DES_t; - -/* - * structure for free buffer ring 1 base address lo reg in rxdma address map - * located at address 0x2058 - 0x205C - * Defined earlier (RXDMA_FBR_BASE_LO_t and RXDMA_FBR_BASE_HI_t) - */ - -/* - * structure for free buffer ring 1 number of descriptors reg in rxdma address - * map. Located at address 0x2060 - * Defined earlier (RXDMA_FBR_NUM_DES_t) - */ - -/* - * structure for free buffer ring 1 available offset reg in rxdma address map - * located at address 0x2064 - * Defined Earlier (RXDMA_FBR_AVAIL_OFFSET_t) - */ - -/* - * structure for free buffer ring 1 full offset reg in rxdma address map - * located at address 0x2068 - * Defined Earlier (RXDMA_FBR_FULL_OFFSET_t) - */ - -/* - * structure for free buffer cache 1 read index reg in rxdma address map - * located at address 0x206C - * Defined Earlier (RXDMA_FBC_RD_INDEX_t) - */ - -/* - * structure for free buffer ring 1 minimum descriptor reg in rxdma address map - * located at address 0x2070 - * Defined Earlier (RXDMA_FBR_MIN_DES_t) - */ - -/* - * Rx DMA Module of JAGCore Address Mapping - * Located at address 0x2000 - */ -typedef struct _RXDMA_t { // Location: - RXDMA_CSR_t csr; // 0x2000 - u32 dma_wb_base_lo; // 0x2004 - u32 dma_wb_base_hi; // 0x2008 - RXDMA_NUM_PKT_DONE_t num_pkt_done; // 0x200C - RXDMA_MAX_PKT_TIME_t max_pkt_time; // 0x2010 - DMA10W_t rxq_rd_addr; // 0x2014 - DMA10W_t rxq_rd_addr_ext; // 0x2018 - DMA10W_t rxq_wr_addr; // 0x201C - u32 psr_base_lo; // 0x2020 - u32 psr_base_hi; // 0x2024 - RXDMA_PSR_NUM_DES_t psr_num_des; // 0x2028 - RXDMA_PSR_AVAIL_OFFSET_t psr_avail_offset; // 0x202C - RXDMA_PSR_FULL_OFFSET_t psr_full_offset; // 0x2030 - RXDMA_PSR_ACCESS_INDEX_t psr_access_index; // 0x2034 - RXDMA_PSR_MIN_DES_t psr_min_des; // 0x2038 - u32 fbr0_base_lo; // 0x203C - u32 fbr0_base_hi; // 0x2040 - RXDMA_FBR_NUM_DES_t fbr0_num_des; // 0x2044 - DMA10W_t fbr0_avail_offset; // 0x2048 - DMA10W_t fbr0_full_offset; // 0x204C - RXDMA_FBC_RD_INDEX_t fbr0_rd_index; // 0x2050 - RXDMA_FBR_MIN_DES_t fbr0_min_des; // 0x2054 - u32 fbr1_base_lo; // 0x2058 - u32 fbr1_base_hi; // 0x205C - RXDMA_FBR_NUM_DES_t fbr1_num_des; // 0x2060 - DMA10W_t fbr1_avail_offset; // 0x2064 - DMA10W_t fbr1_full_offset; // 0x2068 - RXDMA_FBC_RD_INDEX_t fbr1_rd_index; // 0x206C - RXDMA_FBR_MIN_DES_t fbr1_min_des; // 0x2070 -} RXDMA_t, *PRXDMA_t; - -/* END OF RXDMA REGISTER ADDRESS MAP */ - - -/* START OF TXMAC REGISTER ADDRESS MAP */ - -/* - * structure for control reg in txmac address map - * located at address 0x3000 - */ -typedef union _TXMAC_CTL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:24; // bits 8-31 - u32 cklseg_diable:1; // bit 7 - u32 ckbcnt_disable:1; // bit 6 - u32 cksegnum:1; // bit 5 - u32 async_disable:1; // bit 4 - u32 fc_disable:1; // bit 3 - u32 mcif_disable:1; // bit 2 - u32 mif_disable:1; // bit 1 - u32 txmac_en:1; // bit 0 -#else - u32 txmac_en:1; // bit 0 - u32 mif_disable:1; // bit 1 mac interface - u32 mcif_disable:1; // bit 2 mem. contr. interface - u32 fc_disable:1; // bit 3 - u32 async_disable:1; // bit 4 - u32 cksegnum:1; // bit 5 - u32 ckbcnt_disable:1; // bit 6 - u32 cklseg_diable:1; // bit 7 - u32 unused:24; // bits 8-31 -#endif - } bits; -} TXMAC_CTL_t, *PTXMAC_CTL_t; - -/* - * structure for shadow pointer reg in txmac address map - * located at address 0x3004 - */ -typedef union _TXMAC_SHADOW_PTR_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved2:5; // bits 27-31 - u32 txq_rd_ptr:11; // bits 16-26 - u32 reserved:5; // bits 11-15 - u32 txq_wr_ptr:11; // bits 0-10 -#else - u32 txq_wr_ptr:11; // bits 0-10 - u32 reserved:5; // bits 11-15 - u32 txq_rd_ptr:11; // bits 16-26 - u32 reserved2:5; // bits 27-31 -#endif - } bits; -} TXMAC_SHADOW_PTR_t, *PTXMAC_SHADOW_PTR_t; - -/* - * structure for error count reg in txmac address map - * located at address 0x3008 - */ -typedef union _TXMAC_ERR_CNT_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:20; // bits 12-31 - u32 reserved:4; // bits 8-11 - u32 txq_underrun:4; // bits 4-7 - u32 fifo_underrun:4; // bits 0-3 -#else - u32 fifo_underrun:4; // bits 0-3 - u32 txq_underrun:4; // bits 4-7 - u32 reserved:4; // bits 8-11 - u32 unused:20; // bits 12-31 -#endif - } bits; -} TXMAC_ERR_CNT_t, *PTXMAC_ERR_CNT_t; - -/* - * structure for max fill reg in txmac address map - * located at address 0x300C - */ -typedef union _TXMAC_MAX_FILL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:20; // bits 12-31 - u32 max_fill:12; // bits 0-11 -#else - u32 max_fill:12; // bits 0-11 - u32 unused:20; // bits 12-31 -#endif - } bits; -} TXMAC_MAX_FILL_t, *PTXMAC_MAX_FILL_t; - -/* - * structure for cf parameter reg in txmac address map - * located at address 0x3010 - */ -typedef union _TXMAC_CF_PARAM_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 cfep:16; // bits 16-31 - u32 cfpt:16; // bits 0-15 -#else - u32 cfpt:16; // bits 0-15 - u32 cfep:16; // bits 16-31 -#endif - } bits; -} TXMAC_CF_PARAM_t, *PTXMAC_CF_PARAM_t; - -/* - * structure for tx test reg in txmac address map - * located at address 0x3014 - */ -typedef union _TXMAC_TXTEST_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused2:15; // bits 17-31 - u32 reserved1:1; // bit 16 - u32 txtest_en:1; // bit 15 - u32 unused1:4; // bits 11-14 - u32 txqtest_ptr:11; // bits 0-11 -#else - u32 txqtest_ptr:11; // bits 0-10 - u32 unused1:4; // bits 11-14 - u32 txtest_en:1; // bit 15 - u32 reserved1:1; // bit 16 - u32 unused2:15; // bits 17-31 -#endif - } bits; -} TXMAC_TXTEST_t, *PTXMAC_TXTEST_t; - -/* - * structure for error reg in txmac address map - * located at address 0x3018 - */ -typedef union _TXMAC_ERR_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused2:23; // bits 9-31 - u32 fifo_underrun:1; // bit 8 - u32 unused1:2; // bits 6-7 - u32 ctrl2_err:1; // bit 5 - u32 txq_underrun:1; // bit 4 - u32 bcnt_err:1; // bit 3 - u32 lseg_err:1; // bit 2 - u32 segnum_err:1; // bit 1 - u32 seg0_err:1; // bit 0 -#else - u32 seg0_err:1; // bit 0 - u32 segnum_err:1; // bit 1 - u32 lseg_err:1; // bit 2 - u32 bcnt_err:1; // bit 3 - u32 txq_underrun:1; // bit 4 - u32 ctrl2_err:1; // bit 5 - u32 unused1:2; // bits 6-7 - u32 fifo_underrun:1; // bit 8 - u32 unused2:23; // bits 9-31 -#endif - } bits; -} TXMAC_ERR_t, *PTXMAC_ERR_t; - -/* - * structure for error interrupt reg in txmac address map - * located at address 0x301C - */ -typedef union _TXMAC_ERR_INT_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused2:23; // bits 9-31 - u32 fifo_underrun:1; // bit 8 - u32 unused1:2; // bits 6-7 - u32 ctrl2_err:1; // bit 5 - u32 txq_underrun:1; // bit 4 - u32 bcnt_err:1; // bit 3 - u32 lseg_err:1; // bit 2 - u32 segnum_err:1; // bit 1 - u32 seg0_err:1; // bit 0 -#else - u32 seg0_err:1; // bit 0 - u32 segnum_err:1; // bit 1 - u32 lseg_err:1; // bit 2 - u32 bcnt_err:1; // bit 3 - u32 txq_underrun:1; // bit 4 - u32 ctrl2_err:1; // bit 5 - u32 unused1:2; // bits 6-7 - u32 fifo_underrun:1; // bit 8 - u32 unused2:23; // bits 9-31 -#endif - } bits; -} TXMAC_ERR_INT_t, *PTXMAC_ERR_INT_t; - -/* - * structure for error interrupt reg in txmac address map - * located at address 0x3020 - */ -typedef union _TXMAC_CP_CTRL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:30; // bits 2-31 - u32 bp_req:1; // bit 1 - u32 bp_xonxoff:1; // bit 0 -#else - u32 bp_xonxoff:1; // bit 0 - u32 bp_req:1; // bit 1 - u32 unused:30; // bits 2-31 -#endif - } bits; -} TXMAC_BP_CTRL_t, *PTXMAC_BP_CTRL_t; - -/* - * Tx MAC Module of JAGCore Address Mapping - */ -typedef struct _TXMAC_t { // Location: - TXMAC_CTL_t ctl; // 0x3000 - TXMAC_SHADOW_PTR_t shadow_ptr; // 0x3004 - TXMAC_ERR_CNT_t err_cnt; // 0x3008 - TXMAC_MAX_FILL_t max_fill; // 0x300C - TXMAC_CF_PARAM_t cf_param; // 0x3010 - TXMAC_TXTEST_t tx_test; // 0x3014 - TXMAC_ERR_t err; // 0x3018 - TXMAC_ERR_INT_t err_int; // 0x301C - TXMAC_BP_CTRL_t bp_ctrl; // 0x3020 -} TXMAC_t, *PTXMAC_t; - -/* END OF TXMAC REGISTER ADDRESS MAP */ - -/* START OF RXMAC REGISTER ADDRESS MAP */ - -/* - * structure for rxmac control reg in rxmac address map - * located at address 0x4000 - */ -typedef union _RXMAC_CTRL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:25; // bits 7-31 - u32 rxmac_int_disable:1; // bit 6 - u32 async_disable:1; // bit 5 - u32 mif_disable:1; // bit 4 - u32 wol_disable:1; // bit 3 - u32 pkt_filter_disable:1; // bit 2 - u32 mcif_disable:1; // bit 1 - u32 rxmac_en:1; // bit 0 -#else - u32 rxmac_en:1; // bit 0 - u32 mcif_disable:1; // bit 1 - u32 pkt_filter_disable:1; // bit 2 - u32 wol_disable:1; // bit 3 - u32 mif_disable:1; // bit 4 - u32 async_disable:1; // bit 5 - u32 rxmac_int_disable:1; // bit 6 - u32 reserved:25; // bits 7-31 -#endif - } bits; -} RXMAC_CTRL_t, *PRXMAC_CTRL_t; - -/* - * structure for Wake On Lan Control and CRC 0 reg in rxmac address map - * located at address 0x4004 - */ -typedef union _RXMAC_WOL_CTL_CRC0_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 crc0:16; // bits 16-31 - u32 reserve:4; // bits 12-15 - u32 ignore_pp:1; // bit 11 - u32 ignore_mp:1; // bit 10 - u32 clr_intr:1; // bit 9 - u32 ignore_link_chg:1; // bit 8 - u32 ignore_uni:1; // bit 7 - u32 ignore_multi:1; // bit 6 - u32 ignore_broad:1; // bit 5 - u32 valid_crc4:1; // bit 4 - u32 valid_crc3:1; // bit 3 - u32 valid_crc2:1; // bit 2 - u32 valid_crc1:1; // bit 1 - u32 valid_crc0:1; // bit 0 -#else - u32 valid_crc0:1; // bit 0 - u32 valid_crc1:1; // bit 1 - u32 valid_crc2:1; // bit 2 - u32 valid_crc3:1; // bit 3 - u32 valid_crc4:1; // bit 4 - u32 ignore_broad:1; // bit 5 - u32 ignore_multi:1; // bit 6 - u32 ignore_uni:1; // bit 7 - u32 ignore_link_chg:1; // bit 8 - u32 clr_intr:1; // bit 9 - u32 ignore_mp:1; // bit 10 - u32 ignore_pp:1; // bit 11 - u32 reserve:4; // bits 12-15 - u32 crc0:16; // bits 16-31 -#endif - } bits; -} RXMAC_WOL_CTL_CRC0_t, *PRXMAC_WOL_CTL_CRC0_t; - -/* - * structure for CRC 1 and CRC 2 reg in rxmac address map - * located at address 0x4008 - */ -typedef union _RXMAC_WOL_CRC12_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 crc2:16; // bits 16-31 - u32 crc1:16; // bits 0-15 -#else - u32 crc1:16; // bits 0-15 - u32 crc2:16; // bits 16-31 -#endif - } bits; -} RXMAC_WOL_CRC12_t, *PRXMAC_WOL_CRC12_t; - -/* - * structure for CRC 3 and CRC 4 reg in rxmac address map - * located at address 0x400C - */ -typedef union _RXMAC_WOL_CRC34_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 crc4:16; // bits 16-31 - u32 crc3:16; // bits 0-15 -#else - u32 crc3:16; // bits 0-15 - u32 crc4:16; // bits 16-31 -#endif - } bits; -} RXMAC_WOL_CRC34_t, *PRXMAC_WOL_CRC34_t; - -/* - * structure for Wake On Lan Source Address Lo reg in rxmac address map - * located at address 0x4010 - */ -typedef union _RXMAC_WOL_SA_LO_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 sa3:8; // bits 24-31 - u32 sa4:8; // bits 16-23 - u32 sa5:8; // bits 8-15 - u32 sa6:8; // bits 0-7 -#else - u32 sa6:8; // bits 0-7 - u32 sa5:8; // bits 8-15 - u32 sa4:8; // bits 16-23 - u32 sa3:8; // bits 24-31 -#endif - } bits; -} RXMAC_WOL_SA_LO_t, *PRXMAC_WOL_SA_LO_t; - -/* - * structure for Wake On Lan Source Address Hi reg in rxmac address map - * located at address 0x4014 - */ -typedef union _RXMAC_WOL_SA_HI_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:16; // bits 16-31 - u32 sa1:8; // bits 8-15 - u32 sa2:8; // bits 0-7 -#else - u32 sa2:8; // bits 0-7 - u32 sa1:8; // bits 8-15 - u32 reserved:16; // bits 16-31 -#endif - } bits; -} RXMAC_WOL_SA_HI_t, *PRXMAC_WOL_SA_HI_t; - -/* - * structure for Wake On Lan mask reg in rxmac address map - * located at address 0x4018 - 0x4064 - * Defined earlier (u32) - */ - -/* - * structure for Unicast Paket Filter Address 1 reg in rxmac address map - * located at address 0x4068 - */ -typedef union _RXMAC_UNI_PF_ADDR1_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 addr1_3:8; // bits 24-31 - u32 addr1_4:8; // bits 16-23 - u32 addr1_5:8; // bits 8-15 - u32 addr1_6:8; // bits 0-7 -#else - u32 addr1_6:8; // bits 0-7 - u32 addr1_5:8; // bits 8-15 - u32 addr1_4:8; // bits 16-23 - u32 addr1_3:8; // bits 24-31 -#endif - } bits; -} RXMAC_UNI_PF_ADDR1_t, *PRXMAC_UNI_PF_ADDR1_t; - -/* - * structure for Unicast Paket Filter Address 2 reg in rxmac address map - * located at address 0x406C - */ -typedef union _RXMAC_UNI_PF_ADDR2_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 addr2_3:8; // bits 24-31 - u32 addr2_4:8; // bits 16-23 - u32 addr2_5:8; // bits 8-15 - u32 addr2_6:8; // bits 0-7 -#else - u32 addr2_6:8; // bits 0-7 - u32 addr2_5:8; // bits 8-15 - u32 addr2_4:8; // bits 16-23 - u32 addr2_3:8; // bits 24-31 -#endif - } bits; -} RXMAC_UNI_PF_ADDR2_t, *PRXMAC_UNI_PF_ADDR2_t; - -/* - * structure for Unicast Paket Filter Address 1 & 2 reg in rxmac address map - * located at address 0x4070 - */ -typedef union _RXMAC_UNI_PF_ADDR3_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 addr2_1:8; // bits 24-31 - u32 addr2_2:8; // bits 16-23 - u32 addr1_1:8; // bits 8-15 - u32 addr1_2:8; // bits 0-7 -#else - u32 addr1_2:8; // bits 0-7 - u32 addr1_1:8; // bits 8-15 - u32 addr2_2:8; // bits 16-23 - u32 addr2_1:8; // bits 24-31 -#endif - } bits; -} RXMAC_UNI_PF_ADDR3_t, *PRXMAC_UNI_PF_ADDR3_t; - -/* - * structure for Multicast Hash reg in rxmac address map - * located at address 0x4074 - 0x4080 - * Defined earlier (u32) - */ - -/* - * structure for Packet Filter Control reg in rxmac address map - * located at address 0x4084 - */ -typedef union _RXMAC_PF_CTRL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused2:9; // bits 23-31 - u32 min_pkt_size:7; // bits 16-22 - u32 unused1:12; // bits 4-15 - u32 filter_frag_en:1; // bit 3 - u32 filter_uni_en:1; // bit 2 - u32 filter_multi_en:1; // bit 1 - u32 filter_broad_en:1; // bit 0 -#else - u32 filter_broad_en:1; // bit 0 - u32 filter_multi_en:1; // bit 1 - u32 filter_uni_en:1; // bit 2 - u32 filter_frag_en:1; // bit 3 - u32 unused1:12; // bits 4-15 - u32 min_pkt_size:7; // bits 16-22 - u32 unused2:9; // bits 23-31 -#endif - } bits; -} RXMAC_PF_CTRL_t, *PRXMAC_PF_CTRL_t; - -/* - * structure for Memory Controller Interface Control Max Segment reg in rxmac - * address map. Located at address 0x4088 - */ -typedef union _RXMAC_MCIF_CTRL_MAX_SEG_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:22; // bits 10-31 - u32 max_size:8; // bits 2-9 - u32 fc_en:1; // bit 1 - u32 seg_en:1; // bit 0 -#else - u32 seg_en:1; // bit 0 - u32 fc_en:1; // bit 1 - u32 max_size:8; // bits 2-9 - u32 reserved:22; // bits 10-31 -#endif - } bits; -} RXMAC_MCIF_CTRL_MAX_SEG_t, *PRXMAC_MCIF_CTRL_MAX_SEG_t; - -/* - * structure for Memory Controller Interface Water Mark reg in rxmac address - * map. Located at address 0x408C - */ -typedef union _RXMAC_MCIF_WATER_MARK_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved2:6; // bits 26-31 - u32 mark_hi:10; // bits 16-25 - u32 reserved1:6; // bits 10-15 - u32 mark_lo:10; // bits 0-9 -#else - u32 mark_lo:10; // bits 0-9 - u32 reserved1:6; // bits 10-15 - u32 mark_hi:10; // bits 16-25 - u32 reserved2:6; // bits 26-31 -#endif - } bits; -} RXMAC_MCIF_WATER_MARK_t, *PRXMAC_MCIF_WATER_MARK_t; - -/* - * structure for Rx Queue Dialog reg in rxmac address map. - * located at address 0x4090 - */ -typedef union _RXMAC_RXQ_DIAG_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved2:6; // bits 26-31 - u32 rd_ptr:10; // bits 16-25 - u32 reserved1:6; // bits 10-15 - u32 wr_ptr:10; // bits 0-9 -#else - u32 wr_ptr:10; // bits 0-9 - u32 reserved1:6; // bits 10-15 - u32 rd_ptr:10; // bits 16-25 - u32 reserved2:6; // bits 26-31 -#endif - } bits; -} RXMAC_RXQ_DIAG_t, *PRXMAC_RXQ_DIAG_t; - -/* - * structure for space availiable reg in rxmac address map. - * located at address 0x4094 - */ -typedef union _RXMAC_SPACE_AVAIL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved2:15; // bits 17-31 - u32 space_avail_en:1; // bit 16 - u32 reserved1:6; // bits 10-15 - u32 space_avail:10; // bits 0-9 -#else - u32 space_avail:10; // bits 0-9 - u32 reserved1:6; // bits 10-15 - u32 space_avail_en:1; // bit 16 - u32 reserved2:15; // bits 17-31 -#endif - } bits; -} RXMAC_SPACE_AVAIL_t, *PRXMAC_SPACE_AVAIL_t; - -/* - * structure for management interface reg in rxmac address map. - * located at address 0x4098 - */ -typedef union _RXMAC_MIF_CTL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserve:14; // bits 18-31 - u32 drop_pkt_en:1; // bit 17 - u32 drop_pkt_mask:17; // bits 0-16 -#else - u32 drop_pkt_mask:17; // bits 0-16 - u32 drop_pkt_en:1; // bit 17 - u32 reserve:14; // bits 18-31 -#endif - } bits; -} RXMAC_MIF_CTL_t, *PRXMAC_MIF_CTL_t; - -/* - * structure for Error reg in rxmac address map. - * located at address 0x409C - */ -typedef union _RXMAC_ERROR_REG_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserve:28; // bits 4-31 - u32 mif:1; // bit 3 - u32 async:1; // bit 2 - u32 pkt_filter:1; // bit 1 - u32 mcif:1; // bit 0 -#else - u32 mcif:1; // bit 0 - u32 pkt_filter:1; // bit 1 - u32 async:1; // bit 2 - u32 mif:1; // bit 3 - u32 reserve:28; // bits 4-31 -#endif - } bits; -} RXMAC_ERROR_REG_t, *PRXMAC_ERROR_REG_t; - -/* - * Rx MAC Module of JAGCore Address Mapping - */ -typedef struct _RXMAC_t { // Location: - RXMAC_CTRL_t ctrl; // 0x4000 - RXMAC_WOL_CTL_CRC0_t crc0; // 0x4004 - RXMAC_WOL_CRC12_t crc12; // 0x4008 - RXMAC_WOL_CRC34_t crc34; // 0x400C - RXMAC_WOL_SA_LO_t sa_lo; // 0x4010 - RXMAC_WOL_SA_HI_t sa_hi; // 0x4014 - u32 mask0_word0; // 0x4018 - u32 mask0_word1; // 0x401C - u32 mask0_word2; // 0x4020 - u32 mask0_word3; // 0x4024 - u32 mask1_word0; // 0x4028 - u32 mask1_word1; // 0x402C - u32 mask1_word2; // 0x4030 - u32 mask1_word3; // 0x4034 - u32 mask2_word0; // 0x4038 - u32 mask2_word1; // 0x403C - u32 mask2_word2; // 0x4040 - u32 mask2_word3; // 0x4044 - u32 mask3_word0; // 0x4048 - u32 mask3_word1; // 0x404C - u32 mask3_word2; // 0x4050 - u32 mask3_word3; // 0x4054 - u32 mask4_word0; // 0x4058 - u32 mask4_word1; // 0x405C - u32 mask4_word2; // 0x4060 - u32 mask4_word3; // 0x4064 - RXMAC_UNI_PF_ADDR1_t uni_pf_addr1; // 0x4068 - RXMAC_UNI_PF_ADDR2_t uni_pf_addr2; // 0x406C - RXMAC_UNI_PF_ADDR3_t uni_pf_addr3; // 0x4070 - u32 multi_hash1; // 0x4074 - u32 multi_hash2; // 0x4078 - u32 multi_hash3; // 0x407C - u32 multi_hash4; // 0x4080 - RXMAC_PF_CTRL_t pf_ctrl; // 0x4084 - RXMAC_MCIF_CTRL_MAX_SEG_t mcif_ctrl_max_seg; // 0x4088 - RXMAC_MCIF_WATER_MARK_t mcif_water_mark; // 0x408C - RXMAC_RXQ_DIAG_t rxq_diag; // 0x4090 - RXMAC_SPACE_AVAIL_t space_avail; // 0x4094 - - RXMAC_MIF_CTL_t mif_ctrl; // 0x4098 - RXMAC_ERROR_REG_t err_reg; // 0x409C -} RXMAC_t, *PRXMAC_t; - -/* END OF TXMAC REGISTER ADDRESS MAP */ - - -/* START OF MAC REGISTER ADDRESS MAP */ - -/* - * structure for configuration #1 reg in mac address map. - * located at address 0x5000 - */ -typedef union _MAC_CFG1_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 soft_reset:1; // bit 31 - u32 sim_reset:1; // bit 30 - u32 reserved3:10; // bits 20-29 - u32 reset_rx_mc:1; // bit 19 - u32 reset_tx_mc:1; // bit 18 - u32 reset_rx_fun:1; // bit 17 - u32 reset_tx_fun:1; // bit 16 - u32 reserved2:7; // bits 9-15 - u32 loop_back:1; // bit 8 - u32 reserved1:2; // bits 6-7 - u32 rx_flow:1; // bit 5 - u32 tx_flow:1; // bit 4 - u32 syncd_rx_en:1; // bit 3 - u32 rx_enable:1; // bit 2 - u32 syncd_tx_en:1; // bit 1 - u32 tx_enable:1; // bit 0 -#else - u32 tx_enable:1; // bit 0 - u32 syncd_tx_en:1; // bit 1 - u32 rx_enable:1; // bit 2 - u32 syncd_rx_en:1; // bit 3 - u32 tx_flow:1; // bit 4 - u32 rx_flow:1; // bit 5 - u32 reserved1:2; // bits 6-7 - u32 loop_back:1; // bit 8 - u32 reserved2:7; // bits 9-15 - u32 reset_tx_fun:1; // bit 16 - u32 reset_rx_fun:1; // bit 17 - u32 reset_tx_mc:1; // bit 18 - u32 reset_rx_mc:1; // bit 19 - u32 reserved3:10; // bits 20-29 - u32 sim_reset:1; // bit 30 - u32 soft_reset:1; // bit 31 -#endif - } bits; -} MAC_CFG1_t, *PMAC_CFG1_t; - -/* - * structure for configuration #2 reg in mac address map. - * located at address 0x5004 - */ -typedef union _MAC_CFG2_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved3:16; // bits 16-31 - u32 preamble_len:4; // bits 12-15 - u32 reserved2:2; // bits 10-11 - u32 if_mode:2; // bits 8-9 - u32 reserved1:2; // bits 6-7 - u32 huge_frame:1; // bit 5 - u32 len_check:1; // bit 4 - u32 undefined:1; // bit 3 - u32 pad_crc:1; // bit 2 - u32 crc_enable:1; // bit 1 - u32 full_duplex:1; // bit 0 -#else - u32 full_duplex:1; // bit 0 - u32 crc_enable:1; // bit 1 - u32 pad_crc:1; // bit 2 - u32 undefined:1; // bit 3 - u32 len_check:1; // bit 4 - u32 huge_frame:1; // bit 5 - u32 reserved1:2; // bits 6-7 - u32 if_mode:2; // bits 8-9 - u32 reserved2:2; // bits 10-11 - u32 preamble_len:4; // bits 12-15 - u32 reserved3:16; // bits 16-31 -#endif - } bits; -} MAC_CFG2_t, *PMAC_CFG2_t; - -/* - * structure for Interpacket gap reg in mac address map. - * located at address 0x5008 - */ -typedef union _MAC_IPG_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:1; // bit 31 - u32 non_B2B_ipg_1:7; // bits 24-30 - u32 undefined2:1; // bit 23 - u32 non_B2B_ipg_2:7; // bits 16-22 - u32 min_ifg_enforce:8; // bits 8-15 - u32 undefined1:1; // bit 7 - u32 B2B_ipg:7; // bits 0-6 -#else - u32 B2B_ipg:7; // bits 0-6 - u32 undefined1:1; // bit 7 - u32 min_ifg_enforce:8; // bits 8-15 - u32 non_B2B_ipg_2:7; // bits 16-22 - u32 undefined2:1; // bit 23 - u32 non_B2B_ipg_1:7; // bits 24-30 - u32 reserved:1; // bit 31 -#endif - } bits; -} MAC_IPG_t, *PMAC_IPG_t; - -/* - * structure for half duplex reg in mac address map. - * located at address 0x500C - */ -typedef union _MAC_HFDP_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved2:8; // bits 24-31 - u32 alt_beb_trunc:4; // bits 23-20 - u32 alt_beb_enable:1; // bit 19 - u32 bp_no_backoff:1; // bit 18 - u32 no_backoff:1; // bit 17 - u32 excess_defer:1; // bit 16 - u32 rexmit_max:4; // bits 12-15 - u32 reserved1:2; // bits 10-11 - u32 coll_window:10; // bits 0-9 -#else - u32 coll_window:10; // bits 0-9 - u32 reserved1:2; // bits 10-11 - u32 rexmit_max:4; // bits 12-15 - u32 excess_defer:1; // bit 16 - u32 no_backoff:1; // bit 17 - u32 bp_no_backoff:1; // bit 18 - u32 alt_beb_enable:1; // bit 19 - u32 alt_beb_trunc:4; // bits 23-20 - u32 reserved2:8; // bits 24-31 -#endif - } bits; -} MAC_HFDP_t, *PMAC_HFDP_t; - -/* - * structure for Maximum Frame Length reg in mac address map. - * located at address 0x5010 - */ -typedef union _MAC_MAX_FM_LEN_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:16; // bits 16-31 - u32 max_len:16; // bits 0-15 -#else - u32 max_len:16; // bits 0-15 - u32 reserved:16; // bits 16-31 -#endif - } bits; -} MAC_MAX_FM_LEN_t, *PMAC_MAX_FM_LEN_t; - -/* - * structure for Reserve 1 reg in mac address map. - * located at address 0x5014 - 0x5018 - * Defined earlier (u32) - */ - -/* - * structure for Test reg in mac address map. - * located at address 0x501C - */ -typedef union _MAC_TEST_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:29; // bits 3-31 - u32 mac_test:3; // bits 0-2 -#else - u32 mac_test:3; // bits 0-2 - u32 unused:29; // bits 3-31 -#endif - } bits; -} MAC_TEST_t, *PMAC_TEST_t; - -/* - * structure for MII Management Configuration reg in mac address map. - * located at address 0x5020 - */ -typedef union _MII_MGMT_CFG_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reset_mii_mgmt:1; // bit 31 - u32 reserved:25; // bits 6-30 - u32 scan_auto_incremt:1; // bit 5 - u32 preamble_suppress:1; // bit 4 - u32 undefined:1; // bit 3 - u32 mgmt_clk_reset:3; // bits 0-2 -#else - u32 mgmt_clk_reset:3; // bits 0-2 - u32 undefined:1; // bit 3 - u32 preamble_suppress:1; // bit 4 - u32 scan_auto_incremt:1; // bit 5 - u32 reserved:25; // bits 6-30 - u32 reset_mii_mgmt:1; // bit 31 -#endif - } bits; -} MII_MGMT_CFG_t, *PMII_MGMT_CFG_t; - -/* - * structure for MII Management Command reg in mac address map. - * located at address 0x5024 - */ -typedef union _MII_MGMT_CMD_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:30; // bits 2-31 - u32 scan_cycle:1; // bit 1 - u32 read_cycle:1; // bit 0 -#else - u32 read_cycle:1; // bit 0 - u32 scan_cycle:1; // bit 1 - u32 reserved:30; // bits 2-31 -#endif - } bits; -} MII_MGMT_CMD_t, *PMII_MGMT_CMD_t; - -/* - * structure for MII Management Address reg in mac address map. - * located at address 0x5028 - */ -typedef union _MII_MGMT_ADDR_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved2:19; // bit 13-31 - u32 phy_addr:5; // bits 8-12 - u32 reserved1:3; // bits 5-7 - u32 reg_addr:5; // bits 0-4 -#else - u32 reg_addr:5; // bits 0-4 - u32 reserved1:3; // bits 5-7 - u32 phy_addr:5; // bits 8-12 - u32 reserved2:19; // bit 13-31 -#endif - } bits; -} MII_MGMT_ADDR_t, *PMII_MGMT_ADDR_t; - -/* - * structure for MII Management Control reg in mac address map. - * located at address 0x502C - */ -typedef union _MII_MGMT_CTRL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:16; // bits 16-31 - u32 phy_ctrl:16; // bits 0-15 -#else - u32 phy_ctrl:16; // bits 0-15 - u32 reserved:16; // bits 16-31 -#endif - } bits; -} MII_MGMT_CTRL_t, *PMII_MGMT_CTRL_t; - -/* - * structure for MII Management Status reg in mac address map. - * located at address 0x5030 - */ -typedef union _MII_MGMT_STAT_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:16; // bits 16-31 - u32 phy_stat:16; // bits 0-15 -#else - u32 phy_stat:16; // bits 0-15 - u32 reserved:16; // bits 16-31 -#endif - } bits; -} MII_MGMT_STAT_t, *PMII_MGMT_STAT_t; - -/* - * structure for MII Management Indicators reg in mac address map. - * located at address 0x5034 - */ -typedef union _MII_MGMT_INDICATOR_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:29; // bits 3-31 - u32 not_valid:1; // bit 2 - u32 scanning:1; // bit 1 - u32 busy:1; // bit 0 -#else - u32 busy:1; // bit 0 - u32 scanning:1; // bit 1 - u32 not_valid:1; // bit 2 - u32 reserved:29; // bits 3-31 -#endif - } bits; -} MII_MGMT_INDICATOR_t, *PMII_MGMT_INDICATOR_t; - -/* - * structure for Interface Control reg in mac address map. - * located at address 0x5038 - */ -typedef union _MAC_IF_CTRL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reset_if_module:1; // bit 31 - u32 reserved4:3; // bit 28-30 - u32 tbi_mode:1; // bit 27 - u32 ghd_mode:1; // bit 26 - u32 lhd_mode:1; // bit 25 - u32 phy_mode:1; // bit 24 - u32 reset_per_mii:1; // bit 23 - u32 reserved3:6; // bits 17-22 - u32 speed:1; // bit 16 - u32 reset_pe100x:1; // bit 15 - u32 reserved2:4; // bits 11-14 - u32 force_quiet:1; // bit 10 - u32 no_cipher:1; // bit 9 - u32 disable_link_fail:1; // bit 8 - u32 reset_gpsi:1; // bit 7 - u32 reserved1:6; // bits 1-6 - u32 enab_jab_protect:1; // bit 0 -#else - u32 enab_jab_protect:1; // bit 0 - u32 reserved1:6; // bits 1-6 - u32 reset_gpsi:1; // bit 7 - u32 disable_link_fail:1; // bit 8 - u32 no_cipher:1; // bit 9 - u32 force_quiet:1; // bit 10 - u32 reserved2:4; // bits 11-14 - u32 reset_pe100x:1; // bit 15 - u32 speed:1; // bit 16 - u32 reserved3:6; // bits 17-22 - u32 reset_per_mii:1; // bit 23 - u32 phy_mode:1; // bit 24 - u32 lhd_mode:1; // bit 25 - u32 ghd_mode:1; // bit 26 - u32 tbi_mode:1; // bit 27 - u32 reserved4:3; // bit 28-30 - u32 reset_if_module:1; // bit 31 -#endif - } bits; -} MAC_IF_CTRL_t, *PMAC_IF_CTRL_t; - -/* - * structure for Interface Status reg in mac address map. - * located at address 0x503C - */ -typedef union _MAC_IF_STAT_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:22; // bits 10-31 - u32 excess_defer:1; // bit 9 - u32 clash:1; // bit 8 - u32 phy_jabber:1; // bit 7 - u32 phy_link_ok:1; // bit 6 - u32 phy_full_duplex:1; // bit 5 - u32 phy_speed:1; // bit 4 - u32 pe100x_link_fail:1; // bit 3 - u32 pe10t_loss_carrie:1; // bit 2 - u32 pe10t_sqe_error:1; // bit 1 - u32 pe10t_jabber:1; // bit 0 -#else - u32 pe10t_jabber:1; // bit 0 - u32 pe10t_sqe_error:1; // bit 1 - u32 pe10t_loss_carrie:1; // bit 2 - u32 pe100x_link_fail:1; // bit 3 - u32 phy_speed:1; // bit 4 - u32 phy_full_duplex:1; // bit 5 - u32 phy_link_ok:1; // bit 6 - u32 phy_jabber:1; // bit 7 - u32 clash:1; // bit 8 - u32 excess_defer:1; // bit 9 - u32 reserved:22; // bits 10-31 -#endif - } bits; -} MAC_IF_STAT_t, *PMAC_IF_STAT_t; - -/* - * structure for Mac Station Address, Part 1 reg in mac address map. - * located at address 0x5040 - */ -typedef union _MAC_STATION_ADDR1_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 Octet6:8; // bits 24-31 - u32 Octet5:8; // bits 16-23 - u32 Octet4:8; // bits 8-15 - u32 Octet3:8; // bits 0-7 -#else - u32 Octet3:8; // bits 0-7 - u32 Octet4:8; // bits 8-15 - u32 Octet5:8; // bits 16-23 - u32 Octet6:8; // bits 24-31 -#endif - } bits; -} MAC_STATION_ADDR1_t, *PMAC_STATION_ADDR1_t; - -/* - * structure for Mac Station Address, Part 2 reg in mac address map. - * located at address 0x5044 - */ -typedef union _MAC_STATION_ADDR2_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 Octet2:8; // bits 24-31 - u32 Octet1:8; // bits 16-23 - u32 reserved:16; // bits 0-15 -#else - u32 reserved:16; // bit 0-15 - u32 Octet1:8; // bits 16-23 - u32 Octet2:8; // bits 24-31 -#endif - } bits; -} MAC_STATION_ADDR2_t, *PMAC_STATION_ADDR2_t; - -/* - * MAC Module of JAGCore Address Mapping - */ -typedef struct _MAC_t { // Location: - MAC_CFG1_t cfg1; // 0x5000 - MAC_CFG2_t cfg2; // 0x5004 - MAC_IPG_t ipg; // 0x5008 - MAC_HFDP_t hfdp; // 0x500C - MAC_MAX_FM_LEN_t max_fm_len; // 0x5010 - u32 rsv1; // 0x5014 - u32 rsv2; // 0x5018 - MAC_TEST_t mac_test; // 0x501C - MII_MGMT_CFG_t mii_mgmt_cfg; // 0x5020 - MII_MGMT_CMD_t mii_mgmt_cmd; // 0x5024 - MII_MGMT_ADDR_t mii_mgmt_addr; // 0x5028 - MII_MGMT_CTRL_t mii_mgmt_ctrl; // 0x502C - MII_MGMT_STAT_t mii_mgmt_stat; // 0x5030 - MII_MGMT_INDICATOR_t mii_mgmt_indicator; // 0x5034 - MAC_IF_CTRL_t if_ctrl; // 0x5038 - MAC_IF_STAT_t if_stat; // 0x503C - MAC_STATION_ADDR1_t station_addr_1; // 0x5040 - MAC_STATION_ADDR2_t station_addr_2; // 0x5044 -} MAC_t, *PMAC_t; - -/* END OF MAC REGISTER ADDRESS MAP */ - -/* START OF MAC STAT REGISTER ADDRESS MAP */ - -/* - * structure for Carry Register One and it's Mask Register reg located in mac - * stat address map address 0x6130 and 0x6138. - */ -typedef union _MAC_STAT_REG_1_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 tr64:1; // bit 31 - u32 tr127:1; // bit 30 - u32 tr255:1; // bit 29 - u32 tr511:1; // bit 28 - u32 tr1k:1; // bit 27 - u32 trmax:1; // bit 26 - u32 trmgv:1; // bit 25 - u32 unused:8; // bits 17-24 - u32 rbyt:1; // bit 16 - u32 rpkt:1; // bit 15 - u32 rfcs:1; // bit 14 - u32 rmca:1; // bit 13 - u32 rbca:1; // bit 12 - u32 rxcf:1; // bit 11 - u32 rxpf:1; // bit 10 - u32 rxuo:1; // bit 9 - u32 raln:1; // bit 8 - u32 rflr:1; // bit 7 - u32 rcde:1; // bit 6 - u32 rcse:1; // bit 5 - u32 rund:1; // bit 4 - u32 rovr:1; // bit 3 - u32 rfrg:1; // bit 2 - u32 rjbr:1; // bit 1 - u32 rdrp:1; // bit 0 -#else - u32 rdrp:1; // bit 0 - u32 rjbr:1; // bit 1 - u32 rfrg:1; // bit 2 - u32 rovr:1; // bit 3 - u32 rund:1; // bit 4 - u32 rcse:1; // bit 5 - u32 rcde:1; // bit 6 - u32 rflr:1; // bit 7 - u32 raln:1; // bit 8 - u32 rxuo:1; // bit 9 - u32 rxpf:1; // bit 10 - u32 rxcf:1; // bit 11 - u32 rbca:1; // bit 12 - u32 rmca:1; // bit 13 - u32 rfcs:1; // bit 14 - u32 rpkt:1; // bit 15 - u32 rbyt:1; // bit 16 - u32 unused:8; // bits 17-24 - u32 trmgv:1; // bit 25 - u32 trmax:1; // bit 26 - u32 tr1k:1; // bit 27 - u32 tr511:1; // bit 28 - u32 tr255:1; // bit 29 - u32 tr127:1; // bit 30 - u32 tr64:1; // bit 31 -#endif - } bits; -} MAC_STAT_REG_1_t, *PMAC_STAT_REG_1_t; - -/* - * structure for Carry Register Two Mask Register reg in mac stat address map. - * located at address 0x613C - */ -typedef union _MAC_STAT_REG_2_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:12; // bit 20-31 - u32 tjbr:1; // bit 19 - u32 tfcs:1; // bit 18 - u32 txcf:1; // bit 17 - u32 tovr:1; // bit 16 - u32 tund:1; // bit 15 - u32 tfrg:1; // bit 14 - u32 tbyt:1; // bit 13 - u32 tpkt:1; // bit 12 - u32 tmca:1; // bit 11 - u32 tbca:1; // bit 10 - u32 txpf:1; // bit 9 - u32 tdfr:1; // bit 8 - u32 tedf:1; // bit 7 - u32 tscl:1; // bit 6 - u32 tmcl:1; // bit 5 - u32 tlcl:1; // bit 4 - u32 txcl:1; // bit 3 - u32 tncl:1; // bit 2 - u32 tpfh:1; // bit 1 - u32 tdrp:1; // bit 0 -#else - u32 tdrp:1; // bit 0 - u32 tpfh:1; // bit 1 - u32 tncl:1; // bit 2 - u32 txcl:1; // bit 3 - u32 tlcl:1; // bit 4 - u32 tmcl:1; // bit 5 - u32 tscl:1; // bit 6 - u32 tedf:1; // bit 7 - u32 tdfr:1; // bit 8 - u32 txpf:1; // bit 9 - u32 tbca:1; // bit 10 - u32 tmca:1; // bit 11 - u32 tpkt:1; // bit 12 - u32 tbyt:1; // bit 13 - u32 tfrg:1; // bit 14 - u32 tund:1; // bit 15 - u32 tovr:1; // bit 16 - u32 txcf:1; // bit 17 - u32 tfcs:1; // bit 18 - u32 tjbr:1; // bit 19 - u32 unused:12; // bit 20-31 -#endif - } bits; -} MAC_STAT_REG_2_t, *PMAC_STAT_REG_2_t; - -/* - * MAC STATS Module of JAGCore Address Mapping - */ -typedef struct _MAC_STAT_t { // Location: - u32 pad[32]; // 0x6000 - 607C - - // Tx/Rx 0-64 Byte Frame Counter - u32 TR64; // 0x6080 - - // Tx/Rx 65-127 Byte Frame Counter - u32 TR127; // 0x6084 - - // Tx/Rx 128-255 Byte Frame Counter - u32 TR255; // 0x6088 - - // Tx/Rx 256-511 Byte Frame Counter - u32 TR511; // 0x608C - - // Tx/Rx 512-1023 Byte Frame Counter - u32 TR1K; // 0x6090 - - // Tx/Rx 1024-1518 Byte Frame Counter - u32 TRMax; // 0x6094 - - // Tx/Rx 1519-1522 Byte Good VLAN Frame Count - u32 TRMgv; // 0x6098 - - // Rx Byte Counter - u32 RByt; // 0x609C - - // Rx Packet Counter - u32 RPkt; // 0x60A0 - - // Rx FCS Error Counter - u32 RFcs; // 0x60A4 - - // Rx Multicast Packet Counter - u32 RMca; // 0x60A8 - - // Rx Broadcast Packet Counter - u32 RBca; // 0x60AC - - // Rx Control Frame Packet Counter - u32 RxCf; // 0x60B0 - - // Rx Pause Frame Packet Counter - u32 RxPf; // 0x60B4 - - // Rx Unknown OP Code Counter - u32 RxUo; // 0x60B8 - - // Rx Alignment Error Counter - u32 RAln; // 0x60BC - - // Rx Frame Length Error Counter - u32 RFlr; // 0x60C0 - - // Rx Code Error Counter - u32 RCde; // 0x60C4 - - // Rx Carrier Sense Error Counter - u32 RCse; // 0x60C8 - - // Rx Undersize Packet Counter - u32 RUnd; // 0x60CC - - // Rx Oversize Packet Counter - u32 ROvr; // 0x60D0 - - // Rx Fragment Counter - u32 RFrg; // 0x60D4 - - // Rx Jabber Counter - u32 RJbr; // 0x60D8 - - // Rx Drop - u32 RDrp; // 0x60DC - - // Tx Byte Counter - u32 TByt; // 0x60E0 - - // Tx Packet Counter - u32 TPkt; // 0x60E4 - - // Tx Multicast Packet Counter - u32 TMca; // 0x60E8 - - // Tx Broadcast Packet Counter - u32 TBca; // 0x60EC - - // Tx Pause Control Frame Counter - u32 TxPf; // 0x60F0 - - // Tx Deferral Packet Counter - u32 TDfr; // 0x60F4 - - // Tx Excessive Deferral Packet Counter - u32 TEdf; // 0x60F8 - - // Tx Single Collision Packet Counter - u32 TScl; // 0x60FC - - // Tx Multiple Collision Packet Counter - u32 TMcl; // 0x6100 - - // Tx Late Collision Packet Counter - u32 TLcl; // 0x6104 - - // Tx Excessive Collision Packet Counter - u32 TXcl; // 0x6108 - - // Tx Total Collision Packet Counter - u32 TNcl; // 0x610C - - // Tx Pause Frame Honored Counter - u32 TPfh; // 0x6110 - - // Tx Drop Frame Counter - u32 TDrp; // 0x6114 - - // Tx Jabber Frame Counter - u32 TJbr; // 0x6118 - - // Tx FCS Error Counter - u32 TFcs; // 0x611C - - // Tx Control Frame Counter - u32 TxCf; // 0x6120 - - // Tx Oversize Frame Counter - u32 TOvr; // 0x6124 - - // Tx Undersize Frame Counter - u32 TUnd; // 0x6128 - - // Tx Fragments Frame Counter - u32 TFrg; // 0x612C - - // Carry Register One Register - MAC_STAT_REG_1_t Carry1; // 0x6130 - - // Carry Register Two Register - MAC_STAT_REG_2_t Carry2; // 0x6134 - - // Carry Register One Mask Register - MAC_STAT_REG_1_t Carry1M; // 0x6138 - - // Carry Register Two Mask Register - MAC_STAT_REG_2_t Carry2M; // 0x613C -} MAC_STAT_t, *PMAC_STAT_t; - -/* END OF MAC STAT REGISTER ADDRESS MAP */ - - -/* START OF MMC REGISTER ADDRESS MAP */ - -/* - * structure for Main Memory Controller Control reg in mmc address map. - * located at address 0x7000 - */ -typedef union _MMC_CTRL_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:25; // bits 7-31 - u32 force_ce:1; // bit 6 - u32 rxdma_disable:1; // bit 5 - u32 txdma_disable:1; // bit 4 - u32 txmac_disable:1; // bit 3 - u32 rxmac_disable:1; // bit 2 - u32 arb_disable:1; // bit 1 - u32 mmc_enable:1; // bit 0 -#else - u32 mmc_enable:1; // bit 0 - u32 arb_disable:1; // bit 1 - u32 rxmac_disable:1; // bit 2 - u32 txmac_disable:1; // bit 3 - u32 txdma_disable:1; // bit 4 - u32 rxdma_disable:1; // bit 5 - u32 force_ce:1; // bit 6 - u32 reserved:25; // bits 7-31 -#endif - } bits; -} MMC_CTRL_t, *PMMC_CTRL_t; - -/* - * structure for Main Memory Controller Host Memory Access Address reg in mmc - * address map. Located at address 0x7004 - */ -typedef union _MMC_SRAM_ACCESS_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 byte_enable:16; // bits 16-31 - u32 reserved2:2; // bits 14-15 - u32 req_addr:10; // bits 4-13 - u32 reserved1:1; // bit 3 - u32 is_ctrl_word:1; // bit 2 - u32 wr_access:1; // bit 1 - u32 req_access:1; // bit 0 -#else - u32 req_access:1; // bit 0 - u32 wr_access:1; // bit 1 - u32 is_ctrl_word:1; // bit 2 - u32 reserved1:1; // bit 3 - u32 req_addr:10; // bits 4-13 - u32 reserved2:2; // bits 14-15 - u32 byte_enable:16; // bits 16-31 -#endif - } bits; -} MMC_SRAM_ACCESS_t, *PMMC_SRAM_ACCESS_t; - -/* - * structure for Main Memory Controller Host Memory Access Data reg in mmc - * address map. Located at address 0x7008 - 0x7014 - * Defined earlier (u32) - */ - -/* - * Memory Control Module of JAGCore Address Mapping - */ -typedef struct _MMC_t { // Location: - MMC_CTRL_t mmc_ctrl; // 0x7000 - MMC_SRAM_ACCESS_t sram_access; // 0x7004 - u32 sram_word1; // 0x7008 - u32 sram_word2; // 0x700C - u32 sram_word3; // 0x7010 - u32 sram_word4; // 0x7014 -} MMC_t, *PMMC_t; - -/* END OF MMC REGISTER ADDRESS MAP */ - - -/* START OF EXP ROM REGISTER ADDRESS MAP */ - -/* - * Expansion ROM Module of JAGCore Address Mapping - */ - -/* Take this out until it is not empty */ -#if 0 -typedef struct _EXP_ROM_t { - -} EXP_ROM_t, *PEXP_ROM_t; -#endif - -/* END OF EXP ROM REGISTER ADDRESS MAP */ - - -/* - * JAGCore Address Mapping - */ -typedef struct _ADDRESS_MAP_t { - GLOBAL_t global; - // unused section of global address map - u8 unused_global[4096 - sizeof(GLOBAL_t)]; - TXDMA_t txdma; - // unused section of txdma address map - u8 unused_txdma[4096 - sizeof(TXDMA_t)]; - RXDMA_t rxdma; - // unused section of rxdma address map - u8 unused_rxdma[4096 - sizeof(RXDMA_t)]; - TXMAC_t txmac; - // unused section of txmac address map - u8 unused_txmac[4096 - sizeof(TXMAC_t)]; - RXMAC_t rxmac; - // unused section of rxmac address map - u8 unused_rxmac[4096 - sizeof(RXMAC_t)]; - MAC_t mac; - // unused section of mac address map - u8 unused_mac[4096 - sizeof(MAC_t)]; - MAC_STAT_t macStat; - // unused section of mac stat address map - u8 unused_mac_stat[4096 - sizeof(MAC_STAT_t)]; - MMC_t mmc; - // unused section of mmc address map - u8 unused_mmc[4096 - sizeof(MMC_t)]; - // unused section of address map - u8 unused_[1015808]; - -/* Take this out until it is not empty */ -#if 0 - EXP_ROM_t exp_rom; -#endif - - u8 unused_exp_rom[4096]; // MGS-size TBD - u8 unused__[524288]; // unused section of address map -} ADDRESS_MAP_t, *PADDRESS_MAP_t; - -#endif /* _ET1310_ADDRESS_MAP_H_ */ diff --git a/src/et131x/et1310_eeprom.c b/src/et131x/et1310_eeprom.c deleted file mode 100644 index c2b194e..0000000 --- a/src/et131x/et1310_eeprom.c +++ /dev/null @@ -1,480 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_eeprom.c - Code used to access the device's EEPROM - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/pci.h> -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" -#include "et1310_eeprom.h" - -#include "et131x_adapter.h" -#include "et131x_initpci.h" -#include "et131x_isr.h" - -#include "et1310_tx.h" - - -/* - * EEPROM Defines - */ - -/* LBCIF Register Groups (addressed via 32-bit offsets) */ -#define LBCIF_DWORD0_GROUP_OFFSET 0xAC -#define LBCIF_DWORD1_GROUP_OFFSET 0xB0 - -/* LBCIF Registers (addressed via 8-bit offsets) */ -#define LBCIF_ADDRESS_REGISTER_OFFSET 0xAC -#define LBCIF_DATA_REGISTER_OFFSET 0xB0 -#define LBCIF_CONTROL_REGISTER_OFFSET 0xB1 -#define LBCIF_STATUS_REGISTER_OFFSET 0xB2 - -/* LBCIF Control Register Bits */ -#define LBCIF_CONTROL_SEQUENTIAL_READ 0x01 -#define LBCIF_CONTROL_PAGE_WRITE 0x02 -#define LBCIF_CONTROL_UNUSED1 0x04 -#define LBCIF_CONTROL_EEPROM_RELOAD 0x08 -#define LBCIF_CONTROL_UNUSED2 0x10 -#define LBCIF_CONTROL_TWO_BYTE_ADDR 0x20 -#define LBCIF_CONTROL_I2C_WRITE 0x40 -#define LBCIF_CONTROL_LBCIF_ENABLE 0x80 - -/* LBCIF Status Register Bits */ -#define LBCIF_STATUS_PHY_QUEUE_AVAIL 0x01 -#define LBCIF_STATUS_I2C_IDLE 0x02 -#define LBCIF_STATUS_ACK_ERROR 0x04 -#define LBCIF_STATUS_GENERAL_ERROR 0x08 -#define LBCIF_STATUS_UNUSED 0x30 -#define LBCIF_STATUS_CHECKSUM_ERROR 0x40 -#define LBCIF_STATUS_EEPROM_PRESENT 0x80 - -/* Miscellaneous Constraints */ -#define MAX_NUM_REGISTER_POLLS 1000 -#define MAX_NUM_WRITE_RETRIES 2 - -/* - * Define macros that allow individual register values to be extracted from a - * DWORD1 register grouping - */ -#define EXTRACT_DATA_REGISTER(x) (uint8_t)(x & 0xFF) -#define EXTRACT_STATUS_REGISTER(x) (uint8_t)((x >> 16) & 0xFF) -#define EXTRACT_CONTROL_REG(x) (uint8_t)((x >> 8) & 0xFF) - -/** - * EepromWriteByte - Write a byte to the ET1310's EEPROM - * @pAdapter: pointer to our private adapter structure - * @unAddress: the address to write - * @bData: the value to write - * @unEepronId: the ID of the EEPROM - * @unAddressingMode: how the EEPROM is to be accessed - * - * Returns SUCCESS or FAILURE - */ -int32_t EepromWriteByte(struct et131x_adapter *pAdapter, uint32_t unAddress, - uint8_t bData, uint32_t unEepromId, - uint32_t unAddressingMode) -{ - struct pci_dev *pdev = pAdapter->pdev; - int32_t nIndex; - int32_t nRetries; - int32_t nError = false; - int32_t nI2CWriteActive = 0; - int32_t nWriteSuccessful = 0; - uint8_t bControl; - uint8_t bStatus = 0; - uint32_t unDword1 = 0; - uint32_t unData = 0; - - /* - * The following excerpt is from "Serial EEPROM HW Design - * Specification" Version 0.92 (9/20/2004): - * - * Single Byte Writes - * - * For an EEPROM, an I2C single byte write is defined as a START - * condition followed by the device address, EEPROM address, one byte - * of data and a STOP condition. The STOP condition will trigger the - * EEPROM's internally timed write cycle to the nonvolatile memory. - * All inputs are disabled during this write cycle and the EEPROM will - * not respond to any access until the internal write is complete. - * The steps to execute a single byte write are as follows: - * - * 1. Check LBCIF Status Register for bits 6 & 3:2 all equal to 0 and - * bits 7,1:0 both equal to 1, at least once after reset. - * Subsequent operations need only to check that bits 1:0 are - * equal to 1 prior to starting a single byte write. - * - * 2. Write to the LBCIF Control Register: bit 7=1, bit 6=1, bit 3=0, - * and bits 1:0 both =0. Bit 5 should be set according to the - * type of EEPROM being accessed (1=two byte addressing, 0=one - * byte addressing). - * - * 3. Write the address to the LBCIF Address Register. - * - * 4. Write the data to the LBCIF Data Register (the I2C write will - * begin). - * - * 5. Monitor bit 1:0 of the LBCIF Status Register. When bits 1:0 are - * both equal to 1, the I2C write has completed and the internal - * write cycle of the EEPROM is about to start. (bits 1:0 = 01 is - * a legal state while waiting from both equal to 1, but bits - * 1:0 = 10 is invalid and implies that something is broken). - * - * 6. Check bit 3 of the LBCIF Status Register. If equal to 1, an - * error has occurred. - * - * 7. Check bit 2 of the LBCIF Status Register. If equal to 1 an ACK - * error has occurred on the address phase of the write. This - * could be due to an actual hardware failure or the EEPROM may - * still be in its internal write cycle from a previous write. - * This write operation was ignored and must be repeated later. - * - * 8. Set bit 6 of the LBCIF Control Register = 0. If another write is - * required, go to step 1. - */ - - /* Step 1: */ - for (nIndex = 0; nIndex < MAX_NUM_REGISTER_POLLS; nIndex++) { - /* Read registers grouped in DWORD1 */ - if (pci_read_config_dword(pdev, LBCIF_DWORD1_GROUP_OFFSET, - &unDword1)) { - nError = 1; - break; - } - - bStatus = EXTRACT_STATUS_REGISTER(unDword1); - - if (bStatus & LBCIF_STATUS_PHY_QUEUE_AVAIL && - bStatus & LBCIF_STATUS_I2C_IDLE) { - /* bits 1:0 are equal to 1 */ - break; - } - } - - if (nError || (nIndex >= MAX_NUM_REGISTER_POLLS)) { - return FAILURE; - } - - /* Step 2: */ - bControl = 0; - bControl |= LBCIF_CONTROL_LBCIF_ENABLE | LBCIF_CONTROL_I2C_WRITE; - - if (unAddressingMode == DUAL_BYTE) { - bControl |= LBCIF_CONTROL_TWO_BYTE_ADDR; - } - - if (pci_write_config_byte(pdev, LBCIF_CONTROL_REGISTER_OFFSET, - bControl)) { - return FAILURE; - } - - nI2CWriteActive = 1; - - /* Prepare EEPROM address for Step 3 */ - unAddress |= (unAddressingMode == DUAL_BYTE) ? - (unEepromId << 16) : (unEepromId << 8); - - for (nRetries = 0; nRetries < MAX_NUM_WRITE_RETRIES; nRetries++) { - /* Step 3:*/ - if (pci_write_config_dword(pdev, LBCIF_ADDRESS_REGISTER_OFFSET, - unAddress)) { - break; - } - - /* Step 4: */ - if (pci_write_config_byte(pdev, LBCIF_DATA_REGISTER_OFFSET, - bData)) { - break; - } - - /* Step 5: */ - for (nIndex = 0; nIndex < MAX_NUM_REGISTER_POLLS; nIndex++) { - /* Read registers grouped in DWORD1 */ - if (pci_read_config_dword(pdev, - LBCIF_DWORD1_GROUP_OFFSET, - &unDword1)) { - nError = 1; - break; - } - - bStatus = EXTRACT_STATUS_REGISTER(unDword1); - - if (bStatus & LBCIF_STATUS_PHY_QUEUE_AVAIL && - bStatus & LBCIF_STATUS_I2C_IDLE) { - /* I2C write complete */ - break; - } - } - - if (nError || (nIndex >= MAX_NUM_REGISTER_POLLS)) { - break; - } - - /* - * Step 6: Don't break here if we are revision 1, this is - * so we do a blind write for load bug. - */ - if (bStatus & LBCIF_STATUS_GENERAL_ERROR - && pAdapter->RevisionID == 0) { - break; - } - - /* Step 7 */ - if (bStatus & LBCIF_STATUS_ACK_ERROR) { - /* - * This could be due to an actual hardware failure - * or the EEPROM may still be in its internal write - * cycle from a previous write. This write operation - * was ignored and must be repeated later. - */ - udelay(10); - continue; - } - - nWriteSuccessful = 1; - break; - } - - /* Step 8: */ - udelay(10); - nIndex = 0; - while (nI2CWriteActive) { - bControl &= ~LBCIF_CONTROL_I2C_WRITE; - - if (pci_write_config_byte(pdev, LBCIF_CONTROL_REGISTER_OFFSET, - bControl)) { - nWriteSuccessful = 0; - } - - /* Do read until internal ACK_ERROR goes away meaning write - * completed - */ - do { - pci_write_config_dword(pdev, - LBCIF_ADDRESS_REGISTER_OFFSET, - unAddress); - do { - pci_read_config_dword(pdev, - LBCIF_DATA_REGISTER_OFFSET, &unData); - } while ((unData & 0x00010000) == 0); - } while (unData & 0x00040000); - - bControl = EXTRACT_CONTROL_REG(unData); - - if (bControl != 0xC0 || nIndex == 10000) { - break; - } - - nIndex++; - } - - return nWriteSuccessful ? SUCCESS : FAILURE; -} - -/** - * EepromReadByte - Read a byte from the ET1310's EEPROM - * @pAdapter: pointer to our private adapter structure - * @unAddress: the address from which to read - * @pbData: a pointer to a byte in which to store the value of the read - * @unEepronId: the ID of the EEPROM - * @unAddressingMode: how the EEPROM is to be accessed - * - * Returns SUCCESS or FAILURE - */ -int32_t EepromReadByte(struct et131x_adapter *pAdapter, uint32_t unAddress, - uint8_t *pbData, uint32_t unEepromId, - uint32_t unAddressingMode) -{ - struct pci_dev *pdev = pAdapter->pdev; - int32_t nIndex; - int32_t nError = 0; - uint8_t bControl; - uint8_t bStatus = 0; - uint32_t unDword1 = 0; - - /* - * The following excerpt is from "Serial EEPROM HW Design - * Specification" Version 0.92 (9/20/2004): - * - * Single Byte Reads - * - * A single byte read is similar to the single byte write, with the - * exception of the data flow: - * - * 1. Check LBCIF Status Register for bits 6 & 3:2 all equal to 0 and - * bits 7,1:0 both equal to 1, at least once after reset. - * Subsequent operations need only to check that bits 1:0 are equal - * to 1 prior to starting a single byte read. - * - * 2. Write to the LBCIF Control Register: bit 7=1, bit 6=0, bit 3=0, - * and bits 1:0 both =0. Bit 5 should be set according to the type - * of EEPROM being accessed (1=two byte addressing, 0=one byte - * addressing). - * - * 3. Write the address to the LBCIF Address Register (I2C read will - * begin). - * - * 4. Monitor bit 0 of the LBCIF Status Register. When =1, I2C read - * is complete. (if bit 1 =1 and bit 0 stays =0, a hardware failure - * has occurred). - * - * 5. Check bit 2 of the LBCIF Status Register. If =1, then an error - * has occurred. The data that has been returned from the PHY may - * be invalid. - * - * 6. Regardless of error status, read data byte from LBCIF Data - * Register. If another byte is required, go to step 1. - */ - - /* Step 1: */ - for (nIndex = 0; nIndex < MAX_NUM_REGISTER_POLLS; nIndex++) { - /* Read registers grouped in DWORD1 */ - if (pci_read_config_dword(pdev, LBCIF_DWORD1_GROUP_OFFSET, - &unDword1)) { - nError = 1; - break; - } - - bStatus = EXTRACT_STATUS_REGISTER(unDword1); - - if (bStatus & LBCIF_STATUS_PHY_QUEUE_AVAIL && - bStatus & LBCIF_STATUS_I2C_IDLE) { - /* bits 1:0 are equal to 1 */ - break; - } - } - - if (nError || (nIndex >= MAX_NUM_REGISTER_POLLS)) { - return FAILURE; - } - - /* Step 2: */ - bControl = 0; - bControl |= LBCIF_CONTROL_LBCIF_ENABLE; - - if (unAddressingMode == DUAL_BYTE) { - bControl |= LBCIF_CONTROL_TWO_BYTE_ADDR; - } - - if (pci_write_config_byte(pdev, LBCIF_CONTROL_REGISTER_OFFSET, - bControl)) { - return FAILURE; - } - - /* Step 3: */ - unAddress |= (unAddressingMode == DUAL_BYTE) ? - (unEepromId << 16) : (unEepromId << 8); - - if (pci_write_config_dword(pdev, LBCIF_ADDRESS_REGISTER_OFFSET, - unAddress)) { - return FAILURE; - } - - /* Step 4: */ - for (nIndex = 0; nIndex < MAX_NUM_REGISTER_POLLS; nIndex++) { - /* Read registers grouped in DWORD1 */ - if (pci_read_config_dword(pdev, LBCIF_DWORD1_GROUP_OFFSET, - &unDword1)) { - nError = 1; - break; - } - - bStatus = EXTRACT_STATUS_REGISTER(unDword1); - - if (bStatus & LBCIF_STATUS_PHY_QUEUE_AVAIL - && bStatus & LBCIF_STATUS_I2C_IDLE) { - /* I2C read complete */ - break; - } - } - - if (nError || (nIndex >= MAX_NUM_REGISTER_POLLS)) { - return FAILURE; - } - - /* Step 6: */ - *pbData = EXTRACT_DATA_REGISTER(unDword1); - - return (bStatus & LBCIF_STATUS_ACK_ERROR) ? FAILURE : SUCCESS; -} diff --git a/src/et131x/et1310_eeprom.h b/src/et131x/et1310_eeprom.h deleted file mode 100644 index 9b6f8ad..0000000 --- a/src/et131x/et1310_eeprom.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_eeprom.h - Defines, structs, enums, prototypes, etc. used for EEPROM - * access routines - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET1310_EEPROM_H__ -#define __ET1310_EEPROM_H__ - -#include "et1310_address_map.h" - -#ifndef SUCCESS -#define SUCCESS 0 -#define FAILURE 1 -#endif - -#ifndef READ -#define READ 0 -#define WRITE 1 -#endif - -#ifndef SINGLE_BYTE -#define SINGLE_BYTE 0 -#define DUAL_BYTE 1 -#endif - -/* Forward declaration of the private adapter structure */ -struct et131x_adapter; - -int32_t EepromWriteByte(struct et131x_adapter *adapter, u32 unAddress, - u8 bData, u32 unEepromId, - u32 unAddressingMode); -int32_t EepromReadByte(struct et131x_adapter *adapter, u32 unAddress, - u8 *pbData, u32 unEepromId, - u32 unAddressingMode); - -#endif /* _ET1310_EEPROM_H_ */ diff --git a/src/et131x/et1310_jagcore.c b/src/et131x/et1310_jagcore.c deleted file mode 100644 index 993b30e..0000000 --- a/src/et131x/et1310_jagcore.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_jagcore.c - All code pertaining to the ET1301/ET131x's JAGcore - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" - -#include "et131x_adapter.h" -#include "et131x_initpci.h" - -/* Data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -extern dbg_info_t *et131x_dbginfo; -#endif /* CONFIG_ET131X_DEBUG */ - -/** - * ConfigGlobalRegs - Used to configure the global registers on the JAGCore - * @pAdpater: pointer to our adapter structure - */ -void ConfigGlobalRegs(struct et131x_adapter *pAdapter) -{ - struct _GLOBAL_t __iomem *pGbl = &pAdapter->CSRAddress->global; - - DBG_ENTER(et131x_dbginfo); - - if (pAdapter->RegistryPhyLoopbk == false) { - if (pAdapter->RegistryJumboPacket < 2048) { - /* Tx / RxDMA and Tx/Rx MAC interfaces have a 1k word - * block of RAM that the driver can split between Tx - * and Rx as it desires. Our default is to split it - * 50/50: - */ - writel(0, &pGbl->rxq_start_addr.value); - writel(pAdapter->RegistryRxMemEnd, - &pGbl->rxq_end_addr.value); - writel(pAdapter->RegistryRxMemEnd + 1, - &pGbl->txq_start_addr.value); - writel(INTERNAL_MEM_SIZE - 1, - &pGbl->txq_end_addr.value); - } else if (pAdapter->RegistryJumboPacket < 8192) { - /* For jumbo packets > 2k but < 8k, split 50-50. */ - writel(0, &pGbl->rxq_start_addr.value); - writel(INTERNAL_MEM_RX_OFFSET, - &pGbl->rxq_end_addr.value); - writel(INTERNAL_MEM_RX_OFFSET + 1, - &pGbl->txq_start_addr.value); - writel(INTERNAL_MEM_SIZE - 1, - &pGbl->txq_end_addr.value); - } else { - /* 9216 is the only packet size greater than 8k that - * is available. The Tx buffer has to be big enough - * for one whole packet on the Tx side. We'll make - * the Tx 9408, and give the rest to Rx - */ - writel(0x0000, &pGbl->rxq_start_addr.value); - writel(0x01b3, &pGbl->rxq_end_addr.value); - writel(0x01b4, &pGbl->txq_start_addr.value); - writel(INTERNAL_MEM_SIZE - 1, - &pGbl->txq_end_addr.value); - } - - /* Initialize the loopback register. Disable all loopbacks. */ - writel(0, &pGbl->loopback.value); - } else { - /* For PHY Line loopback, the memory is configured as if Tx - * and Rx both have all the memory. This is because the - * RxMAC will write data into the space, and the TxMAC will - * read it out. - */ - writel(0, &pGbl->rxq_start_addr.value); - writel(INTERNAL_MEM_SIZE - 1, &pGbl->rxq_end_addr.value); - writel(0, &pGbl->txq_start_addr.value); - writel(INTERNAL_MEM_SIZE - 1, &pGbl->txq_end_addr.value); - - /* Initialize the loopback register (MAC loopback). */ - writel(1, &pGbl->loopback.value); - } - - /* MSI Register */ - writel(0, &pGbl->msi_config.value); - - /* By default, disable the watchdog timer. It will be enabled when - * a packet is queued. - */ - writel(0, &pGbl->watchdog_timer); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * ConfigMMCRegs - Used to configure the main memory registers in the JAGCore - * @pAdapter: pointer to our adapter structure - */ -void ConfigMMCRegs(struct et131x_adapter *pAdapter) -{ - MMC_CTRL_t mmc_ctrl = { 0 }; - - DBG_ENTER(et131x_dbginfo); - - /* All we need to do is initialize the Memory Control Register */ - mmc_ctrl.bits.force_ce = 0x0; - mmc_ctrl.bits.rxdma_disable = 0x0; - mmc_ctrl.bits.txdma_disable = 0x0; - mmc_ctrl.bits.txmac_disable = 0x0; - mmc_ctrl.bits.rxmac_disable = 0x0; - mmc_ctrl.bits.arb_disable = 0x0; - mmc_ctrl.bits.mmc_enable = 0x1; - - writel(mmc_ctrl.value, &pAdapter->CSRAddress->mmc.mmc_ctrl.value); - - DBG_LEAVE(et131x_dbginfo); -} - -void et131x_enable_interrupts(struct et131x_adapter *adapter) -{ - uint32_t MaskValue; - - /* Enable all global interrupts */ - if ((adapter->FlowControl == TxOnly) || (adapter->FlowControl == Both)) { - MaskValue = INT_MASK_ENABLE; - } else { - MaskValue = INT_MASK_ENABLE_NO_FLOW; - } - - if (adapter->DriverNoPhyAccess) { - MaskValue |= 0x10000; - } - - adapter->CachedMaskValue.value = MaskValue; - writel(MaskValue, &adapter->CSRAddress->global.int_mask.value); -} - -void et131x_disable_interrupts(struct et131x_adapter * adapter) -{ - /* Disable all global interrupts */ - adapter->CachedMaskValue.value = INT_MASK_DISABLE; - writel(INT_MASK_DISABLE, &adapter->CSRAddress->global.int_mask.value); -} diff --git a/src/et131x/et1310_jagcore.h b/src/et131x/et1310_jagcore.h deleted file mode 100644 index 9fc8293..0000000 --- a/src/et131x/et1310_jagcore.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_jagcore.h - Defines, structs, enums, prototypes, etc. pertaining to - * the JAGCore - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET1310_JAGCORE_H__ -#define __ET1310_JAGCORE_H__ - -#include "et1310_address_map.h" - - -#define INTERNAL_MEM_SIZE 0x400 //1024 of internal memory -#define INTERNAL_MEM_RX_OFFSET 0x1FF //50% Tx, 50% Rx - -#define REGS_MAX_ARRAY 4096 - -/* - * For interrupts, normal running is: - * rxdma_xfr_done, phy_interrupt, mac_stat_interrupt, - * watchdog_interrupt & txdma_xfer_done - * - * In both cases, when flow control is enabled for either Tx or bi-direction, - * we additional enable rx_fbr0_low and rx_fbr1_low, so we know when the - * buffer rings are running low. - */ -#define INT_MASK_DISABLE 0xffffffff - -// NOTE: Masking out MAC_STAT Interrupt for now... -//#define INT_MASK_ENABLE 0xfff6bf17 -//#define INT_MASK_ENABLE_NO_FLOW 0xfff6bfd7 -#define INT_MASK_ENABLE 0xfffebf17 -#define INT_MASK_ENABLE_NO_FLOW 0xfffebfd7 - -/* DATA STRUCTURES FOR DIRECT REGISTER ACCESS */ - -typedef struct { - u8 bReadWrite; - u32 nRegCount; - u32 nData[REGS_MAX_ARRAY]; - u32 nOffsets[REGS_MAX_ARRAY]; -} JAGCORE_ACCESS_REGS, *PJAGCORE_ACCESS_REGS; - -typedef struct { - u8 bReadWrite; - u32 nDataWidth; - u32 nRegCount; - u32 nOffsets[REGS_MAX_ARRAY]; - u32 nData[REGS_MAX_ARRAY]; -} PCI_CFG_SPACE_REGS, *PPCI_CFG_SPACE_REGS; - -/* Forward declaration of the private adapter structure */ -struct et131x_adapter; - -void ConfigGlobalRegs(struct et131x_adapter *pAdapter); -void ConfigMMCRegs(struct et131x_adapter *pAdapter); -void et131x_enable_interrupts(struct et131x_adapter *adapter); -void et131x_disable_interrupts(struct et131x_adapter *adapter); - -#endif /* __ET1310_JAGCORE_H__ */ diff --git a/src/et131x/et1310_mac.c b/src/et131x/et1310_mac.c deleted file mode 100644 index 1924968..0000000 --- a/src/et131x/et1310_mac.c +++ /dev/null @@ -1,792 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_mac.c - All code and routines pertaining to the MAC - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> -#include <linux/crc32.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" -#include "et1310_mac.h" - -#include "et131x_adapter.h" -#include "et131x_initpci.h" - -/* Data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -extern dbg_info_t *et131x_dbginfo; -#endif /* CONFIG_ET131X_DEBUG */ - -/** - * ConfigMacRegs1 - Initialize the first part of MAC regs - * @pAdpater: pointer to our adapter structure - */ -void ConfigMACRegs1(struct et131x_adapter *pAdapter) -{ - struct _MAC_t __iomem *pMac = &pAdapter->CSRAddress->mac; - MAC_STATION_ADDR1_t station1; - MAC_STATION_ADDR2_t station2; - MAC_IPG_t ipg; - MAC_HFDP_t hfdp; - MII_MGMT_CFG_t mii_mgmt_cfg; - - DBG_ENTER(et131x_dbginfo); - - /* First we need to reset everything. Write to MAC configuration - * register 1 to perform reset. - */ - writel(0xC00F0000, &pMac->cfg1.value); - - /* Next lets configure the MAC Inter-packet gap register */ - ipg.bits.non_B2B_ipg_1 = 0x38; // 58d - ipg.bits.non_B2B_ipg_2 = 0x58; // 88d - ipg.bits.min_ifg_enforce = 0x50; // 80d - ipg.bits.B2B_ipg = 0x60; // 96d - writel(ipg.value, &pMac->ipg.value); - - /* Next lets configure the MAC Half Duplex register */ - hfdp.bits.alt_beb_trunc = 0xA; - hfdp.bits.alt_beb_enable = 0x0; - hfdp.bits.bp_no_backoff = 0x0; - hfdp.bits.no_backoff = 0x0; - hfdp.bits.excess_defer = 0x1; - hfdp.bits.rexmit_max = 0xF; - hfdp.bits.coll_window = 0x37; // 55d - writel(hfdp.value, &pMac->hfdp.value); - - /* Next lets configure the MAC Interface Control register */ - writel(0, &pMac->if_ctrl.value); - - /* Let's move on to setting up the mii managment configuration */ - mii_mgmt_cfg.bits.reset_mii_mgmt = 0; - mii_mgmt_cfg.bits.scan_auto_incremt = 0; - mii_mgmt_cfg.bits.preamble_suppress = 0; - mii_mgmt_cfg.bits.mgmt_clk_reset = 0x7; - writel(mii_mgmt_cfg.value, &pMac->mii_mgmt_cfg.value); - - /* Next lets configure the MAC Station Address register. These - * values are read from the EEPROM during initialization and stored - * in the adapter structure. We write what is stored in the adapter - * structure to the MAC Station Address registers high and low. This - * station address is used for generating and checking pause control - * packets. - */ - station2.bits.Octet1 = pAdapter->CurrentAddress[0]; - station2.bits.Octet2 = pAdapter->CurrentAddress[1]; - station1.bits.Octet3 = pAdapter->CurrentAddress[2]; - station1.bits.Octet4 = pAdapter->CurrentAddress[3]; - station1.bits.Octet5 = pAdapter->CurrentAddress[4]; - station1.bits.Octet6 = pAdapter->CurrentAddress[5]; - writel(station1.value, &pMac->station_addr_1.value); - writel(station2.value, &pMac->station_addr_2.value); - - /* Max ethernet packet in bytes that will passed by the mac without - * being truncated. Allow the MAC to pass 4 more than our max packet - * size. This is 4 for the Ethernet CRC. - * - * Packets larger than (RegistryJumboPacket) that do not contain a - * VLAN ID will be dropped by the Rx function. - */ - writel(pAdapter->RegistryJumboPacket + 4, &pMac->max_fm_len.value); - - /* clear out MAC config reset */ - writel(0, &pMac->cfg1.value); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * ConfigMacRegs2 - Initialize the second part of MAC regs - * @pAdpater: pointer to our adapter structure - */ -void ConfigMACRegs2(struct et131x_adapter *pAdapter) -{ - int32_t delay = 0; - struct _MAC_t __iomem *pMac = &pAdapter->CSRAddress->mac; - MAC_CFG1_t cfg1; - MAC_CFG2_t cfg2; - MAC_IF_CTRL_t ifctrl; - TXMAC_CTL_t ctl; - - DBG_ENTER(et131x_dbginfo); - - ctl.value = readl(&pAdapter->CSRAddress->txmac.ctl.value); - cfg1.value = readl(&pMac->cfg1.value); - cfg2.value = readl(&pMac->cfg2.value); - ifctrl.value = readl(&pMac->if_ctrl.value); - - if (pAdapter->uiLinkSpeed == TRUEPHY_SPEED_1000MBPS) { - cfg2.bits.if_mode = 0x2; - ifctrl.bits.phy_mode = 0x0; - } else { - cfg2.bits.if_mode = 0x1; - ifctrl.bits.phy_mode = 0x1; - } - - /* We need to enable Rx/Tx */ - cfg1.bits.rx_enable = 0x1; - cfg1.bits.tx_enable = 0x1; - - /* Set up flow control */ - cfg1.bits.tx_flow = 0x1; - - if ((pAdapter->FlowControl == RxOnly) || - (pAdapter->FlowControl == Both)) { - cfg1.bits.rx_flow = 0x1; - } else { - cfg1.bits.rx_flow = 0x0; - } - - /* Initialize loop back to off */ - cfg1.bits.loop_back = 0; - - writel(cfg1.value, &pMac->cfg1.value); - - /* Now we need to initialize the MAC Configuration 2 register */ - cfg2.bits.preamble_len = 0x7; - cfg2.bits.huge_frame = 0x0; - /* LENGTH FIELD CHECKING bit4: Set this bit to cause the MAC to check - * the frame's length field to ensure it matches the actual data - * field length. Clear this bit if no length field checking is - * desired. Its default is 0. - */ - cfg2.bits.len_check = 0x1; - - if (pAdapter->RegistryPhyLoopbk == false) { - cfg2.bits.pad_crc = 0x1; - cfg2.bits.crc_enable = 0x1; - } else { - cfg2.bits.pad_crc = 0; - cfg2.bits.crc_enable = 0; - } - - /* 1 - full duplex, 0 - half-duplex */ - cfg2.bits.full_duplex = pAdapter->uiDuplexMode; - ifctrl.bits.ghd_mode = !pAdapter->uiDuplexMode; - - writel(ifctrl.value, &pMac->if_ctrl.value); - writel(cfg2.value, &pMac->cfg2.value); - - do { - udelay(10); - delay++; - cfg1.value = readl(&pMac->cfg1.value); - } while ((!cfg1.bits.syncd_rx_en || - !cfg1.bits.syncd_tx_en) && - delay < 100); - - if (delay == 100) { - DBG_ERROR(et131x_dbginfo, - "Syncd bits did not respond correctly cfg1 word 0x%08x\n", - cfg1.value); - } - - DBG_TRACE(et131x_dbginfo, - "Speed %d, Dup %d, CFG1 0x%08x, CFG2 0x%08x, if_ctrl 0x%08x\n", - pAdapter->uiLinkSpeed, pAdapter->uiDuplexMode, - readl(&pMac->cfg1.value), readl(&pMac->cfg2.value), - readl(&pMac->if_ctrl.value)); - - /* Enable TXMAC */ - ctl.bits.txmac_en = 0x1; - ctl.bits.fc_disable = 0x1; - writel(ctl.value, &pAdapter->CSRAddress->txmac.ctl.value); - - /* Ready to start the RXDMA/TXDMA engine */ - if (!MP_TEST_FLAG(pAdapter, fMP_ADAPTER_LOWER_POWER)) { - et131x_rx_dma_enable(pAdapter); - et131x_tx_dma_enable(pAdapter); - } else { - DBG_WARNING(et131x_dbginfo, - "Didn't enable Rx/Tx due to low-power mode\n"); - } - - DBG_LEAVE(et131x_dbginfo); -} - -void ConfigRxMacRegs(struct et131x_adapter *pAdapter) -{ - struct _RXMAC_t __iomem *pRxMac = &pAdapter->CSRAddress->rxmac; - RXMAC_WOL_SA_LO_t sa_lo; - RXMAC_WOL_SA_HI_t sa_hi; - RXMAC_PF_CTRL_t pf_ctrl = { 0 }; - - DBG_ENTER(et131x_dbginfo); - - /* Disable the MAC while it is being configured (also disable WOL) */ - writel(0x8, &pRxMac->ctrl.value); - - /* Initialize WOL to disabled. */ - writel(0, &pRxMac->crc0.value); - writel(0, &pRxMac->crc12.value); - writel(0, &pRxMac->crc34.value); - - /* We need to set the WOL mask0 - mask4 next. We initialize it to - * its default Values of 0x00000000 because there are not WOL masks - * as of this time. - */ - writel(0, &pRxMac->mask0_word0); - writel(0, &pRxMac->mask0_word1); - writel(0, &pRxMac->mask0_word2); - writel(0, &pRxMac->mask0_word3); - - writel(0, &pRxMac->mask1_word0); - writel(0, &pRxMac->mask1_word1); - writel(0, &pRxMac->mask1_word2); - writel(0, &pRxMac->mask1_word3); - - writel(0, &pRxMac->mask2_word0); - writel(0, &pRxMac->mask2_word1); - writel(0, &pRxMac->mask2_word2); - writel(0, &pRxMac->mask2_word3); - - writel(0, &pRxMac->mask3_word0); - writel(0, &pRxMac->mask3_word1); - writel(0, &pRxMac->mask3_word2); - writel(0, &pRxMac->mask3_word3); - - writel(0, &pRxMac->mask4_word0); - writel(0, &pRxMac->mask4_word1); - writel(0, &pRxMac->mask4_word2); - writel(0, &pRxMac->mask4_word3); - - /* Lets setup the WOL Source Address */ - sa_lo.bits.sa3 = pAdapter->CurrentAddress[2]; - sa_lo.bits.sa4 = pAdapter->CurrentAddress[3]; - sa_lo.bits.sa5 = pAdapter->CurrentAddress[4]; - sa_lo.bits.sa6 = pAdapter->CurrentAddress[5]; - writel(sa_lo.value, &pRxMac->sa_lo.value); - - sa_hi.bits.sa1 = pAdapter->CurrentAddress[0]; - sa_hi.bits.sa2 = pAdapter->CurrentAddress[1]; - writel(sa_hi.value, &pRxMac->sa_hi.value); - - /* Disable all Packet Filtering */ - writel(0, &pRxMac->pf_ctrl.value); - - /* Let's initialize the Unicast Packet filtering address */ - if (pAdapter->PacketFilter & ET131X_PACKET_TYPE_DIRECTED) { - SetupDeviceForUnicast(pAdapter); - pf_ctrl.bits.filter_uni_en = 1; - } else { - writel(0, &pRxMac->uni_pf_addr1.value); - writel(0, &pRxMac->uni_pf_addr2.value); - writel(0, &pRxMac->uni_pf_addr3.value); - } - - /* Let's initialize the Multicast hash */ - if (pAdapter->PacketFilter & ET131X_PACKET_TYPE_ALL_MULTICAST) { - pf_ctrl.bits.filter_multi_en = 0; - } else { - pf_ctrl.bits.filter_multi_en = 1; - SetupDeviceForMulticast(pAdapter); - } - - /* Runt packet filtering. Didn't work in version A silicon. */ - pf_ctrl.bits.min_pkt_size = NIC_MIN_PACKET_SIZE + 4; - pf_ctrl.bits.filter_frag_en = 1; - - if (pAdapter->RegistryJumboPacket > 8192) { - RXMAC_MCIF_CTRL_MAX_SEG_t mcif_ctrl_max_seg; - - /* In order to transmit jumbo packets greater than 8k, the - * FIFO between RxMAC and RxDMA needs to be reduced in size - * to (16k - Jumbo packet size). In order to implement this, - * we must use "cut through" mode in the RxMAC, which chops - * packets down into segments which are (max_size * 16). In - * this case we selected 256 bytes, since this is the size of - * the PCI-Express TLP's that the 1310 uses. - */ - mcif_ctrl_max_seg.bits.seg_en = 0x1; - mcif_ctrl_max_seg.bits.fc_en = 0x0; - mcif_ctrl_max_seg.bits.max_size = 0x10; - - writel(mcif_ctrl_max_seg.value, - &pRxMac->mcif_ctrl_max_seg.value); - } else { - writel(0, &pRxMac->mcif_ctrl_max_seg.value); - } - - /* Initialize the MCIF water marks */ - writel(0, &pRxMac->mcif_water_mark.value); - - /* Initialize the MIF control */ - writel(0, &pRxMac->mif_ctrl.value); - - /* Initialize the Space Available Register */ - writel(0, &pRxMac->space_avail.value); - - /* Initialize the the mif_ctrl register - * bit 3: Receive code error. One or more nibbles were signaled as - * errors during the reception of the packet. Clear this - * bit in Gigabit, set it in 100Mbit. This was derived - * experimentally at UNH. - * bit 4: Receive CRC error. The packet's CRC did not match the - * internally generated CRC. - * bit 5: Receive length check error. Indicates that frame length - * field value in the packet does not match the actual data - * byte length and is not a type field. - * bit 16: Receive frame truncated. - * bit 17: Drop packet enable - */ - if (pAdapter->uiLinkSpeed == TRUEPHY_SPEED_100MBPS) { - writel(0x30038, &pRxMac->mif_ctrl.value); - } else { - writel(0x30030, &pRxMac->mif_ctrl.value); - } - - /* Finally we initialize RxMac to be enabled & WOL disabled. Packet - * filter is always enabled since it is where the runt packets are - * supposed to be dropped. For version A silicon, runt packet - * dropping doesn't work, so it is disabled in the pf_ctrl register, - * but we still leave the packet filter on. - */ - writel(pf_ctrl.value, &pRxMac->pf_ctrl.value); - writel(0x9, &pRxMac->ctrl.value); - - DBG_LEAVE(et131x_dbginfo); -} - -void ConfigTxMacRegs(struct et131x_adapter *pAdapter) -{ - struct _TXMAC_t __iomem *pTxMac = &pAdapter->CSRAddress->txmac; - TXMAC_CF_PARAM_t Local; - - DBG_ENTER(et131x_dbginfo); - - /* We need to update the Control Frame Parameters - * cfpt - control frame pause timer set to 64 (0x40) - * cfep - control frame extended pause timer set to 0x0 - */ - if (pAdapter->FlowControl == None) { - writel(0, &pTxMac->cf_param.value); - } else { - Local.bits.cfpt = 0x40; - Local.bits.cfep = 0x0; - writel(Local.value, &pTxMac->cf_param.value); - } - - DBG_LEAVE(et131x_dbginfo); -} - -void ConfigMacStatRegs(struct et131x_adapter *pAdapter) -{ - struct _MAC_STAT_t __iomem *pDevMacStat = - &pAdapter->CSRAddress->macStat; - - DBG_ENTER(et131x_dbginfo); - - /* Next we need to initialize all the MAC_STAT registers to zero on - * the device. - */ - writel(0, &pDevMacStat->RFcs); - writel(0, &pDevMacStat->RAln); - writel(0, &pDevMacStat->RFlr); - writel(0, &pDevMacStat->RDrp); - writel(0, &pDevMacStat->RCde); - writel(0, &pDevMacStat->ROvr); - writel(0, &pDevMacStat->RFrg); - - writel(0, &pDevMacStat->TScl); - writel(0, &pDevMacStat->TDfr); - writel(0, &pDevMacStat->TMcl); - writel(0, &pDevMacStat->TLcl); - writel(0, &pDevMacStat->TNcl); - writel(0, &pDevMacStat->TOvr); - writel(0, &pDevMacStat->TUnd); - - /* Unmask any counters that we want to track the overflow of. - * Initially this will be all counters. It may become clear later - * that we do not need to track all counters. - */ - { - MAC_STAT_REG_1_t Carry1M = { 0xffffffff }; - - Carry1M.bits.rdrp = 0; - Carry1M.bits.rjbr = 1; - Carry1M.bits.rfrg = 0; - Carry1M.bits.rovr = 0; - Carry1M.bits.rund = 1; - Carry1M.bits.rcse = 1; - Carry1M.bits.rcde = 0; - Carry1M.bits.rflr = 0; - Carry1M.bits.raln = 0; - Carry1M.bits.rxuo = 1; - Carry1M.bits.rxpf = 1; - Carry1M.bits.rxcf = 1; - Carry1M.bits.rbca = 1; - Carry1M.bits.rmca = 1; - Carry1M.bits.rfcs = 0; - Carry1M.bits.rpkt = 1; - Carry1M.bits.rbyt = 1; - Carry1M.bits.trmgv = 1; - Carry1M.bits.trmax = 1; - Carry1M.bits.tr1k = 1; - Carry1M.bits.tr511 = 1; - Carry1M.bits.tr255 = 1; - Carry1M.bits.tr127 = 1; - Carry1M.bits.tr64 = 1; - - writel(Carry1M.value, &pDevMacStat->Carry1M.value); - } - - { - MAC_STAT_REG_2_t Carry2M = { 0xffffffff }; - - Carry2M.bits.tdrp = 1; - Carry2M.bits.tpfh = 1; - Carry2M.bits.tncl = 0; - Carry2M.bits.txcl = 1; - Carry2M.bits.tlcl = 0; - Carry2M.bits.tmcl = 0; - Carry2M.bits.tscl = 0; - Carry2M.bits.tedf = 1; - Carry2M.bits.tdfr = 0; - Carry2M.bits.txpf = 1; - Carry2M.bits.tbca = 1; - Carry2M.bits.tmca = 1; - Carry2M.bits.tpkt = 1; - Carry2M.bits.tbyt = 1; - Carry2M.bits.tfrg = 1; - Carry2M.bits.tund = 0; - Carry2M.bits.tovr = 0; - Carry2M.bits.txcf = 1; - Carry2M.bits.tfcs = 1; - Carry2M.bits.tjbr = 1; - - writel(Carry2M.value, &pDevMacStat->Carry2M.value); - } - - DBG_LEAVE(et131x_dbginfo); -} - -void ConfigFlowControl(struct et131x_adapter * pAdapter) -{ - if (pAdapter->uiDuplexMode == 0) { - pAdapter->FlowControl = None; - } else { - char RemotePause, RemoteAsyncPause; - - ET1310_PhyAccessMiBit(pAdapter, - TRUEPHY_BIT_READ, 5, 10, &RemotePause); - ET1310_PhyAccessMiBit(pAdapter, - TRUEPHY_BIT_READ, 5, 11, - &RemoteAsyncPause); - - if ((RemotePause == TRUEPHY_BIT_SET) && - (RemoteAsyncPause == TRUEPHY_BIT_SET)) { - pAdapter->FlowControl = pAdapter->RegistryFlowControl; - } else if ((RemotePause == TRUEPHY_BIT_SET) && - (RemoteAsyncPause == TRUEPHY_BIT_CLEAR)) { - if (pAdapter->RegistryFlowControl == Both) { - pAdapter->FlowControl = Both; - } else { - pAdapter->FlowControl = None; - } - } else if ((RemotePause == TRUEPHY_BIT_CLEAR) && - (RemoteAsyncPause == TRUEPHY_BIT_CLEAR)) { - pAdapter->FlowControl = None; - } else {/* if (RemotePause == TRUEPHY_CLEAR_BIT && - RemoteAsyncPause == TRUEPHY_SET_BIT) */ - if (pAdapter->RegistryFlowControl == Both) { - pAdapter->FlowControl = RxOnly; - } else { - pAdapter->FlowControl = None; - } - } - } -} - -/** - * UpdateMacStatHostCounters - Update the local copy of the statistics - * @pAdapter: pointer to the adapter structure - */ -void UpdateMacStatHostCounters(struct et131x_adapter *pAdapter) -{ - struct _ce_stats_t *stats = &pAdapter->Stats; - struct _MAC_STAT_t __iomem *pDevMacStat = - &pAdapter->CSRAddress->macStat; - - stats->collisions += readl(&pDevMacStat->TNcl); - stats->first_collision += readl(&pDevMacStat->TScl); - stats->tx_deferred += readl(&pDevMacStat->TDfr); - stats->excessive_collisions += readl(&pDevMacStat->TMcl); - stats->late_collisions += readl(&pDevMacStat->TLcl); - stats->tx_uflo += readl(&pDevMacStat->TUnd); - stats->max_pkt_error += readl(&pDevMacStat->TOvr); - - stats->alignment_err += readl(&pDevMacStat->RAln); - stats->crc_err += readl(&pDevMacStat->RCde); - stats->norcvbuf += readl(&pDevMacStat->RDrp); - stats->rx_ov_flow += readl(&pDevMacStat->ROvr); - stats->code_violations += readl(&pDevMacStat->RFcs); - stats->length_err += readl(&pDevMacStat->RFlr); - - stats->other_errors += readl(&pDevMacStat->RFrg); -} - -/** - * HandleMacStatInterrupt - * @pAdapter: pointer to the adapter structure - * - * One of the MACSTAT counters has wrapped. Update the local copy of - * the statistics held in the adapter structure, checking the "wrap" - * bit for each counter. - */ -void HandleMacStatInterrupt(struct et131x_adapter *pAdapter) -{ - MAC_STAT_REG_1_t Carry1; - MAC_STAT_REG_2_t Carry2; - - DBG_ENTER(et131x_dbginfo); - - /* Read the interrupt bits from the register(s). These are Clear On - * Write. - */ - Carry1.value = readl(&pAdapter->CSRAddress->macStat.Carry1.value); - Carry2.value = readl(&pAdapter->CSRAddress->macStat.Carry2.value); - - writel(Carry1.value, &pAdapter->CSRAddress->macStat.Carry1.value); - writel(Carry2.value, &pAdapter->CSRAddress->macStat.Carry2.value); - - /* We need to do update the host copy of all the MAC_STAT counters. - * For each counter, check it's overflow bit. If the overflow bit is - * set, then increment the host version of the count by one complete - * revolution of the counter. This routine is called when the counter - * block indicates that one of the counters has wrapped. - */ - if (Carry1.bits.rfcs) { - pAdapter->Stats.code_violations += COUNTER_WRAP_16_BIT; - } - if (Carry1.bits.raln) { - pAdapter->Stats.alignment_err += COUNTER_WRAP_12_BIT; - } - if (Carry1.bits.rflr) { - pAdapter->Stats.length_err += COUNTER_WRAP_16_BIT; - } - if (Carry1.bits.rfrg) { - pAdapter->Stats.other_errors += COUNTER_WRAP_16_BIT; - } - if (Carry1.bits.rcde) { - pAdapter->Stats.crc_err += COUNTER_WRAP_16_BIT; - } - if (Carry1.bits.rovr) { - pAdapter->Stats.rx_ov_flow += COUNTER_WRAP_16_BIT; - } - if (Carry1.bits.rdrp) { - pAdapter->Stats.norcvbuf += COUNTER_WRAP_16_BIT; - } - if (Carry2.bits.tovr) { - pAdapter->Stats.max_pkt_error += COUNTER_WRAP_12_BIT; - } - if (Carry2.bits.tund) { - pAdapter->Stats.tx_uflo += COUNTER_WRAP_12_BIT; - } - if (Carry2.bits.tscl) { - pAdapter->Stats.first_collision += COUNTER_WRAP_12_BIT; - } - if (Carry2.bits.tdfr) { - pAdapter->Stats.tx_deferred += COUNTER_WRAP_12_BIT; - } - if (Carry2.bits.tmcl) { - pAdapter->Stats.excessive_collisions += COUNTER_WRAP_12_BIT; - } - if (Carry2.bits.tlcl) { - pAdapter->Stats.late_collisions += COUNTER_WRAP_12_BIT; - } - if (Carry2.bits.tncl) { - pAdapter->Stats.collisions += COUNTER_WRAP_12_BIT; - } - - DBG_LEAVE(et131x_dbginfo); -} - -void SetupDeviceForMulticast(struct et131x_adapter *pAdapter) -{ - struct _RXMAC_t __iomem *rxmac = &pAdapter->CSRAddress->rxmac; - uint32_t nIndex; - uint32_t result; - uint32_t hash1 = 0; - uint32_t hash2 = 0; - uint32_t hash3 = 0; - uint32_t hash4 = 0; - PM_CSR_t pm_csr; - - DBG_ENTER(et131x_dbginfo); - - /* If ET131X_PACKET_TYPE_MULTICAST is specified, then we provision - * the multi-cast LIST. If it is NOT specified, (and "ALL" is not - * specified) then we should pass NO multi-cast addresses to the - * driver. - */ - if (pAdapter->PacketFilter & ET131X_PACKET_TYPE_MULTICAST) { - DBG_VERBOSE(et131x_dbginfo, - "MULTICAST flag is set, MCCount: %d\n", - pAdapter->MCAddressCount); - - /* Loop through our multicast array and set up the device */ - for (nIndex = 0; nIndex < pAdapter->MCAddressCount; nIndex++) { - DBG_VERBOSE(et131x_dbginfo, - "MCList[%d]: %02x:%02x:%02x:%02x:%02x:%02x\n", - nIndex, - pAdapter->MCList[nIndex][0], - pAdapter->MCList[nIndex][1], - pAdapter->MCList[nIndex][2], - pAdapter->MCList[nIndex][3], - pAdapter->MCList[nIndex][4], - pAdapter->MCList[nIndex][5]); - - result = ether_crc(6, pAdapter->MCList[nIndex]); - - result = (result & 0x3F800000) >> 23; - - if (result < 32) { - hash1 |= (1 << result); - } else if ((31 < result) && (result < 64)) { - result -= 32; - hash2 |= (1 << result); - } else if ((63 < result) && (result < 96)) { - result -= 64; - hash3 |= (1 << result); - } else { - result -= 96; - hash4 |= (1 << result); - } - } - } - - /* Write out the new hash to the device */ - pm_csr.value = readl(&pAdapter->CSRAddress->global.pm_csr.value); - if (pm_csr.bits.pm_phy_sw_coma == 0) { - writel(hash1, &rxmac->multi_hash1); - writel(hash2, &rxmac->multi_hash2); - writel(hash3, &rxmac->multi_hash3); - writel(hash4, &rxmac->multi_hash4); - } - - DBG_LEAVE(et131x_dbginfo); -} - -void SetupDeviceForUnicast(struct et131x_adapter *pAdapter) -{ - struct _RXMAC_t __iomem *rxmac = &pAdapter->CSRAddress->rxmac; - RXMAC_UNI_PF_ADDR1_t uni_pf1; - RXMAC_UNI_PF_ADDR2_t uni_pf2; - RXMAC_UNI_PF_ADDR3_t uni_pf3; - PM_CSR_t pm_csr; - - DBG_ENTER(et131x_dbginfo); - - /* Set up unicast packet filter reg 3 to be the first two octets of - * the MAC address for both address - * - * Set up unicast packet filter reg 2 to be the octets 2 - 5 of the - * MAC address for second address - * - * Set up unicast packet filter reg 3 to be the octets 2 - 5 of the - * MAC address for first address - */ - uni_pf3.bits.addr1_1 = pAdapter->CurrentAddress[0]; - uni_pf3.bits.addr1_2 = pAdapter->CurrentAddress[1]; - uni_pf3.bits.addr2_1 = pAdapter->CurrentAddress[0]; - uni_pf3.bits.addr2_2 = pAdapter->CurrentAddress[1]; - - uni_pf2.bits.addr2_3 = pAdapter->CurrentAddress[2]; - uni_pf2.bits.addr2_4 = pAdapter->CurrentAddress[3]; - uni_pf2.bits.addr2_5 = pAdapter->CurrentAddress[4]; - uni_pf2.bits.addr2_6 = pAdapter->CurrentAddress[5]; - - uni_pf1.bits.addr1_3 = pAdapter->CurrentAddress[2]; - uni_pf1.bits.addr1_4 = pAdapter->CurrentAddress[3]; - uni_pf1.bits.addr1_5 = pAdapter->CurrentAddress[4]; - uni_pf1.bits.addr1_6 = pAdapter->CurrentAddress[5]; - - pm_csr.value = readl(&pAdapter->CSRAddress->global.pm_csr.value); - if (pm_csr.bits.pm_phy_sw_coma == 0) { - writel(uni_pf1.value, &rxmac->uni_pf_addr1.value); - writel(uni_pf2.value, &rxmac->uni_pf_addr2.value); - writel(uni_pf3.value, &rxmac->uni_pf_addr3.value); - } - - DBG_LEAVE(et131x_dbginfo); -} diff --git a/src/et131x/et1310_mac.h b/src/et131x/et1310_mac.h deleted file mode 100644 index bd26cd3..0000000 --- a/src/et131x/et1310_mac.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_mac.h - Defines, structs, enums, prototypes, etc. pertaining to the - * MAC. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef _ET1310_MAC_H_ -#define _ET1310_MAC_H_ - - -#include "et1310_address_map.h" - - -#define COUNTER_WRAP_28_BIT 0x10000000 -#define COUNTER_WRAP_22_BIT 0x400000 -#define COUNTER_WRAP_16_BIT 0x10000 -#define COUNTER_WRAP_12_BIT 0x1000 - -#define COUNTER_MASK_28_BIT (COUNTER_WRAP_28_BIT - 1) -#define COUNTER_MASK_22_BIT (COUNTER_WRAP_22_BIT - 1) -#define COUNTER_MASK_16_BIT (COUNTER_WRAP_16_BIT - 1) -#define COUNTER_MASK_12_BIT (COUNTER_WRAP_12_BIT - 1) - -#define UPDATE_COUNTER(HostCnt,DevCnt) \ - HostCnt = HostCnt + DevCnt; - -/* Forward declaration of the private adapter structure */ -struct et131x_adapter; - -void ConfigMACRegs1(struct et131x_adapter *adapter); -void ConfigMACRegs2(struct et131x_adapter *adapter); -void ConfigRxMacRegs(struct et131x_adapter *adapter); -void ConfigTxMacRegs(struct et131x_adapter *adapter); -void ConfigMacStatRegs(struct et131x_adapter *adapter); -void ConfigFlowControl(struct et131x_adapter *adapter); -void UpdateMacStatHostCounters(struct et131x_adapter *adapter); -void HandleMacStatInterrupt(struct et131x_adapter *adapter); -void SetupDeviceForMulticast(struct et131x_adapter *adapter); -void SetupDeviceForUnicast(struct et131x_adapter *adapter); - -#endif /* _ET1310_MAC_H_ */ diff --git a/src/et131x/et1310_phy.c b/src/et131x/et1310_phy.c deleted file mode 100644 index 6c4fa54..0000000 --- a/src/et131x/et1310_phy.c +++ /dev/null @@ -1,1281 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_phy.c - Routines for configuring and accessing the PHY - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/pci.h> -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> -#include <linux/random.h> -#include <linux/delay.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" - -#include "et131x_adapter.h" -#include "et131x_netdev.h" -#include "et131x_initpci.h" - -#include "et1310_address_map.h" -#include "et1310_jagcore.h" -#include "et1310_tx.h" -#include "et1310_rx.h" -#include "et1310_mac.h" - -/* Data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -extern dbg_info_t *et131x_dbginfo; -#endif /* CONFIG_ET131X_DEBUG */ - -/* Prototypes for functions with local scope */ -static int et131x_xcvr_init(struct et131x_adapter *adapter); - -/** - * PhyMiRead - Read from the PHY through the MII Interface on the MAC - * @adapter: pointer to our private adapter structure - * @xcvrAddr: the address of the transciever - * @xcvrReg: the register to read - * @value: pointer to a 16-bit value in which the value will be stored - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int PhyMiRead(struct et131x_adapter *adapter, uint8_t xcvrAddr, - uint8_t xcvrReg, uint16_t *value) -{ - struct _MAC_t __iomem *mac = &adapter->CSRAddress->mac; - int status = 0; - uint32_t delay; - MII_MGMT_ADDR_t miiAddr; - MII_MGMT_CMD_t miiCmd; - MII_MGMT_INDICATOR_t miiIndicator; - - /* Save a local copy of the registers we are dealing with so we can - * set them back - */ - miiAddr.value = readl(&mac->mii_mgmt_addr.value); - miiCmd.value = readl(&mac->mii_mgmt_cmd.value); - - /* Stop the current operation */ - writel(0, &mac->mii_mgmt_cmd.value); - - /* Set up the register we need to read from on the correct PHY */ - { - MII_MGMT_ADDR_t mii_mgmt_addr = { 0 }; - - mii_mgmt_addr.bits.phy_addr = xcvrAddr; - mii_mgmt_addr.bits.reg_addr = xcvrReg; - writel(mii_mgmt_addr.value, &mac->mii_mgmt_addr.value); - } - - /* Kick the read cycle off */ - delay = 0; - - writel(0x1, &mac->mii_mgmt_cmd.value); - - do { - udelay(50); - delay++; - miiIndicator.value = readl(&mac->mii_mgmt_indicator.value); - } while ((miiIndicator.bits.not_valid || miiIndicator.bits.busy) && - delay < 50); - - /* If we hit the max delay, we could not read the register */ - if (delay >= 50) { - DBG_WARNING(et131x_dbginfo, - "xcvrReg 0x%08x could not be read\n", xcvrReg); - DBG_WARNING(et131x_dbginfo, "status is 0x%08x\n", - miiIndicator.value); - - status = -EIO; - } - - /* If we hit here we were able to read the register and we need to - * return the value to the caller - */ - /* TODO: make this stuff a simple readw()?! */ - { - MII_MGMT_STAT_t mii_mgmt_stat; - - mii_mgmt_stat.value = readl(&mac->mii_mgmt_stat.value); - *value = (uint16_t) mii_mgmt_stat.bits.phy_stat; - } - - /* Stop the read operation */ - writel(0, &mac->mii_mgmt_cmd.value); - - DBG_VERBOSE(et131x_dbginfo, " xcvr_addr = 0x%02x, " - "xcvr_reg = 0x%02x, " - "value = 0x%04x.\n", xcvrAddr, xcvrReg, *value); - - /* set the registers we touched back to the state at which we entered - * this function - */ - writel(miiAddr.value, &mac->mii_mgmt_addr.value); - writel(miiCmd.value, &mac->mii_mgmt_cmd.value); - - return status; -} - -/** - * MiWrite - Write to a PHY register through the MII interface of the MAC - * @adapter: pointer to our private adapter structure - * @xcvrReg: the register to read - * @value: 16-bit value to write - * - * Return 0 on success, errno on failure (as defined in errno.h) - */ -int MiWrite(struct et131x_adapter *adapter, uint8_t xcvrReg, uint16_t value) -{ - struct _MAC_t __iomem *mac = &adapter->CSRAddress->mac; - int status = 0; - uint8_t xcvrAddr = adapter->Stats.xcvr_addr; - uint32_t delay; - MII_MGMT_ADDR_t miiAddr; - MII_MGMT_CMD_t miiCmd; - MII_MGMT_INDICATOR_t miiIndicator; - - /* Save a local copy of the registers we are dealing with so we can - * set them back - */ - miiAddr.value = readl(&mac->mii_mgmt_addr.value); - miiCmd.value = readl(&mac->mii_mgmt_cmd.value); - - /* Stop the current operation */ - writel(0, &mac->mii_mgmt_cmd.value); - - /* Set up the register we need to write to on the correct PHY */ - { - MII_MGMT_ADDR_t mii_mgmt_addr; - - mii_mgmt_addr.bits.phy_addr = xcvrAddr; - mii_mgmt_addr.bits.reg_addr = xcvrReg; - writel(mii_mgmt_addr.value, &mac->mii_mgmt_addr.value); - } - - /* Add the value to write to the registers to the mac */ - writel(value, &mac->mii_mgmt_ctrl.value); - delay = 0; - - do { - udelay(50); - delay++; - miiIndicator.value = readl(&mac->mii_mgmt_indicator.value); - } while (miiIndicator.bits.busy && delay < 100); - - /* If we hit the max delay, we could not write the register */ - if (delay == 100) { - uint16_t TempValue; - - DBG_WARNING(et131x_dbginfo, - "xcvrReg 0x%08x could not be written", xcvrReg); - DBG_WARNING(et131x_dbginfo, "status is 0x%08x\n", - miiIndicator.value); - DBG_WARNING(et131x_dbginfo, "command is 0x%08x\n", - readl(&mac->mii_mgmt_cmd.value)); - - MiRead(adapter, xcvrReg, &TempValue); - - status = -EIO; - } - - /* Stop the write operation */ - writel(0, &mac->mii_mgmt_cmd.value); - - /* set the registers we touched back to the state at which we entered - * this function - */ - writel(miiAddr.value, &mac->mii_mgmt_addr.value); - writel(miiCmd.value, &mac->mii_mgmt_cmd.value); - - DBG_VERBOSE(et131x_dbginfo, " xcvr_addr = 0x%02x, " - "xcvr_reg = 0x%02x, " - "value = 0x%04x.\n", xcvrAddr, xcvrReg, value); - - return status; -} - -/** - * et131x_xcvr_find - Find the PHY ID - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_xcvr_find(struct et131x_adapter *adapter) -{ - int status = -ENODEV; - uint8_t xcvr_addr; - MI_IDR1_t idr1; - MI_IDR2_t idr2; - uint32_t xcvr_id; - - DBG_ENTER(et131x_dbginfo); - - /* We need to get xcvr id and address we just get the first one */ - for (xcvr_addr = 0; xcvr_addr < 32; xcvr_addr++) { - /* Read the ID from the PHY */ - PhyMiRead(adapter, xcvr_addr, - (uint8_t) offsetof(MI_REGS_t, idr1), - &idr1.value); - PhyMiRead(adapter, xcvr_addr, - (uint8_t) offsetof(MI_REGS_t, idr2), - &idr2.value); - - xcvr_id = (uint32_t) ((idr1.value << 16) | idr2.value); - - if ((idr1.value != 0) && (idr1.value != 0xffff)) { - DBG_TRACE(et131x_dbginfo, - "Xcvr addr: 0x%02x\tXcvr_id: 0x%08x\n", - xcvr_addr, xcvr_id); - - adapter->Stats.xcvr_id = xcvr_id; - adapter->Stats.xcvr_addr = xcvr_addr; - - status = 0; - break; - } - } - - DBG_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_setphy_normal - Set PHY for normal operation. - * @adapter: pointer to our private adapter structure - * - * Used by Power Management to force the PHY into 10 Base T half-duplex mode, - * when going to D3 in WOL mode. Also used during initialization to set the - * PHY for normal operation. - */ -int et131x_setphy_normal(struct et131x_adapter *adapter) -{ - int status; - - DBG_ENTER(et131x_dbginfo); - - /* Make sure the PHY is powered up */ - ET1310_PhyPowerDown(adapter, 0); - status = et131x_xcvr_init(adapter); - - DBG_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_xcvr_init - Init the phy if we are setting it into force mode - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -static int et131x_xcvr_init(struct et131x_adapter *adapter) -{ - int status = 0; - MI_IMR_t imr; - MI_ISR_t isr; - MI_LCR2_t lcr2; - - DBG_ENTER(et131x_dbginfo); - - /* Zero out the adapter structure variable representing BMSR */ - adapter->Bmsr.value = 0; - - MiRead(adapter, (uint8_t) offsetof(MI_REGS_t, isr), &isr.value); - - MiRead(adapter, (uint8_t) offsetof(MI_REGS_t, imr), &imr.value); - - /* Set the link status interrupt only. Bad behavior when link status - * and auto neg are set, we run into a nested interrupt problem - */ - imr.bits.int_en = 0x1; - imr.bits.link_status = 0x1; - imr.bits.autoneg_status = 0x1; - - MiWrite(adapter, (uint8_t) offsetof(MI_REGS_t, imr), imr.value); - - /* Set the LED behavior such that LED 1 indicates speed (off = - * 10Mbits, blink = 100Mbits, on = 1000Mbits) and LED 2 indicates - * link and activity (on for link, blink off for activity). - * - * NOTE: Some customizations have been added here for specific - * vendors; The LED behavior is now determined by vendor data in the - * EEPROM. However, the above description is the default. - */ - if ((adapter->eepromData[1] & 0x4) == 0) { - MiRead(adapter, (uint8_t) offsetof(MI_REGS_t, lcr2), - &lcr2.value); - if ((adapter->eepromData[1] & 0x8) == 0) - lcr2.bits.led_tx_rx = 0x3; - else - lcr2.bits.led_tx_rx = 0x4; - lcr2.bits.led_link = 0xa; - MiWrite(adapter, (uint8_t) offsetof(MI_REGS_t, lcr2), - lcr2.value); - } - - /* Determine if we need to go into a force mode and set it */ - if (adapter->AiForceSpeed == 0 && adapter->AiForceDpx == 0) { - if ((adapter->RegistryFlowControl == TxOnly) || - (adapter->RegistryFlowControl == Both)) { - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_SET, 4, 11, NULL); - } else { - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_CLEAR, 4, 11, NULL); - } - - if (adapter->RegistryFlowControl == Both) { - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_SET, 4, 10, NULL); - } else { - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_CLEAR, 4, 10, NULL); - } - - /* Set the phy to autonegotiation */ - ET1310_PhyAutoNeg(adapter, true); - - /* NOTE - Do we need this? */ - ET1310_PhyAccessMiBit(adapter, TRUEPHY_BIT_SET, 0, 9, NULL); - - DBG_LEAVE(et131x_dbginfo); - return status; - } else { - ET1310_PhyAutoNeg(adapter, false); - - /* Set to the correct force mode. */ - if (adapter->AiForceDpx != 1) { - if ((adapter->RegistryFlowControl == TxOnly) || - (adapter->RegistryFlowControl == Both)) { - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_SET, 4, 11, - NULL); - } else { - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_CLEAR, 4, 11, - NULL); - } - - if (adapter->RegistryFlowControl == Both) { - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_SET, 4, 10, - NULL); - } else { - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_CLEAR, 4, 10, - NULL); - } - } else { - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_CLEAR, 4, 10, NULL); - ET1310_PhyAccessMiBit(adapter, - TRUEPHY_BIT_CLEAR, 4, 11, NULL); - } - - switch (adapter->AiForceSpeed) { - case 10: - if (adapter->AiForceDpx == 1) { - TPAL_SetPhy10HalfDuplex(adapter); - } else if (adapter->AiForceDpx == 2) { - TPAL_SetPhy10FullDuplex(adapter); - } else { - TPAL_SetPhy10Force(adapter); - } - break; - case 100: - if (adapter->AiForceDpx == 1) { - TPAL_SetPhy100HalfDuplex(adapter); - } else if (adapter->AiForceDpx == 2) { - TPAL_SetPhy100FullDuplex(adapter); - } else { - TPAL_SetPhy100Force(adapter); - } - break; - case 1000: - TPAL_SetPhy1000FullDuplex(adapter); - break; - } - - DBG_LEAVE(et131x_dbginfo); - return status; - } -} - -void et131x_Mii_check(struct et131x_adapter *pAdapter, - MI_BMSR_t bmsr, MI_BMSR_t bmsr_ints) -{ - uint8_t ucLinkStatus; - uint32_t uiAutoNegStatus; - uint32_t uiSpeed; - uint32_t uiDuplex; - uint32_t uiMdiMdix; - uint32_t uiMasterSlave; - uint32_t uiPolarity; - unsigned long lockflags; - - DBG_ENTER(et131x_dbginfo); - - if (bmsr_ints.bits.link_status) { - if (bmsr.bits.link_status) { - pAdapter->PoMgmt.TransPhyComaModeOnBoot = 20; - - /* Update our state variables and indicate the - * connected state - */ - spin_lock_irqsave(&pAdapter->Lock, lockflags); - - pAdapter->MediaState = NETIF_STATUS_MEDIA_CONNECT; - MP_CLEAR_FLAG(pAdapter, fMP_ADAPTER_LINK_DETECTION); - - spin_unlock_irqrestore(&pAdapter->Lock, lockflags); - - /* Don't indicate state if we're in loopback mode */ - if (pAdapter->RegistryPhyLoopbk == false) { - netif_carrier_on(pAdapter->netdev); - } - } else { - DBG_WARNING(et131x_dbginfo, - "Link down cable problem\n"); - - if (pAdapter->uiLinkSpeed == TRUEPHY_SPEED_10MBPS) { - // NOTE - Is there a way to query this without TruePHY? - // && TRU_QueryCoreType(pAdapter->hTruePhy, 0) == EMI_TRUEPHY_A13O) { - uint16_t Register18; - - MiRead(pAdapter, 0x12, &Register18); - MiWrite(pAdapter, 0x12, Register18 | 0x4); - MiWrite(pAdapter, 0x10, Register18 | 0x8402); - MiWrite(pAdapter, 0x11, Register18 | 511); - MiWrite(pAdapter, 0x12, Register18); - } - - /* For the first N seconds of life, we are in "link - * detection" When we are in this state, we should - * only report "connected". When the LinkDetection - * Timer expires, we can report disconnected (handled - * in the LinkDetectionDPC). - */ - if ((MP_IS_FLAG_CLEAR - (pAdapter, fMP_ADAPTER_LINK_DETECTION)) - || (pAdapter->MediaState == - NETIF_STATUS_MEDIA_DISCONNECT)) { - spin_lock_irqsave(&pAdapter->Lock, lockflags); - pAdapter->MediaState = - NETIF_STATUS_MEDIA_DISCONNECT; - spin_unlock_irqrestore(&pAdapter->Lock, - lockflags); - - /* Only indicate state if we're in loopback - * mode - */ - if (pAdapter->RegistryPhyLoopbk == false) { - netif_carrier_off(pAdapter->netdev); - } - } - - pAdapter->uiLinkSpeed = 0; - pAdapter->uiDuplexMode = 0; - - /* Free the packets being actively sent & stopped */ - et131x_free_busy_send_packets(pAdapter); - - /* Re-initialize the send structures */ - et131x_init_send(pAdapter); - - /* Reset the RFD list and re-start RU */ - et131x_reset_recv(pAdapter); - - /* - * Bring the device back to the state it was during - * init prior to autonegotiation being complete. This - * way, when we get the auto-neg complete interrupt, - * we can complete init by calling ConfigMacREGS2. - */ - et131x_soft_reset(pAdapter); - - /* Setup ET1310 as per the documentation */ - et131x_adapter_setup(pAdapter); - - /* Setup the PHY into coma mode until the cable is - * plugged back in - */ - if (pAdapter->RegistryPhyComa == 1) { - EnablePhyComa(pAdapter); - } - } - } - - if (bmsr_ints.bits.auto_neg_complete || - ((pAdapter->AiForceDpx == 3) && (bmsr_ints.bits.link_status))) { - if (bmsr.bits.auto_neg_complete || (pAdapter->AiForceDpx == 3)) { - ET1310_PhyLinkStatus(pAdapter, - &ucLinkStatus, &uiAutoNegStatus, - &uiSpeed, &uiDuplex, &uiMdiMdix, - &uiMasterSlave, &uiPolarity); - - pAdapter->uiLinkSpeed = uiSpeed; - pAdapter->uiDuplexMode = uiDuplex; - - DBG_TRACE(et131x_dbginfo, - "pAdapter->uiLinkSpeed 0x%04x, pAdapter->uiDuplex 0x%08x\n", - pAdapter->uiLinkSpeed, - pAdapter->uiDuplexMode); - - pAdapter->PoMgmt.TransPhyComaModeOnBoot = 20; - - if (pAdapter->uiLinkSpeed == TRUEPHY_SPEED_10MBPS) { - // NOTE - Is there a way to query this without TruePHY? - // && TRU_QueryCoreType(pAdapter->hTruePhy, 0) == EMI_TRUEPHY_A13O) { - uint16_t Register18; - - MiRead(pAdapter, 0x12, &Register18); - MiWrite(pAdapter, 0x12, Register18 | 0x4); - MiWrite(pAdapter, 0x10, Register18 | 0x8402); - MiWrite(pAdapter, 0x11, Register18 | 511); - MiWrite(pAdapter, 0x12, Register18); - } - - ConfigFlowControl(pAdapter); - - if ((pAdapter->uiLinkSpeed == TRUEPHY_SPEED_1000MBPS) && - (pAdapter->RegistryJumboPacket > 2048)) - { - ET1310_PhyAndOrReg(pAdapter, 0x16, 0xcfff, - 0x2000); - } - - SetRxDmaTimer(pAdapter); - ConfigMACRegs2(pAdapter); - } - } - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * TPAL_SetPhy10HalfDuplex - Force the phy into 10 Base T Half Duplex mode. - * @pAdapter: pointer to the adapter structure - * - * Also sets the MAC so it is syncd up properly - */ -void TPAL_SetPhy10HalfDuplex(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Power down PHY */ - ET1310_PhyPowerDown(pAdapter, 1); - - /* First we need to turn off all other advertisement */ - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - ET1310_PhyAdvertise100BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - /* Set our advertise values accordingly */ - ET1310_PhyAdvertise10BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_HALF); - - /* Power up PHY */ - ET1310_PhyPowerDown(pAdapter, 0); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * TPAL_SetPhy10FullDuplex - Force the phy into 10 Base T Full Duplex mode. - * @pAdapter: pointer to the adapter structure - * - * Also sets the MAC so it is syncd up properly - */ -void TPAL_SetPhy10FullDuplex(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Power down PHY */ - ET1310_PhyPowerDown(pAdapter, 1); - - /* First we need to turn off all other advertisement */ - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - ET1310_PhyAdvertise100BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - /* Set our advertise values accordingly */ - ET1310_PhyAdvertise10BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_FULL); - - /* Power up PHY */ - ET1310_PhyPowerDown(pAdapter, 0); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * TPAL_SetPhy10Force - Force Base-T FD mode WITHOUT using autonegotiation - * @pAdapter: pointer to the adapter structure - */ -void TPAL_SetPhy10Force(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Power down PHY */ - ET1310_PhyPowerDown(pAdapter, 1); - - /* Disable autoneg */ - ET1310_PhyAutoNeg(pAdapter, false); - - /* Disable all advertisement */ - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - ET1310_PhyAdvertise10BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - ET1310_PhyAdvertise100BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - /* Force 10 Mbps */ - ET1310_PhySpeedSelect(pAdapter, TRUEPHY_SPEED_10MBPS); - - /* Force Full duplex */ - ET1310_PhyDuplexMode(pAdapter, TRUEPHY_DUPLEX_FULL); - - /* Power up PHY */ - ET1310_PhyPowerDown(pAdapter, 0); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * TPAL_SetPhy100HalfDuplex - Force 100 Base T Half Duplex mode. - * @pAdapter: pointer to the adapter structure - * - * Also sets the MAC so it is syncd up properly. - */ -void TPAL_SetPhy100HalfDuplex(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Power down PHY */ - ET1310_PhyPowerDown(pAdapter, 1); - - /* first we need to turn off all other advertisement */ - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - ET1310_PhyAdvertise10BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - /* Set our advertise values accordingly */ - ET1310_PhyAdvertise100BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_HALF); - - /* Set speed */ - ET1310_PhySpeedSelect(pAdapter, TRUEPHY_SPEED_100MBPS); - - /* Power up PHY */ - ET1310_PhyPowerDown(pAdapter, 0); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * TPAL_SetPhy100FullDuplex - Force 100 Base T Full Duplex mode. - * @pAdapter: pointer to the adapter structure - * - * Also sets the MAC so it is syncd up properly - */ -void TPAL_SetPhy100FullDuplex(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Power down PHY */ - ET1310_PhyPowerDown(pAdapter, 1); - - /* First we need to turn off all other advertisement */ - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - ET1310_PhyAdvertise10BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - /* Set our advertise values accordingly */ - ET1310_PhyAdvertise100BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_FULL); - - /* Power up PHY */ - ET1310_PhyPowerDown(pAdapter, 0); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * TPAL_SetPhy100Force - Force 100 BaseT FD mode WITHOUT using autonegotiation - * @pAdapter: pointer to the adapter structure - */ -void TPAL_SetPhy100Force(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Power down PHY */ - ET1310_PhyPowerDown(pAdapter, 1); - - /* Disable autoneg */ - ET1310_PhyAutoNeg(pAdapter, false); - - /* Disable all advertisement */ - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - ET1310_PhyAdvertise10BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - ET1310_PhyAdvertise100BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - /* Force 100 Mbps */ - ET1310_PhySpeedSelect(pAdapter, TRUEPHY_SPEED_100MBPS); - - /* Force Full duplex */ - ET1310_PhyDuplexMode(pAdapter, TRUEPHY_DUPLEX_FULL); - - /* Power up PHY */ - ET1310_PhyPowerDown(pAdapter, 0); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * TPAL_SetPhy1000FullDuplex - Force 1000 Base T Full Duplex mode - * @pAdapter: pointer to the adapter structure - * - * Also sets the MAC so it is syncd up properly. - */ -void TPAL_SetPhy1000FullDuplex(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Power down PHY */ - ET1310_PhyPowerDown(pAdapter, 1); - - /* first we need to turn off all other advertisement */ - ET1310_PhyAdvertise100BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - ET1310_PhyAdvertise10BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - - /* set our advertise values accordingly */ - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_FULL); - - /* power up PHY */ - ET1310_PhyPowerDown(pAdapter, 0); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * TPAL_SetPhyAutoNeg - Set phy to autonegotiation mode. - * @pAdapter: pointer to the adapter structure - */ -void TPAL_SetPhyAutoNeg(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Power down PHY */ - ET1310_PhyPowerDown(pAdapter, 1); - - /* Turn on advertisement of all capabilities */ - ET1310_PhyAdvertise10BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_BOTH); - - ET1310_PhyAdvertise100BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_BOTH); - - if (pAdapter->DeviceID != ET131X_PCI_DEVICE_ID_FAST) { - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_FULL); - } else { - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - } - - /* Make sure auto-neg is ON (it is disabled in FORCE modes) */ - ET1310_PhyAutoNeg(pAdapter, true); - - /* Power up PHY */ - ET1310_PhyPowerDown(pAdapter, 0); - - DBG_LEAVE(et131x_dbginfo); -} - - -/* - * The routines which follow provide low-level access to the PHY, and are used - * primarily by the routines above (although there are a few places elsewhere - * in the driver where this level of access is required). - */ - -static const uint16_t ConfigPhy[25][2] = { - /* Reg Value Register */ - /* Addr */ - {0x880B, 0x0926}, /* AfeIfCreg4B1000Msbs */ - {0x880C, 0x0926}, /* AfeIfCreg4B100Msbs */ - {0x880D, 0x0926}, /* AfeIfCreg4B10Msbs */ - - {0x880E, 0xB4D3}, /* AfeIfCreg4B1000Lsbs */ - {0x880F, 0xB4D3}, /* AfeIfCreg4B100Lsbs */ - {0x8810, 0xB4D3}, /* AfeIfCreg4B10Lsbs */ - - {0x8805, 0xB03E}, /* AfeIfCreg3B1000Msbs */ - {0x8806, 0xB03E}, /* AfeIfCreg3B100Msbs */ - {0x8807, 0xFF00}, /* AfeIfCreg3B10Msbs */ - - {0x8808, 0xE090}, /* AfeIfCreg3B1000Lsbs */ - {0x8809, 0xE110}, /* AfeIfCreg3B100Lsbs */ - {0x880A, 0x0000}, /* AfeIfCreg3B10Lsbs */ - - {0x300D, 1}, /* DisableNorm */ - - {0x280C, 0x0180}, /* LinkHoldEnd */ - - {0x1C21, 0x0002}, /* AlphaM */ - - {0x3821, 6}, /* FfeLkgTx0 */ - {0x381D, 1}, /* FfeLkg1g4 */ - {0x381E, 1}, /* FfeLkg1g5 */ - {0x381F, 1}, /* FfeLkg1g6 */ - {0x3820, 1}, /* FfeLkg1g7 */ - - {0x8402, 0x01F0}, /* Btinact */ - {0x800E, 20}, /* LftrainTime */ - {0x800F, 24}, /* DvguardTime */ - {0x8010, 46}, /* IdlguardTime */ - - {0, 0} - -}; - -/* condensed version of the phy initialization routine */ -void ET1310_PhyInit(struct et131x_adapter *pAdapter) -{ - uint16_t usData, usIndex; - - if (pAdapter == NULL) { - return; - } - - // get the identity (again ?) - MiRead(pAdapter, PHY_ID_1, &usData); - MiRead(pAdapter, PHY_ID_2, &usData); - - // what does this do/achieve ? - MiRead(pAdapter, PHY_MPHY_CONTROL_REG, &usData); // should read 0002 - MiWrite(pAdapter, PHY_MPHY_CONTROL_REG, 0x0006); - - // read modem register 0402, should I do something with the return data ? - MiWrite(pAdapter, PHY_INDEX_REG, 0x0402); - MiRead(pAdapter, PHY_DATA_REG, &usData); - - // what does this do/achieve ? - MiWrite(pAdapter, PHY_MPHY_CONTROL_REG, 0x0002); - - // get the identity (again ?) - MiRead(pAdapter, PHY_ID_1, &usData); - MiRead(pAdapter, PHY_ID_2, &usData); - - // what does this achieve ? - MiRead(pAdapter, PHY_MPHY_CONTROL_REG, &usData); // should read 0002 - MiWrite(pAdapter, PHY_MPHY_CONTROL_REG, 0x0006); - - // read modem register 0402, should I do something with the return data? - MiWrite(pAdapter, PHY_INDEX_REG, 0x0402); - MiRead(pAdapter, PHY_DATA_REG, &usData); - - MiWrite(pAdapter, PHY_MPHY_CONTROL_REG, 0x0002); - - // what does this achieve (should return 0x1040) - MiRead(pAdapter, PHY_CONTROL, &usData); - MiRead(pAdapter, PHY_MPHY_CONTROL_REG, &usData); // should read 0002 - MiWrite(pAdapter, PHY_CONTROL, 0x1840); - - MiWrite(pAdapter, PHY_MPHY_CONTROL_REG, 0x0007); - - // here the writing of the array starts.... - usIndex = 0; - while (ConfigPhy[usIndex][0] != 0x0000) { - // write value - MiWrite(pAdapter, PHY_INDEX_REG, ConfigPhy[usIndex][0]); - MiWrite(pAdapter, PHY_DATA_REG, ConfigPhy[usIndex][1]); - - // read it back - MiWrite(pAdapter, PHY_INDEX_REG, ConfigPhy[usIndex][0]); - MiRead(pAdapter, PHY_DATA_REG, &usData); - - // do a check on the value read back ? - usIndex++; - } - // here the writing of the array ends... - - MiRead(pAdapter, PHY_CONTROL, &usData); // 0x1840 - MiRead(pAdapter, PHY_MPHY_CONTROL_REG, &usData); // should read 0007 - MiWrite(pAdapter, PHY_CONTROL, 0x1040); - MiWrite(pAdapter, PHY_MPHY_CONTROL_REG, 0x0002); -} - -void ET1310_PhyReset(struct et131x_adapter *pAdapter) -{ - MiWrite(pAdapter, PHY_CONTROL, 0x8000); -} - -void ET1310_PhyPowerDown(struct et131x_adapter *pAdapter, bool down) -{ - uint16_t usData; - - MiRead(pAdapter, PHY_CONTROL, &usData); - - if (down == false) { - // Power UP - usData &= ~0x0800; - MiWrite(pAdapter, PHY_CONTROL, usData); - } else { - // Power DOWN - usData |= 0x0800; - MiWrite(pAdapter, PHY_CONTROL, usData); - } -} - -void ET1310_PhyAutoNeg(struct et131x_adapter *pAdapter, bool enable) -{ - uint16_t usData; - - MiRead(pAdapter, PHY_CONTROL, &usData); - - if (enable == true) { - // Autonegotiation ON - usData |= 0x1000; - MiWrite(pAdapter, PHY_CONTROL, usData); - } else { - // Autonegotiation OFF - usData &= ~0x1000; - MiWrite(pAdapter, PHY_CONTROL, usData); - } -} - -void ET1310_PhyDuplexMode(struct et131x_adapter *pAdapter, uint16_t duplex) -{ - uint16_t usData; - - MiRead(pAdapter, PHY_CONTROL, &usData); - - if (duplex == TRUEPHY_DUPLEX_FULL) { - // Set Full Duplex - usData |= 0x100; - MiWrite(pAdapter, PHY_CONTROL, usData); - } else { - // Set Half Duplex - usData &= ~0x100; - MiWrite(pAdapter, PHY_CONTROL, usData); - } -} - -void ET1310_PhySpeedSelect(struct et131x_adapter *pAdapter, uint16_t speed) -{ - uint16_t usData; - - // Read the PHY control register - MiRead(pAdapter, PHY_CONTROL, &usData); - - // Clear all Speed settings (Bits 6, 13) - usData &= ~0x2040; - - // Reset the speed bits based on user selection - switch (speed) { - case TRUEPHY_SPEED_10MBPS: - // Bits already cleared above, do nothing - break; - - case TRUEPHY_SPEED_100MBPS: - // 100M == Set bit 13 - usData |= 0x2000; - break; - - case TRUEPHY_SPEED_1000MBPS: - default: - usData |= 0x0040; - break; - } - - // Write back the new speed - MiWrite(pAdapter, PHY_CONTROL, usData); -} - -void ET1310_PhyAdvertise1000BaseT(struct et131x_adapter *pAdapter, - uint16_t duplex) -{ - uint16_t usData; - - // Read the PHY 1000 Base-T Control Register - MiRead(pAdapter, PHY_1000_CONTROL, &usData); - - // Clear Bits 8,9 - usData &= ~0x0300; - - switch (duplex) { - case TRUEPHY_ADV_DUPLEX_NONE: - // Duplex already cleared, do nothing - break; - - case TRUEPHY_ADV_DUPLEX_FULL: - // Set Bit 9 - usData |= 0x0200; - break; - - case TRUEPHY_ADV_DUPLEX_HALF: - // Set Bit 8 - usData |= 0x0100; - break; - - case TRUEPHY_ADV_DUPLEX_BOTH: - default: - usData |= 0x0300; - break; - } - - // Write back advertisement - MiWrite(pAdapter, PHY_1000_CONTROL, usData); -} - -void ET1310_PhyAdvertise100BaseT(struct et131x_adapter *pAdapter, - uint16_t duplex) -{ - uint16_t usData; - - // Read the Autonegotiation Register (10/100) - MiRead(pAdapter, PHY_AUTO_ADVERTISEMENT, &usData); - - // Clear bits 7,8 - usData &= ~0x0180; - - switch (duplex) { - case TRUEPHY_ADV_DUPLEX_NONE: - // Duplex already cleared, do nothing - break; - - case TRUEPHY_ADV_DUPLEX_FULL: - // Set Bit 8 - usData |= 0x0100; - break; - - case TRUEPHY_ADV_DUPLEX_HALF: - // Set Bit 7 - usData |= 0x0080; - break; - - case TRUEPHY_ADV_DUPLEX_BOTH: - default: - // Set Bits 7,8 - usData |= 0x0180; - break; - } - - // Write back advertisement - MiWrite(pAdapter, PHY_AUTO_ADVERTISEMENT, usData); -} - -void ET1310_PhyAdvertise10BaseT(struct et131x_adapter *pAdapter, - uint16_t duplex) -{ - uint16_t usData; - - // Read the Autonegotiation Register (10/100) - MiRead(pAdapter, PHY_AUTO_ADVERTISEMENT, &usData); - - // Clear bits 5,6 - usData &= ~0x0060; - - switch (duplex) { - case TRUEPHY_ADV_DUPLEX_NONE: - // Duplex already cleared, do nothing - break; - - case TRUEPHY_ADV_DUPLEX_FULL: - // Set Bit 6 - usData |= 0x0040; - break; - - case TRUEPHY_ADV_DUPLEX_HALF: - // Set Bit 5 - usData |= 0x0020; - break; - - case TRUEPHY_ADV_DUPLEX_BOTH: - default: - // Set Bits 5,6 - usData |= 0x0060; - break; - } - - // Write back advertisement - MiWrite(pAdapter, PHY_AUTO_ADVERTISEMENT, usData); -} - -void ET1310_PhyLinkStatus(struct et131x_adapter *pAdapter, - uint8_t *ucLinkStatus, - uint32_t *uiAutoNeg, - uint32_t *uiLinkSpeed, - uint32_t *uiDuplexMode, - uint32_t *uiMdiMdix, - uint32_t *uiMasterSlave, uint32_t *uiPolarity) -{ - uint16_t usMiStatus = 0; - uint16_t us1000BaseT = 0; - uint16_t usVmiPhyStatus = 0; - uint16_t usControl = 0; - - MiRead(pAdapter, PHY_STATUS, &usMiStatus); - MiRead(pAdapter, PHY_1000_STATUS, &us1000BaseT); - MiRead(pAdapter, PHY_PHY_STATUS, &usVmiPhyStatus); - MiRead(pAdapter, PHY_CONTROL, &usControl); - - if (ucLinkStatus) { - *ucLinkStatus = - (unsigned char)((usVmiPhyStatus & 0x0040) ? 1 : 0); - } - - if (uiAutoNeg) { - *uiAutoNeg = - (usControl & 0x1000) ? ((usVmiPhyStatus & 0x0020) ? - TRUEPHY_ANEG_COMPLETE : - TRUEPHY_ANEG_NOT_COMPLETE) : - TRUEPHY_ANEG_DISABLED; - } - - if (uiLinkSpeed) { - *uiLinkSpeed = (usVmiPhyStatus & 0x0300) >> 8; - } - - if (uiDuplexMode) { - *uiDuplexMode = (usVmiPhyStatus & 0x0080) >> 7; - } - - if (uiMdiMdix) { - /* NOTE: Need to complete this */ - *uiMdiMdix = 0; - } - - if (uiMasterSlave) { - *uiMasterSlave = - (us1000BaseT & 0x4000) ? TRUEPHY_CFG_MASTER : - TRUEPHY_CFG_SLAVE; - } - - if (uiPolarity) { - *uiPolarity = - (usVmiPhyStatus & 0x0400) ? TRUEPHY_POLARITY_INVERTED : - TRUEPHY_POLARITY_NORMAL; - } -} - -void ET1310_PhyAndOrReg(struct et131x_adapter *pAdapter, - uint16_t regnum, uint16_t andMask, uint16_t orMask) -{ - uint16_t reg; - - // Read the requested register - MiRead(pAdapter, regnum, ®); - - // Apply the AND mask - reg &= andMask; - - // Apply the OR mask - reg |= orMask; - - // Write the value back to the register - MiWrite(pAdapter, regnum, reg); -} - -void ET1310_PhyAccessMiBit(struct et131x_adapter *pAdapter, uint16_t action, - uint16_t regnum, uint16_t bitnum, uint8_t *value) -{ - uint16_t reg; - uint16_t mask = 0; - - // Create a mask to isolate the requested bit - mask = 0x0001 << bitnum; - - // Read the requested register - MiRead(pAdapter, regnum, ®); - - switch (action) { - case TRUEPHY_BIT_READ: - if (value != NULL) { - *value = (reg & mask) >> bitnum; - } - break; - - case TRUEPHY_BIT_SET: - reg |= mask; - MiWrite(pAdapter, regnum, reg); - break; - - case TRUEPHY_BIT_CLEAR: - reg &= ~mask; - MiWrite(pAdapter, regnum, reg); - break; - - default: - break; - } -} diff --git a/src/et131x/et1310_phy.h b/src/et131x/et1310_phy.h deleted file mode 100644 index d624cbb..0000000 --- a/src/et131x/et1310_phy.h +++ /dev/null @@ -1,910 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_phy.h - Defines, structs, enums, prototypes, etc. pertaining to the - * PHY. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef _ET1310_PHY_H_ -#define _ET1310_PHY_H_ - -#include "et1310_address_map.h" - -#define TRUEPHY_SUCCESS 0 -#define TRUEPHY_FAILURE 1 -typedef void *TRUEPHY_HANDLE; -typedef void *TRUEPHY_PLATFORM_HANDLE; -typedef void *TRUEPHY_OSAL_HANDLE; - -/* MI Register Addresses */ -#define MI_CONTROL_REG 0 -#define MI_STATUS_REG 1 -#define MI_PHY_IDENTIFIER_1_REG 2 -#define MI_PHY_IDENTIFIER_2_REG 3 -#define MI_AUTONEG_ADVERTISEMENT_REG 4 -#define MI_AUTONEG_LINK_PARTNER_ABILITY_REG 5 -#define MI_AUTONEG_EXPANSION_REG 6 -#define MI_AUTONEG_NEXT_PAGE_TRANSMIT_REG 7 -#define MI_LINK_PARTNER_NEXT_PAGE_REG 8 -#define MI_1000BASET_CONTROL_REG 9 -#define MI_1000BASET_STATUS_REG 10 -#define MI_RESERVED11_REG 11 -#define MI_RESERVED12_REG 12 -#define MI_RESERVED13_REG 13 -#define MI_RESERVED14_REG 14 -#define MI_EXTENDED_STATUS_REG 15 - -/* VMI Register Addresses */ -#define VMI_RESERVED16_REG 16 -#define VMI_RESERVED17_REG 17 -#define VMI_RESERVED18_REG 18 -#define VMI_LOOPBACK_CONTROL_REG 19 -#define VMI_RESERVED20_REG 20 -#define VMI_MI_CONTROL_REG 21 -#define VMI_PHY_CONFIGURATION_REG 22 -#define VMI_PHY_CONTROL_REG 23 -#define VMI_INTERRUPT_MASK_REG 24 -#define VMI_INTERRUPT_STATUS_REG 25 -#define VMI_PHY_STATUS_REG 26 -#define VMI_LED_CONTROL_1_REG 27 -#define VMI_LED_CONTROL_2_REG 28 -#define VMI_RESERVED29_REG 29 -#define VMI_RESERVED30_REG 30 -#define VMI_RESERVED31_REG 31 - -/* PHY Register Mapping(MI) Management Interface Regs */ -typedef struct _MI_REGS_t { - u8 bmcr; // Basic mode control reg(Reg 0x00) - u8 bmsr; // Basic mode status reg(Reg 0x01) - u8 idr1; // Phy identifier reg 1(Reg 0x02) - u8 idr2; // Phy identifier reg 2(Reg 0x03) - u8 anar; // Auto-Negotiation advertisement(Reg 0x04) - u8 anlpar; // Auto-Negotiation link Partner Ability(Reg 0x05) - u8 aner; // Auto-Negotiation expansion reg(Reg 0x06) - u8 annptr; // Auto-Negotiation next page transmit reg(Reg 0x07) - u8 lpnpr; // link partner next page reg(Reg 0x08) - u8 gcr; // Gigabit basic mode control reg(Reg 0x09) - u8 gsr; // Gigabit basic mode status reg(Reg 0x0A) - u8 mi_res1[4]; // Future use by MI working group(Reg 0x0B - 0x0E) - u8 esr; // Extended status reg(Reg 0x0F) - u8 mi_res2[3]; // Future use by MI working group(Reg 0x10 - 0x12) - u8 loop_ctl; // Loopback Control Reg(Reg 0x13) - u8 mi_res3; // Future use by MI working group(Reg 0x14) - u8 mcr; // MI Control Reg(Reg 0x15) - u8 pcr; // Configuration Reg(Reg 0x16) - u8 phy_ctl; // PHY Control Reg(Reg 0x17) - u8 imr; // Interrupt Mask Reg(Reg 0x18) - u8 isr; // Interrupt Status Reg(Reg 0x19) - u8 psr; // PHY Status Reg(Reg 0x1A) - u8 lcr1; // LED Control 1 Reg(Reg 0x1B) - u8 lcr2; // LED Control 2 Reg(Reg 0x1C) - u8 mi_res4[3]; // Future use by MI working group(Reg 0x1D - 0x1F) -} MI_REGS_t, *PMI_REGS_t; - -/* MI Register 0: Basic mode control register */ -typedef union _MI_BMCR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 reset:1; // bit 15 - u16 loopback:1; // bit 14 - u16 speed_sel:1; // bit 13 - u16 enable_autoneg:1; // bit 12 - u16 power_down:1; // bit 11 - u16 isolate:1; // bit 10 - u16 restart_autoneg:1; // bit 9 - u16 duplex_mode:1; // bit 8 - u16 col_test:1; // bit 7 - u16 speed_1000_sel:1; // bit 6 - u16 res1:6; // bits 0-5 -#else - u16 res1:6; // bits 0-5 - u16 speed_1000_sel:1; // bit 6 - u16 col_test:1; // bit 7 - u16 duplex_mode:1; // bit 8 - u16 restart_autoneg:1; // bit 9 - u16 isolate:1; // bit 10 - u16 power_down:1; // bit 11 - u16 enable_autoneg:1; // bit 12 - u16 speed_sel:1; // bit 13 - u16 loopback:1; // bit 14 - u16 reset:1; // bit 15 -#endif - } bits; -} MI_BMCR_t, *PMI_BMCR_t; - -/* MI Register 1: Basic mode status register */ -typedef union _MI_BMSR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 link_100T4:1; // bit 15 - u16 link_100fdx:1; // bit 14 - u16 link_100hdx:1; // bit 13 - u16 link_10fdx:1; // bit 12 - u16 link_10hdx:1; // bit 11 - u16 link_100T2fdx:1; // bit 10 - u16 link_100T2hdx:1; // bit 9 - u16 extend_status:1; // bit 8 - u16 res1:1; // bit 7 - u16 preamble_supress:1; // bit 6 - u16 auto_neg_complete:1; // bit 5 - u16 remote_fault:1; // bit 4 - u16 auto_neg_able:1; // bit 3 - u16 link_status:1; // bit 2 - u16 jabber_detect:1; // bit 1 - u16 ext_cap:1; // bit 0 -#else - u16 ext_cap:1; // bit 0 - u16 jabber_detect:1; // bit 1 - u16 link_status:1; // bit 2 - u16 auto_neg_able:1; // bit 3 - u16 remote_fault:1; // bit 4 - u16 auto_neg_complete:1; // bit 5 - u16 preamble_supress:1; // bit 6 - u16 res1:1; // bit 7 - u16 extend_status:1; // bit 8 - u16 link_100T2hdx:1; // bit 9 - u16 link_100T2fdx:1; // bit 10 - u16 link_10hdx:1; // bit 11 - u16 link_10fdx:1; // bit 12 - u16 link_100hdx:1; // bit 13 - u16 link_100fdx:1; // bit 14 - u16 link_100T4:1; // bit 15 -#endif - } bits; -} MI_BMSR_t, *PMI_BMSR_t; - -/* MI Register 2: Physical Identifier 1 */ -typedef union _MI_IDR1_t { - u16 value; - struct { - u16 ieee_address:16; // 0x0282 default(bits 0-15) - } bits; -} MI_IDR1_t, *PMI_IDR1_t; - -/* MI Register 3: Physical Identifier 2 */ -typedef union _MI_IDR2_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 ieee_address:6; // 111100 default(bits 10-15) - u16 model_no:6; // 000001 default(bits 4-9) - u16 rev_no:4; // 0010 default(bits 0-3) -#else - u16 rev_no:4; // 0010 default(bits 0-3) - u16 model_no:6; // 000001 default(bits 4-9) - u16 ieee_address:6; // 111100 default(bits 10-15) -#endif - } bits; -} MI_IDR2_t, *PMI_IDR2_t; - -/* MI Register 4: Auto-negotiation advertisement register */ -typedef union _MI_ANAR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 np_indication:1; // bit 15 - u16 res2:1; // bit 14 - u16 remote_fault:1; // bit 13 - u16 res1:1; // bit 12 - u16 cap_asmpause:1; // bit 11 - u16 cap_pause:1; // bit 10 - u16 cap_100T4:1; // bit 9 - u16 cap_100fdx:1; // bit 8 - u16 cap_100hdx:1; // bit 7 - u16 cap_10fdx:1; // bit 6 - u16 cap_10hdx:1; // bit 5 - u16 selector:5; // bits 0-4 -#else - u16 selector:5; // bits 0-4 - u16 cap_10hdx:1; // bit 5 - u16 cap_10fdx:1; // bit 6 - u16 cap_100hdx:1; // bit 7 - u16 cap_100fdx:1; // bit 8 - u16 cap_100T4:1; // bit 9 - u16 cap_pause:1; // bit 10 - u16 cap_asmpause:1; // bit 11 - u16 res1:1; // bit 12 - u16 remote_fault:1; // bit 13 - u16 res2:1; // bit 14 - u16 np_indication:1; // bit 15 -#endif - } bits; -} MI_ANAR_t, *PMI_ANAR_t; - -/* MI Register 5: Auto-negotiation link partner advertisement register */ -typedef struct _MI_ANLPAR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 np_indication:1; // bit 15 - u16 acknowledge:1; // bit 14 - u16 remote_fault:1; // bit 13 - u16 res1:1; // bit 12 - u16 cap_asmpause:1; // bit 11 - u16 cap_pause:1; // bit 10 - u16 cap_100T4:1; // bit 9 - u16 cap_100fdx:1; // bit 8 - u16 cap_100hdx:1; // bit 7 - u16 cap_10fdx:1; // bit 6 - u16 cap_10hdx:1; // bit 5 - u16 selector:5; // bits 0-4 -#else - u16 selector:5; // bits 0-4 - u16 cap_10hdx:1; // bit 5 - u16 cap_10fdx:1; // bit 6 - u16 cap_100hdx:1; // bit 7 - u16 cap_100fdx:1; // bit 8 - u16 cap_100T4:1; // bit 9 - u16 cap_pause:1; // bit 10 - u16 cap_asmpause:1; // bit 11 - u16 res1:1; // bit 12 - u16 remote_fault:1; // bit 13 - u16 acknowledge:1; // bit 14 - u16 np_indication:1; // bit 15 -#endif - } bits; -} MI_ANLPAR_t, *PMI_ANLPAR_t; - -/* MI Register 6: Auto-negotiation expansion register */ -typedef union _MI_ANER_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 res:11; // bits 5-15 - u16 pdf:1; // bit 4 - u16 lp_np_able:1; // bit 3 - u16 np_able:1; // bit 2 - u16 page_rx:1; // bit 1 - u16 lp_an_able:1; // bit 0 -#else - u16 lp_an_able:1; // bit 0 - u16 page_rx:1; // bit 1 - u16 np_able:1; // bit 2 - u16 lp_np_able:1; // bit 3 - u16 pdf:1; // bit 4 - u16 res:11; // bits 5-15 -#endif - } bits; -} MI_ANER_t, *PMI_ANER_t; - -/* MI Register 7: Auto-negotiation next page transmit reg(0x07) */ -typedef union _MI_ANNPTR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 np:1; // bit 15 - u16 res1:1; // bit 14 - u16 msg_page:1; // bit 13 - u16 ack2:1; // bit 12 - u16 toggle:1; // bit 11 - u16 msg:11; // bits 0-10 -#else - u16 msg:11; // bits 0-10 - u16 toggle:1; // bit 11 - u16 ack2:1; // bit 12 - u16 msg_page:1; // bit 13 - u16 res1:1; // bit 14 - u16 np:1; // bit 15 -#endif - } bits; -} MI_ANNPTR_t, *PMI_ANNPTR_t; - -/* MI Register 8: Link Partner Next Page Reg(0x08) */ -typedef union _MI_LPNPR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 np:1; // bit 15 - u16 ack:1; // bit 14 - u16 msg_page:1; // bit 13 - u16 ack2:1; // bit 12 - u16 toggle:1; // bit 11 - u16 msg:11; // bits 0-10 -#else - u16 msg:11; // bits 0-10 - u16 toggle:1; // bit 11 - u16 ack2:1; // bit 12 - u16 msg_page:1; // bit 13 - u16 ack:1; // bit 14 - u16 np:1; // bit 15 -#endif - } bits; -} MI_LPNPR_t, *PMI_LPNPR_t; - -/* MI Register 9: 1000BaseT Control Reg(0x09) */ -typedef union _MI_GCR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 test_mode:3; // bits 13-15 - u16 ms_config_en:1; // bit 12 - u16 ms_value:1; // bit 11 - u16 port_type:1; // bit 10 - u16 link_1000fdx:1; // bit 9 - u16 link_1000hdx:1; // bit 8 - u16 res:8; // bit 0-7 -#else - u16 res:8; // bit 0-7 - u16 link_1000hdx:1; // bit 8 - u16 link_1000fdx:1; // bit 9 - u16 port_type:1; // bit 10 - u16 ms_value:1; // bit 11 - u16 ms_config_en:1; // bit 12 - u16 test_mode:3; // bits 13-15 -#endif - } bits; -} MI_GCR_t, *PMI_GCR_t; - -/* MI Register 10: 1000BaseT Status Reg(0x0A) */ -typedef union _MI_GSR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 ms_config_fault:1; // bit 15 - u16 ms_resolve:1; // bit 14 - u16 local_rx_status:1; // bit 13 - u16 remote_rx_status:1; // bit 12 - u16 link_1000fdx:1; // bit 11 - u16 link_1000hdx:1; // bit 10 - u16 res:2; // bits 8-9 - u16 idle_err_cnt:8; // bits 0-7 -#else - u16 idle_err_cnt:8; // bits 0-7 - u16 res:2; // bits 8-9 - u16 link_1000hdx:1; // bit 10 - u16 link_1000fdx:1; // bit 11 - u16 remote_rx_status:1; // bit 12 - u16 local_rx_status:1; // bit 13 - u16 ms_resolve:1; // bit 14 - u16 ms_config_fault:1; // bit 15 -#endif - } bits; -} MI_GSR_t, *PMI_GSR_t; - -/* MI Register 11 - 14: Reserved Regs(0x0B - 0x0E) */ -typedef union _MI_RES_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 res15:1; // bit 15 - u16 res14:1; // bit 14 - u16 res13:1; // bit 13 - u16 res12:1; // bit 12 - u16 res11:1; // bit 11 - u16 res10:1; // bit 10 - u16 res9:1; // bit 9 - u16 res8:1; // bit 8 - u16 res7:1; // bit 7 - u16 res6:1; // bit 6 - u16 res5:1; // bit 5 - u16 res4:1; // bit 4 - u16 res3:1; // bit 3 - u16 res2:1; // bit 2 - u16 res1:1; // bit 1 - u16 res0:1; // bit 0 -#else - u16 res0:1; // bit 0 - u16 res1:1; // bit 1 - u16 res2:1; // bit 2 - u16 res3:1; // bit 3 - u16 res4:1; // bit 4 - u16 res5:1; // bit 5 - u16 res6:1; // bit 6 - u16 res7:1; // bit 7 - u16 res8:1; // bit 8 - u16 res9:1; // bit 9 - u16 res10:1; // bit 10 - u16 res11:1; // bit 11 - u16 res12:1; // bit 12 - u16 res13:1; // bit 13 - u16 res14:1; // bit 14 - u16 res15:1; // bit 15 -#endif - } bits; -} MI_RES_t, *PMI_RES_t; - -/* MI Register 15: Extended status Reg(0x0F) */ -typedef union _MI_ESR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 link_1000Xfdx:1; // bit 15 - u16 link_1000Xhdx:1; // bit 14 - u16 link_1000fdx:1; // bit 13 - u16 link_1000hdx:1; // bit 12 - u16 res:12; // bit 0-11 -#else - u16 res:12; // bit 0-11 - u16 link_1000hdx:1; // bit 12 - u16 link_1000fdx:1; // bit 13 - u16 link_1000Xhdx:1; // bit 14 - u16 link_1000Xfdx:1; // bit 15 -#endif - } bits; -} MI_ESR_t, *PMI_ESR_t; - -/* MI Register 16 - 18: Reserved Reg(0x10-0x12) */ - -/* MI Register 19: Loopback Control Reg(0x13) */ -typedef union _MI_LCR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 mii_en:1; // bit 15 - u16 pcs_en:1; // bit 14 - u16 pmd_en:1; // bit 13 - u16 all_digital_en:1; // bit 12 - u16 replica_en:1; // bit 11 - u16 line_driver_en:1; // bit 10 - u16 res:10; // bit 0-9 -#else - u16 res:10; // bit 0-9 - u16 line_driver_en:1; // bit 10 - u16 replica_en:1; // bit 11 - u16 all_digital_en:1; // bit 12 - u16 pmd_en:1; // bit 13 - u16 pcs_en:1; // bit 14 - u16 mii_en:1; // bit 15 -#endif - } bits; -} MI_LCR_t, *PMI_LCR_t; - -/* MI Register 20: Reserved Reg(0x14) */ - -/* MI Register 21: Management Interface Control Reg(0x15) */ -typedef union _MI_MICR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 res1:5; // bits 11-15 - u16 mi_error_count:7; // bits 4-10 - u16 res2:1; // bit 3 - u16 ignore_10g_fr:1; // bit 2 - u16 res3:1; // bit 1 - u16 preamble_supress_en:1; // bit 0 -#else - u16 preamble_supress_en:1; // bit 0 - u16 res3:1; // bit 1 - u16 ignore_10g_fr:1; // bit 2 - u16 res2:1; // bit 3 - u16 mi_error_count:7; // bits 4-10 - u16 res1:5; // bits 11-15 -#endif - } bits; -} MI_MICR_t, *PMI_MICR_t; - -/* MI Register 22: PHY Configuration Reg(0x16) */ -typedef union _MI_PHY_CONFIG_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 crs_tx_en:1; // bit 15 - u16 res1:1; // bit 14 - u16 tx_fifo_depth:2; // bits 12-13 - u16 speed_downshift:2; // bits 10-11 - u16 pbi_detect:1; // bit 9 - u16 tbi_rate:1; // bit 8 - u16 alternate_np:1; // bit 7 - u16 group_mdio_en:1; // bit 6 - u16 tx_clock_en:1; // bit 5 - u16 sys_clock_en:1; // bit 4 - u16 res2:1; // bit 3 - u16 mac_if_mode:3; // bits 0-2 -#else - u16 mac_if_mode:3; // bits 0-2 - u16 res2:1; // bit 3 - u16 sys_clock_en:1; // bit 4 - u16 tx_clock_en:1; // bit 5 - u16 group_mdio_en:1; // bit 6 - u16 alternate_np:1; // bit 7 - u16 tbi_rate:1; // bit 8 - u16 pbi_detect:1; // bit 9 - u16 speed_downshift:2; // bits 10-11 - u16 tx_fifo_depth:2; // bits 12-13 - u16 res1:1; // bit 14 - u16 crs_tx_en:1; // bit 15 -#endif - } bits; -} MI_PHY_CONFIG_t, *PMI_PHY_CONFIG_t; - -/* MI Register 23: PHY CONTROL Reg(0x17) */ -typedef union _MI_PHY_CONTROL_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 res1:1; // bit 15 - u16 tdr_en:1; // bit 14 - u16 res2:1; // bit 13 - u16 downshift_attempts:2; // bits 11-12 - u16 res3:5; // bit 6-10 - u16 jabber_10baseT:1; // bit 5 - u16 sqe_10baseT:1; // bit 4 - u16 tp_loopback_10baseT:1; // bit 3 - u16 preamble_gen_en:1; // bit 2 - u16 res4:1; // bit 1 - u16 force_int:1; // bit 0 -#else - u16 force_int:1; // bit 0 - u16 res4:1; // bit 1 - u16 preamble_gen_en:1; // bit 2 - u16 tp_loopback_10baseT:1; // bit 3 - u16 sqe_10baseT:1; // bit 4 - u16 jabber_10baseT:1; // bit 5 - u16 res3:5; // bit 6-10 - u16 downshift_attempts:2; // bits 11-12 - u16 res2:1; // bit 13 - u16 tdr_en:1; // bit 14 - u16 res1:1; // bit 15 -#endif - } bits; -} MI_PHY_CONTROL_t, *PMI_PHY_CONTROL_t; - -/* MI Register 24: Interrupt Mask Reg(0x18) */ -typedef union _MI_IMR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 res1:6; // bits 10-15 - u16 mdio_sync_lost:1; // bit 9 - u16 autoneg_status:1; // bit 8 - u16 hi_bit_err:1; // bit 7 - u16 np_rx:1; // bit 6 - u16 err_counter_full:1; // bit 5 - u16 fifo_over_underflow:1; // bit 4 - u16 rx_status:1; // bit 3 - u16 link_status:1; // bit 2 - u16 automatic_speed:1; // bit 1 - u16 int_en:1; // bit 0 -#else - u16 int_en:1; // bit 0 - u16 automatic_speed:1; // bit 1 - u16 link_status:1; // bit 2 - u16 rx_status:1; // bit 3 - u16 fifo_over_underflow:1; // bit 4 - u16 err_counter_full:1; // bit 5 - u16 np_rx:1; // bit 6 - u16 hi_bit_err:1; // bit 7 - u16 autoneg_status:1; // bit 8 - u16 mdio_sync_lost:1; // bit 9 - u16 res1:6; // bits 10-15 -#endif - } bits; -} MI_IMR_t, *PMI_IMR_t; - -/* MI Register 25: Interrupt Status Reg(0x19) */ -typedef union _MI_ISR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 res1:6; // bits 10-15 - u16 mdio_sync_lost:1; // bit 9 - u16 autoneg_status:1; // bit 8 - u16 hi_bit_err:1; // bit 7 - u16 np_rx:1; // bit 6 - u16 err_counter_full:1; // bit 5 - u16 fifo_over_underflow:1; // bit 4 - u16 rx_status:1; // bit 3 - u16 link_status:1; // bit 2 - u16 automatic_speed:1; // bit 1 - u16 int_en:1; // bit 0 -#else - u16 int_en:1; // bit 0 - u16 automatic_speed:1; // bit 1 - u16 link_status:1; // bit 2 - u16 rx_status:1; // bit 3 - u16 fifo_over_underflow:1; // bit 4 - u16 err_counter_full:1; // bit 5 - u16 np_rx:1; // bit 6 - u16 hi_bit_err:1; // bit 7 - u16 autoneg_status:1; // bit 8 - u16 mdio_sync_lost:1; // bit 9 - u16 res1:6; // bits 10-15 -#endif - } bits; -} MI_ISR_t, *PMI_ISR_t; - -/* MI Register 26: PHY Status Reg(0x1A) */ -typedef union _MI_PSR_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 res1:1; // bit 15 - u16 autoneg_fault:2; // bit 13-14 - u16 autoneg_status:1; // bit 12 - u16 mdi_x_status:1; // bit 11 - u16 polarity_status:1; // bit 10 - u16 speed_status:2; // bits 8-9 - u16 duplex_status:1; // bit 7 - u16 link_status:1; // bit 6 - u16 tx_status:1; // bit 5 - u16 rx_status:1; // bit 4 - u16 collision_status:1; // bit 3 - u16 autoneg_en:1; // bit 2 - u16 pause_en:1; // bit 1 - u16 asymmetric_dir:1; // bit 0 -#else - u16 asymmetric_dir:1; // bit 0 - u16 pause_en:1; // bit 1 - u16 autoneg_en:1; // bit 2 - u16 collision_status:1; // bit 3 - u16 rx_status:1; // bit 4 - u16 tx_status:1; // bit 5 - u16 link_status:1; // bit 6 - u16 duplex_status:1; // bit 7 - u16 speed_status:2; // bits 8-9 - u16 polarity_status:1; // bit 10 - u16 mdi_x_status:1; // bit 11 - u16 autoneg_status:1; // bit 12 - u16 autoneg_fault:2; // bit 13-14 - u16 res1:1; // bit 15 -#endif - } bits; -} MI_PSR_t, *PMI_PSR_t; - -/* MI Register 27: LED Control Reg 1(0x1B) */ -typedef union _MI_LCR1_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 res1:2; // bits 14-15 - u16 led_dup_indicate:2; // bits 12-13 - u16 led_10baseT:2; // bits 10-11 - u16 led_collision:2; // bits 8-9 - u16 res2:2; // bits 6-7 - u16 res3:2; // bits 4-5 - u16 pulse_dur:2; // bits 2-3 - u16 pulse_stretch1:1; // bit 1 - u16 pulse_stretch0:1; // bit 0 -#else - u16 pulse_stretch0:1; // bit 0 - u16 pulse_stretch1:1; // bit 1 - u16 pulse_dur:2; // bits 2-3 - u16 res3:2; // bits 4-5 - u16 res2:2; // bits 6-7 - u16 led_collision:2; // bits 8-9 - u16 led_10baseT:2; // bits 10-11 - u16 led_dup_indicate:2; // bits 12-13 - u16 res1:2; // bits 14-15 -#endif - } bits; -} MI_LCR1_t, *PMI_LCR1_t; - -/* MI Register 28: LED Control Reg 2(0x1C) */ -typedef union _MI_LCR2_t { - u16 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u16 led_link:4; // bits 12-15 - u16 led_tx_rx:4; // bits 8-11 - u16 led_100BaseTX:4; // bits 4-7 - u16 led_1000BaseT:4; // bits 0-3 -#else - u16 led_1000BaseT:4; // bits 0-3 - u16 led_100BaseTX:4; // bits 4-7 - u16 led_tx_rx:4; // bits 8-11 - u16 led_link:4; // bits 12-15 -#endif - } bits; -} MI_LCR2_t, *PMI_LCR2_t; - -/* MI Register 29 - 31: Reserved Reg(0x1D - 0x1E) */ - -/* TruePHY headers */ -typedef struct _TRUEPHY_ACCESS_MI_REGS_ { - TRUEPHY_HANDLE hTruePhy; - int32_t nPhyId; - u8 bReadWrite; - u8 *pbyRegs; - u8 *pwData; - int32_t nRegCount; -} TRUEPHY_ACCESS_MI_REGS, *PTRUEPHY_ACCESS_MI_REGS; - -/* TruePHY headers */ -typedef struct _TAG_TPAL_ACCESS_MI_REGS_ { - u32 nPhyId; - u8 bReadWrite; - u32 nRegCount; - u16 Data[4096]; - u8 Regs[4096]; -} TPAL_ACCESS_MI_REGS, *PTPAL_ACCESS_MI_REGS; - - -typedef TRUEPHY_HANDLE TPAL_HANDLE; - -/* Forward declaration of the private adapter structure */ -struct et131x_adapter; - -/* OS Specific Functions*/ -void TPAL_SetPhy10HalfDuplex(struct et131x_adapter *adapter); -void TPAL_SetPhy10FullDuplex(struct et131x_adapter *adapter); -void TPAL_SetPhy10Force(struct et131x_adapter *pAdapter); -void TPAL_SetPhy100HalfDuplex(struct et131x_adapter *adapter); -void TPAL_SetPhy100FullDuplex(struct et131x_adapter *adapter); -void TPAL_SetPhy100Force(struct et131x_adapter *pAdapter); -void TPAL_SetPhy1000FullDuplex(struct et131x_adapter *adapter); -void TPAL_SetPhyAutoNeg(struct et131x_adapter *adapter); - -/* Prototypes for ET1310_phy.c */ -int et131x_xcvr_find(struct et131x_adapter *adapter); -int et131x_setphy_normal(struct et131x_adapter *adapter); -int32_t PhyMiRead(struct et131x_adapter *adapter, - u8 xcvrAddr, u8 xcvrReg, u16 *value); - -/* static inline function does not work because et131x_adapter is not always - * defined - */ -#define MiRead(adapter, xcvrReg, value) \ - PhyMiRead((adapter), (adapter)->Stats.xcvr_addr, (xcvrReg), (value)) - -int32_t MiWrite(struct et131x_adapter *adapter, - u8 xcvReg, u16 value); -void et131x_Mii_check(struct et131x_adapter *pAdapter, - MI_BMSR_t bmsr, MI_BMSR_t bmsr_ints); - -/* This last is not strictly required (the driver could call the TPAL - * version instead), but this sets the adapter up correctly, and calls the - * access routine indirectly. This protects the driver from changes in TPAL. - */ -void SetPhy_10BaseTHalfDuplex(struct et131x_adapter *adapter); - -/* Defines for PHY access routines */ - -// Define bit operation flags -#define TRUEPHY_BIT_CLEAR 0 -#define TRUEPHY_BIT_SET 1 -#define TRUEPHY_BIT_READ 2 - -// Define read/write operation flags -#ifndef TRUEPHY_READ -#define TRUEPHY_READ 0 -#define TRUEPHY_WRITE 1 -#define TRUEPHY_MASK 2 -#endif - -// Define speeds -#define TRUEPHY_SPEED_10MBPS 0 -#define TRUEPHY_SPEED_100MBPS 1 -#define TRUEPHY_SPEED_1000MBPS 2 - -// Define duplex modes -#define TRUEPHY_DUPLEX_HALF 0 -#define TRUEPHY_DUPLEX_FULL 1 - -// Define master/slave configuration values -#define TRUEPHY_CFG_SLAVE 0 -#define TRUEPHY_CFG_MASTER 1 - -// Define MDI/MDI-X settings -#define TRUEPHY_MDI 0 -#define TRUEPHY_MDIX 1 -#define TRUEPHY_AUTO_MDI_MDIX 2 - -// Define 10Base-T link polarities -#define TRUEPHY_POLARITY_NORMAL 0 -#define TRUEPHY_POLARITY_INVERTED 1 - -// Define auto-negotiation results -#define TRUEPHY_ANEG_NOT_COMPLETE 0 -#define TRUEPHY_ANEG_COMPLETE 1 -#define TRUEPHY_ANEG_DISABLED 2 - -/* Define duplex advertisment flags */ -#define TRUEPHY_ADV_DUPLEX_NONE 0x00 -#define TRUEPHY_ADV_DUPLEX_FULL 0x01 -#define TRUEPHY_ADV_DUPLEX_HALF 0x02 -#define TRUEPHY_ADV_DUPLEX_BOTH \ - (TRUEPHY_ADV_DUPLEX_FULL | TRUEPHY_ADV_DUPLEX_HALF) - -#define PHY_CONTROL 0x00 //#define TRU_MI_CONTROL_REGISTER 0 -#define PHY_STATUS 0x01 //#define TRU_MI_STATUS_REGISTER 1 -#define PHY_ID_1 0x02 //#define TRU_MI_PHY_IDENTIFIER_1_REGISTER 2 -#define PHY_ID_2 0x03 //#define TRU_MI_PHY_IDENTIFIER_2_REGISTER 3 -#define PHY_AUTO_ADVERTISEMENT 0x04 //#define TRU_MI_ADVERTISEMENT_REGISTER 4 -#define PHY_AUTO_LINK_PARTNER 0x05 //#define TRU_MI_LINK_PARTNER_ABILITY_REGISTER 5 -#define PHY_AUTO_EXPANSION 0x06 //#define TRU_MI_EXPANSION_REGISTER 6 -#define PHY_AUTO_NEXT_PAGE_TX 0x07 //#define TRU_MI_NEXT_PAGE_TRANSMIT_REGISTER 7 -#define PHY_LINK_PARTNER_NEXT_PAGE 0x08 //#define TRU_MI_LINK_PARTNER_NEXT_PAGE_REGISTER 8 -#define PHY_1000_CONTROL 0x09 //#define TRU_MI_1000BASET_CONTROL_REGISTER 9 -#define PHY_1000_STATUS 0x0A //#define TRU_MI_1000BASET_STATUS_REGISTER 10 - -#define PHY_EXTENDED_STATUS 0x0F //#define TRU_MI_EXTENDED_STATUS_REGISTER 15 - -// some defines for modem registers that seem to be 'reserved' -#define PHY_INDEX_REG 0x10 -#define PHY_DATA_REG 0x11 - -#define PHY_MPHY_CONTROL_REG 0x12 //#define TRU_VMI_MPHY_CONTROL_REGISTER 18 - -#define PHY_LOOPBACK_CONTROL 0x13 //#define TRU_VMI_LOOPBACK_CONTROL_1_REGISTER 19 - //#define TRU_VMI_LOOPBACK_CONTROL_2_REGISTER 20 -#define PHY_REGISTER_MGMT_CONTROL 0x15 //#define TRU_VMI_MI_SEQ_CONTROL_REGISTER 21 -#define PHY_CONFIG 0x16 //#define TRU_VMI_CONFIGURATION_REGISTER 22 -#define PHY_PHY_CONTROL 0x17 //#define TRU_VMI_PHY_CONTROL_REGISTER 23 -#define PHY_INTERRUPT_MASK 0x18 //#define TRU_VMI_INTERRUPT_MASK_REGISTER 24 -#define PHY_INTERRUPT_STATUS 0x19 //#define TRU_VMI_INTERRUPT_STATUS_REGISTER 25 -#define PHY_PHY_STATUS 0x1A //#define TRU_VMI_PHY_STATUS_REGISTER 26 -#define PHY_LED_1 0x1B //#define TRU_VMI_LED_CONTROL_1_REGISTER 27 -#define PHY_LED_2 0x1C //#define TRU_VMI_LED_CONTROL_2_REGISTER 28 - //#define TRU_VMI_LINK_CONTROL_REGISTER 29 - //#define TRU_VMI_TIMING_CONTROL_REGISTER - -/* Prototypes for PHY access routines */ -void ET1310_PhyInit(struct et131x_adapter *adapter); -void ET1310_PhyReset(struct et131x_adapter *adapter); -void ET1310_PhyPowerDown(struct et131x_adapter *adapter, bool down); -void ET1310_PhyAutoNeg(struct et131x_adapter *adapter, bool enable); -void ET1310_PhyDuplexMode(struct et131x_adapter *adapter, u16 duplex); -void ET1310_PhySpeedSelect(struct et131x_adapter *adapter, u16 speed); -void ET1310_PhyAdvertise1000BaseT(struct et131x_adapter *adapter, - u16 duplex); -void ET1310_PhyAdvertise100BaseT(struct et131x_adapter *adapter, - u16 duplex); -void ET1310_PhyAdvertise10BaseT(struct et131x_adapter *adapter, - u16 duplex); -void ET1310_PhyLinkStatus(struct et131x_adapter *adapter, - u8 *ucLinkStatus, - u32 *uiAutoNeg, - u32 *uiLinkSpeed, - u32 *uiDuplexMode, - u32 *uiMdiMdix, - u32 *uiMasterSlave, u32 *uiPolarity); -void ET1310_PhyAndOrReg(struct et131x_adapter *adapter, - u16 regnum, u16 andMask, u16 orMask); -void ET1310_PhyAccessMiBit(struct et131x_adapter *adapter, - u16 action, - u16 regnum, u16 bitnum, u8 *value); - -#endif /* _ET1310_PHY_H_ */ diff --git a/src/et131x/et1310_pm.c b/src/et131x/et1310_pm.c deleted file mode 100644 index 9539bc6..0000000 --- a/src/et131x/et1310_pm.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_pm.c - All power management related code (not completely implemented) - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" -#include "et1310_mac.h" -#include "et1310_rx.h" - -#include "et131x_adapter.h" -#include "et131x_initpci.h" - -/* Data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -extern dbg_info_t *et131x_dbginfo; -#endif /* CONFIG_ET131X_DEBUG */ - -/** - * EnablePhyComa - called when network cable is unplugged - * @pAdapter: pointer to our adapter structure - * - * driver receive an phy status change interrupt while in D0 and check that - * phy_status is down. - * - * -- gate off JAGCore; - * -- set gigE PHY in Coma mode - * -- wake on phy_interrupt; Perform software reset JAGCore, - * re-initialize jagcore and gigE PHY - * - * Add D0-ASPM-PhyLinkDown Support: - * -- while in D0, when there is a phy_interrupt indicating phy link - * down status, call the MPSetPhyComa routine to enter this active - * state power saving mode - * -- while in D0-ASPM-PhyLinkDown mode, when there is a phy_interrupt - * indicating linkup status, call the MPDisablePhyComa routine to - * restore JAGCore and gigE PHY - */ -void EnablePhyComa(struct et131x_adapter *pAdapter) -{ - unsigned long lockflags; - PM_CSR_t GlobalPmCSR; - int32_t LoopCounter = 10; - - DBG_ENTER(et131x_dbginfo); - - GlobalPmCSR.value = readl(&pAdapter->CSRAddress->global.pm_csr.value); - - /* Save the GbE PHY speed and duplex modes. Need to restore this - * when cable is plugged back in - */ - pAdapter->PoMgmt.PowerDownSpeed = pAdapter->AiForceSpeed; - pAdapter->PoMgmt.PowerDownDuplex = pAdapter->AiForceDpx; - - /* Stop sending packets. */ - spin_lock_irqsave(&pAdapter->SendHWLock, lockflags); - MP_SET_FLAG(pAdapter, fMP_ADAPTER_LOWER_POWER); - spin_unlock_irqrestore(&pAdapter->SendHWLock, lockflags); - - /* Wait for outstanding Receive packets */ - while ((MP_GET_RCV_REF(pAdapter) != 0) && (LoopCounter-- > 0)) { - mdelay(2); - } - - /* Gate off JAGCore 3 clock domains */ - GlobalPmCSR.bits.pm_sysclk_gate = 0; - GlobalPmCSR.bits.pm_txclk_gate = 0; - GlobalPmCSR.bits.pm_rxclk_gate = 0; - writel(GlobalPmCSR.value, &pAdapter->CSRAddress->global.pm_csr.value); - - /* Program gigE PHY in to Coma mode */ - GlobalPmCSR.bits.pm_phy_sw_coma = 1; - writel(GlobalPmCSR.value, &pAdapter->CSRAddress->global.pm_csr.value); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * DisablePhyComa - Disable the Phy Coma Mode - * @pAdapter: pointer to our adapter structure - */ -void DisablePhyComa(struct et131x_adapter *pAdapter) -{ - PM_CSR_t GlobalPmCSR; - - DBG_ENTER(et131x_dbginfo); - - GlobalPmCSR.value = readl(&pAdapter->CSRAddress->global.pm_csr.value); - - /* Disable phy_sw_coma register and re-enable JAGCore clocks */ - GlobalPmCSR.bits.pm_sysclk_gate = 1; - GlobalPmCSR.bits.pm_txclk_gate = 1; - GlobalPmCSR.bits.pm_rxclk_gate = 1; - GlobalPmCSR.bits.pm_phy_sw_coma = 0; - writel(GlobalPmCSR.value, &pAdapter->CSRAddress->global.pm_csr.value); - - /* Restore the GbE PHY speed and duplex modes; - * Reset JAGCore; re-configure and initialize JAGCore and gigE PHY - */ - pAdapter->AiForceSpeed = pAdapter->PoMgmt.PowerDownSpeed; - pAdapter->AiForceDpx = pAdapter->PoMgmt.PowerDownDuplex; - - /* Re-initialize the send structures */ - et131x_init_send(pAdapter); - - /* Reset the RFD list and re-start RU */ - et131x_reset_recv(pAdapter); - - /* Bring the device back to the state it was during init prior to - * autonegotiation being complete. This way, when we get the auto-neg - * complete interrupt, we can complete init by calling ConfigMacREGS2. - */ - et131x_soft_reset(pAdapter); - - /* setup et1310 as per the documentation ?? */ - et131x_adapter_setup(pAdapter); - - /* Allow Tx to restart */ - MP_CLEAR_FLAG(pAdapter, fMP_ADAPTER_LOWER_POWER); - - /* Need to re-enable Rx. */ - et131x_rx_dma_enable(pAdapter); - - DBG_LEAVE(et131x_dbginfo); -} - diff --git a/src/et131x/et1310_pm.h b/src/et131x/et1310_pm.h deleted file mode 100644 index 6802338..0000000 --- a/src/et131x/et1310_pm.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_pm.h - Defines, structs, enums, prototypes, etc. pertaining to power - * management. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef _ET1310_PM_H_ -#define _ET1310_PM_H_ - -#include "et1310_address_map.h" - -#define MAX_WOL_PACKET_SIZE 0x80 -#define MAX_WOL_MASK_SIZE ( MAX_WOL_PACKET_SIZE / 8 ) -#define NUM_WOL_PATTERNS 0x5 -#define CRC16_POLY 0x1021 - -/* Definition of NDIS_DEVICE_POWER_STATE */ -typedef enum { - NdisDeviceStateUnspecified = 0, - NdisDeviceStateD0, - NdisDeviceStateD1, - NdisDeviceStateD2, - NdisDeviceStateD3 -} NDIS_DEVICE_POWER_STATE; - -typedef struct _MP_POWER_MGMT { - /* variable putting the phy into coma mode when boot up with no cable - * plugged in after 5 seconds - */ - u8 TransPhyComaModeOnBoot; - - /* Array holding the five CRC values that the device is currently - * using for WOL. This will be queried when a pattern is to be - * removed. - */ - u32 localWolAndCrc0; - u16 WOLPatternList[NUM_WOL_PATTERNS]; - u8 WOLMaskList[NUM_WOL_PATTERNS][MAX_WOL_MASK_SIZE]; - u32 WOLMaskSize[NUM_WOL_PATTERNS]; - - /* IP address */ - union { - u32 u32; - u8 u8[4]; - } IPAddress; - - /* Current Power state of the adapter. */ - NDIS_DEVICE_POWER_STATE PowerState; - bool WOLState; - bool WOLEnabled; - bool Failed10Half; - bool bFailedStateTransition; - - /* Next two used to save power information at power down. This - * information will be used during power up to set up parts of Power - * Management in JAGCore - */ - u32 tx_en; - u32 rx_en; - u16 PowerDownSpeed; - u8 PowerDownDuplex; -} MP_POWER_MGMT, *PMP_POWER_MGMT; - -/* Forward declaration of the private adapter structure - * ( IS THERE A WAY TO DO THIS WITH A TYPEDEF??? ) - */ -struct et131x_adapter; - -u16 CalculateCCITCRC16(u8 *Pattern, u8 *Mask, u32 MaskSize); -void EnablePhyComa(struct et131x_adapter *adapter); -void DisablePhyComa(struct et131x_adapter *adapter); - -#endif /* _ET1310_PM_H_ */ diff --git a/src/et131x/et1310_rx.c b/src/et131x/et1310_rx.c deleted file mode 100644 index ec98da5..0000000 --- a/src/et131x/et1310_rx.c +++ /dev/null @@ -1,1391 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_rx.c - Routines used to perform data reception - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/pci.h> -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" - -#include "et131x_adapter.h" -#include "et131x_initpci.h" - -#include "et1310_rx.h" - -/* Data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -extern dbg_info_t *et131x_dbginfo; -#endif /* CONFIG_ET131X_DEBUG */ - - -void nic_return_rfd(struct et131x_adapter *pAdapter, PMP_RFD pMpRfd); - -/** - * et131x_rx_dma_memory_alloc - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success and errno on failure (as defined in errno.h) - * - * Allocates Free buffer ring 1 for sure, free buffer ring 0 if required, - * and the Packet Status Ring. - */ -int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter) -{ - uint32_t OuterLoop, InnerLoop; - uint32_t bufsize; - uint32_t pktStatRingSize, FBRChunkSize; - RX_RING_t *rx_ring; - - DBG_ENTER(et131x_dbginfo); - - /* Setup some convenience pointers */ - rx_ring = (RX_RING_t *) & adapter->RxRing; - - /* Alloc memory for the lookup table */ -#ifdef USE_FBR0 - rx_ring->Fbr[0] = kmalloc(sizeof(FBRLOOKUPTABLE), GFP_KERNEL); -#endif - - rx_ring->Fbr[1] = kmalloc(sizeof(FBRLOOKUPTABLE), GFP_KERNEL); - - /* The first thing we will do is configure the sizes of the buffer - * rings. These will change based on jumbo packet support. Larger - * jumbo packets increases the size of each entry in FBR0, and the - * number of entries in FBR0, while at the same time decreasing the - * number of entries in FBR1. - * - * FBR1 holds "large" frames, FBR0 holds "small" frames. If FBR1 - * entries are huge in order to accomodate a "jumbo" frame, then it - * will have less entries. Conversely, FBR1 will now be relied upon - * to carry more "normal" frames, thus it's entry size also increases - * and the number of entries goes up too (since it now carries - * "small" + "regular" packets. - * - * In this scheme, we try to maintain 512 entries between the two - * rings. Also, FBR1 remains a constant size - when it's size doubles - * the number of entries halves. FBR0 increases in size, however. - */ - - if (adapter->RegistryJumboPacket < 2048) { -#ifdef USE_FBR0 - rx_ring->Fbr0BufferSize = 256; - rx_ring->Fbr0NumEntries = 512; -#endif - rx_ring->Fbr1BufferSize = 2048; - rx_ring->Fbr1NumEntries = 512; - } else if (adapter->RegistryJumboPacket < 4096) { -#ifdef USE_FBR0 - rx_ring->Fbr0BufferSize = 512; - rx_ring->Fbr0NumEntries = 1024; -#endif - rx_ring->Fbr1BufferSize = 4096; - rx_ring->Fbr1NumEntries = 512; - } else { -#ifdef USE_FBR0 - rx_ring->Fbr0BufferSize = 1024; - rx_ring->Fbr0NumEntries = 768; -#endif - rx_ring->Fbr1BufferSize = 16384; - rx_ring->Fbr1NumEntries = 128; - } - -#ifdef USE_FBR0 - adapter->RxRing.PsrNumEntries = adapter->RxRing.Fbr0NumEntries + - adapter->RxRing.Fbr1NumEntries; -#else - adapter->RxRing.PsrNumEntries = adapter->RxRing.Fbr1NumEntries; -#endif - - /* Allocate an area of memory for Free Buffer Ring 1 */ - bufsize = (sizeof(FBR_DESC_t) * rx_ring->Fbr1NumEntries) + 0xfff; - rx_ring->pFbr1RingVa = pci_alloc_consistent(adapter->pdev, - bufsize, - &rx_ring->pFbr1RingPa); - if (!rx_ring->pFbr1RingVa) { - DBG_ERROR(et131x_dbginfo, - "Cannot alloc memory for Free Buffer Ring 1\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - /* Save physical address - * - * NOTE: pci_alloc_consistent(), used above to alloc DMA regions, - * ALWAYS returns SAC (32-bit) addresses. If DAC (64-bit) addresses - * are ever returned, make sure the high part is retrieved here - * before storing the adjusted address. - */ - rx_ring->Fbr1Realpa = rx_ring->pFbr1RingPa; - - /* Align Free Buffer Ring 1 on a 4K boundary */ - et131x_align_allocated_memory(adapter, - &rx_ring->Fbr1Realpa, - &rx_ring->Fbr1offset, 0x0FFF); - - rx_ring->pFbr1RingVa = (void *)((uint8_t *) rx_ring->pFbr1RingVa + - rx_ring->Fbr1offset); - -#ifdef USE_FBR0 - /* Allocate an area of memory for Free Buffer Ring 0 */ - bufsize = (sizeof(FBR_DESC_t) * rx_ring->Fbr0NumEntries) + 0xfff; - rx_ring->pFbr0RingVa = pci_alloc_consistent(adapter->pdev, - bufsize, - &rx_ring->pFbr0RingPa); - if (!rx_ring->pFbr0RingVa) { - DBG_ERROR(et131x_dbginfo, - "Cannot alloc memory for Free Buffer Ring 0\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - /* Save physical address - * - * NOTE: pci_alloc_consistent(), used above to alloc DMA regions, - * ALWAYS returns SAC (32-bit) addresses. If DAC (64-bit) addresses - * are ever returned, make sure the high part is retrieved here before - * storing the adjusted address. - */ - rx_ring->Fbr0Realpa = rx_ring->pFbr0RingPa; - - /* Align Free Buffer Ring 0 on a 4K boundary */ - et131x_align_allocated_memory(adapter, - &rx_ring->Fbr0Realpa, - &rx_ring->Fbr0offset, 0x0FFF); - - rx_ring->pFbr0RingVa = (void *)((uint8_t *) rx_ring->pFbr0RingVa + - rx_ring->Fbr0offset); -#endif - - for (OuterLoop = 0; OuterLoop < (rx_ring->Fbr1NumEntries / FBR_CHUNKS); - OuterLoop++) { - uint64_t Fbr1Offset; - uint64_t Fbr1TempPa; - uint32_t Fbr1Align; - - /* This code allocates an area of memory big enough for N - * free buffers + (buffer_size - 1) so that the buffers can - * be aligned on 4k boundaries. If each buffer were aligned - * to a buffer_size boundary, the effect would be to double - * the size of FBR0. By allocating N buffers at once, we - * reduce this overhead. - */ - if (rx_ring->Fbr1BufferSize > 4096) { - Fbr1Align = 4096; - } else { - Fbr1Align = rx_ring->Fbr1BufferSize; - } - - FBRChunkSize = - (FBR_CHUNKS * rx_ring->Fbr1BufferSize) + Fbr1Align - 1; - rx_ring->Fbr1MemVa[OuterLoop] = - pci_alloc_consistent(adapter->pdev, FBRChunkSize, - &rx_ring->Fbr1MemPa[OuterLoop]); - - if (!rx_ring->Fbr1MemVa[OuterLoop]) { - DBG_ERROR(et131x_dbginfo, "Could not alloc memory\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - /* See NOTE in "Save Physical Address" comment above */ - Fbr1TempPa = rx_ring->Fbr1MemPa[OuterLoop]; - - et131x_align_allocated_memory(adapter, - &Fbr1TempPa, - &Fbr1Offset, (Fbr1Align - 1)); - - for (InnerLoop = 0; InnerLoop < FBR_CHUNKS; InnerLoop++) { - uint32_t index = (OuterLoop * FBR_CHUNKS) + InnerLoop; - - /* Save the Virtual address of this index for quick - * access later - */ - rx_ring->Fbr[1]->Va[index] = - (uint8_t *) rx_ring->Fbr1MemVa[OuterLoop] + - (InnerLoop * rx_ring->Fbr1BufferSize) + Fbr1Offset; - - /* now store the physical address in the descriptor - * so the device can access it - */ - rx_ring->Fbr[1]->PAHigh[index] = - (uint32_t) (Fbr1TempPa >> 32); - rx_ring->Fbr[1]->PALow[index] = (uint32_t) Fbr1TempPa; - - Fbr1TempPa += rx_ring->Fbr1BufferSize; - - rx_ring->Fbr[1]->Buffer1[index] = - rx_ring->Fbr[1]->Va[index]; - rx_ring->Fbr[1]->Buffer2[index] = - rx_ring->Fbr[1]->Va[index] - 4; - } - } - -#ifdef USE_FBR0 - /* Same for FBR0 (if in use) */ - for (OuterLoop = 0; OuterLoop < (rx_ring->Fbr0NumEntries / FBR_CHUNKS); - OuterLoop++) { - uint64_t Fbr0Offset; - uint64_t Fbr0TempPa; - - FBRChunkSize = ((FBR_CHUNKS + 1) * rx_ring->Fbr0BufferSize) - 1; - rx_ring->Fbr0MemVa[OuterLoop] = - pci_alloc_consistent(adapter->pdev, FBRChunkSize, - &rx_ring->Fbr0MemPa[OuterLoop]); - - if (!rx_ring->Fbr0MemVa[OuterLoop]) { - DBG_ERROR(et131x_dbginfo, "Could not alloc memory\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - /* See NOTE in "Save Physical Address" comment above */ - Fbr0TempPa = rx_ring->Fbr0MemPa[OuterLoop]; - - et131x_align_allocated_memory(adapter, - &Fbr0TempPa, - &Fbr0Offset, - rx_ring->Fbr0BufferSize - 1); - - for (InnerLoop = 0; InnerLoop < FBR_CHUNKS; InnerLoop++) { - uint32_t index = (OuterLoop * FBR_CHUNKS) + InnerLoop; - - rx_ring->Fbr[0]->Va[index] = - (uint8_t *) rx_ring->Fbr0MemVa[OuterLoop] + - (InnerLoop * rx_ring->Fbr0BufferSize) + Fbr0Offset; - - rx_ring->Fbr[0]->PAHigh[index] = - (uint32_t) (Fbr0TempPa >> 32); - rx_ring->Fbr[0]->PALow[index] = (uint32_t) Fbr0TempPa; - - Fbr0TempPa += rx_ring->Fbr0BufferSize; - - rx_ring->Fbr[0]->Buffer1[index] = - rx_ring->Fbr[0]->Va[index]; - rx_ring->Fbr[0]->Buffer2[index] = - rx_ring->Fbr[0]->Va[index] - 4; - } - } -#endif - - /* Allocate an area of memory for FIFO of Packet Status ring entries */ - pktStatRingSize = - sizeof(PKT_STAT_DESC_t) * adapter->RxRing.PsrNumEntries; - - rx_ring->pPSRingVa = pci_alloc_consistent(adapter->pdev, - pktStatRingSize + 0x0fff, - &rx_ring->pPSRingPa); - - if (!rx_ring->pPSRingVa) { - DBG_ERROR(et131x_dbginfo, - "Cannot alloc memory for Packet Status Ring\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - /* Save physical address - * - * NOTE : pci_alloc_consistent(), used above to alloc DMA regions, - * ALWAYS returns SAC (32-bit) addresses. If DAC (64-bit) addresses - * are ever returned, make sure the high part is retrieved here before - * storing the adjusted address. - */ - rx_ring->pPSRingRealPa = rx_ring->pPSRingPa; - - /* Align Packet Status Ring on a 4K boundary */ - et131x_align_allocated_memory(adapter, - &rx_ring->pPSRingRealPa, - &rx_ring->pPSRingOffset, 0x0FFF); - - rx_ring->pPSRingVa = (void *)((uint8_t *) rx_ring->pPSRingVa + - rx_ring->pPSRingOffset); - - /* Allocate an area of memory for writeback of status information */ - rx_ring->pRxStatusVa = pci_alloc_consistent(adapter->pdev, - sizeof(RX_STATUS_BLOCK_t) + - 0x7, &rx_ring->pRxStatusPa); - if (!rx_ring->pRxStatusVa) { - DBG_ERROR(et131x_dbginfo, - "Cannot alloc memory for Status Block\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - /* Save physical address */ - rx_ring->RxStatusRealPA = rx_ring->pRxStatusPa; - - /* Align write back on an 8 byte boundary */ - et131x_align_allocated_memory(adapter, - &rx_ring->RxStatusRealPA, - &rx_ring->RxStatusOffset, 0x07); - - rx_ring->pRxStatusVa = (void *)((uint8_t *) rx_ring->pRxStatusVa + - rx_ring->RxStatusOffset); - rx_ring->NumRfd = NIC_DEFAULT_NUM_RFD; - - /* Recv - * pci_pool_create initializes a lookaside list. After successful - * creation, nonpaged fixed-size blocks can be allocated from and - * freed to the lookaside list. - * RFDs will be allocated from this pool. - */ - rx_ring->RecvLookaside = kmem_cache_create(adapter->netdev->name, - sizeof(MP_RFD), - 0, - SLAB_CACHE_DMA | - SLAB_HWCACHE_ALIGN, - NULL); - - MP_SET_FLAG(adapter, fMP_ADAPTER_RECV_LOOKASIDE); - - /* The RFDs are going to be put on lists later on, so initialize the - * lists now. - */ - INIT_LIST_HEAD(&rx_ring->RecvList); - INIT_LIST_HEAD(&rx_ring->RecvPendingList); - - DBG_LEAVE(et131x_dbginfo); - return 0; -} - -/** - * et131x_rx_dma_memory_free - Free all memory allocated within this module. - * @adapter: pointer to our private adapter structure - */ -void et131x_rx_dma_memory_free(struct et131x_adapter *adapter) -{ - uint32_t index; - uint32_t bufsize; - uint32_t pktStatRingSize; - PMP_RFD pMpRfd; - RX_RING_t *rx_ring; - - DBG_ENTER(et131x_dbginfo); - - /* Setup some convenience pointers */ - rx_ring = (RX_RING_t *) & adapter->RxRing; - - /* Free RFDs and associated packet descriptors */ - DBG_ASSERT(rx_ring->nReadyRecv == rx_ring->NumRfd); - - while (!list_empty(&rx_ring->RecvList)) { - pMpRfd = (MP_RFD *) list_entry(rx_ring->RecvList.next, - MP_RFD, list_node); - - list_del(&pMpRfd->list_node); - et131x_rfd_resources_free(adapter, pMpRfd); - } - - while (!list_empty(&rx_ring->RecvPendingList)) { - pMpRfd = (MP_RFD *) list_entry(rx_ring->RecvPendingList.next, - MP_RFD, list_node); - list_del(&pMpRfd->list_node); - et131x_rfd_resources_free(adapter, pMpRfd); - } - - /* Free Free Buffer Ring 1 */ - if (rx_ring->pFbr1RingVa) { - /* First the packet memory */ - for (index = 0; index < - (rx_ring->Fbr1NumEntries / FBR_CHUNKS); index++) { - if (rx_ring->Fbr1MemVa[index]) { - uint32_t Fbr1Align; - - if (rx_ring->Fbr1BufferSize > 4096) { - Fbr1Align = 4096; - } else { - Fbr1Align = rx_ring->Fbr1BufferSize; - } - - bufsize = - (rx_ring->Fbr1BufferSize * FBR_CHUNKS) + - Fbr1Align - 1; - - pci_free_consistent(adapter->pdev, - bufsize, - rx_ring->Fbr1MemVa[index], - rx_ring->Fbr1MemPa[index]); - - rx_ring->Fbr1MemVa[index] = NULL; - } - } - - /* Now the FIFO itself */ - rx_ring->pFbr1RingVa = (void *)((uint8_t *) rx_ring->pFbr1RingVa - - rx_ring->Fbr1offset); - - bufsize = - (sizeof(FBR_DESC_t) * rx_ring->Fbr1NumEntries) + 0xfff; - - pci_free_consistent(adapter->pdev, - bufsize, - rx_ring->pFbr1RingVa, rx_ring->pFbr1RingPa); - - rx_ring->pFbr1RingVa = NULL; - } - -#ifdef USE_FBR0 - /* Now the same for Free Buffer Ring 0 */ - if (rx_ring->pFbr0RingVa) { - /* First the packet memory */ - for (index = 0; index < - (rx_ring->Fbr0NumEntries / FBR_CHUNKS); index++) { - if (rx_ring->Fbr0MemVa[index]) { - bufsize = - (rx_ring->Fbr0BufferSize * - (FBR_CHUNKS + 1)) - 1; - - pci_free_consistent(adapter->pdev, - bufsize, - rx_ring->Fbr0MemVa[index], - rx_ring->Fbr0MemPa[index]); - - rx_ring->Fbr0MemVa[index] = NULL; - } - } - - /* Now the FIFO itself */ - rx_ring->pFbr0RingVa = (void *)((uint8_t *) rx_ring->pFbr0RingVa - - rx_ring->Fbr0offset); - - bufsize = - (sizeof(FBR_DESC_t) * rx_ring->Fbr0NumEntries) + 0xfff; - - pci_free_consistent(adapter->pdev, - bufsize, - rx_ring->pFbr0RingVa, rx_ring->pFbr0RingPa); - - rx_ring->pFbr0RingVa = NULL; - } -#endif - - /* Free Packet Status Ring */ - if (rx_ring->pPSRingVa) { - rx_ring->pPSRingVa = (void *)((uint8_t *) rx_ring->pPSRingVa - - rx_ring->pPSRingOffset); - - pktStatRingSize = - sizeof(PKT_STAT_DESC_t) * adapter->RxRing.PsrNumEntries; - - pci_free_consistent(adapter->pdev, - pktStatRingSize + 0x0fff, - rx_ring->pPSRingVa, rx_ring->pPSRingPa); - - rx_ring->pPSRingVa = NULL; - } - - /* Free area of memory for the writeback of status information */ - if (rx_ring->pRxStatusVa) { - rx_ring->pRxStatusVa = (void *)((uint8_t *) rx_ring->pRxStatusVa - - rx_ring->RxStatusOffset); - - pci_free_consistent(adapter->pdev, - sizeof(RX_STATUS_BLOCK_t) + 0x7, - rx_ring->pRxStatusVa, rx_ring->pRxStatusPa); - - rx_ring->pRxStatusVa = NULL; - } - - /* Free receive buffer pool */ - - /* Free receive packet pool */ - - /* Destroy the lookaside (RFD) pool */ - if (MP_TEST_FLAG(adapter, fMP_ADAPTER_RECV_LOOKASIDE)) { - kmem_cache_destroy(rx_ring->RecvLookaside); - MP_CLEAR_FLAG(adapter, fMP_ADAPTER_RECV_LOOKASIDE); - } - - /* Free the FBR Lookup Table */ -#ifdef USE_FBR0 - kfree(rx_ring->Fbr[0]); -#endif - - kfree(rx_ring->Fbr[1]); - - /* Reset Counters */ - rx_ring->nReadyRecv = 0; - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_init_recv - Initialize receive data structures. - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success and errno on failure (as defined in errno.h) - */ -int et131x_init_recv(struct et131x_adapter *adapter) -{ - int status = -ENOMEM; - PMP_RFD pMpRfd = NULL; - uint32_t RfdCount; - uint32_t TotalNumRfd = 0; - RX_RING_t *rx_ring = NULL; - - DBG_ENTER(et131x_dbginfo); - - /* Setup some convenience pointers */ - rx_ring = (RX_RING_t *) & adapter->RxRing; - - /* Setup each RFD */ - for (RfdCount = 0; RfdCount < rx_ring->NumRfd; RfdCount++) { - pMpRfd = (MP_RFD *) kmem_cache_alloc(rx_ring->RecvLookaside, - GFP_ATOMIC | GFP_DMA); - - if (!pMpRfd) { - DBG_ERROR(et131x_dbginfo, - "Couldn't alloc RFD out of kmem_cache\n"); - status = -ENOMEM; - continue; - } - - status = et131x_rfd_resources_alloc(adapter, pMpRfd); - if (status != 0) { - DBG_ERROR(et131x_dbginfo, - "Couldn't alloc packet for RFD\n"); - kmem_cache_free(rx_ring->RecvLookaside, pMpRfd); - continue; - } - - /* Add this RFD to the RecvList */ - list_add_tail(&pMpRfd->list_node, &rx_ring->RecvList); - - /* Increment both the available RFD's, and the total RFD's. */ - rx_ring->nReadyRecv++; - TotalNumRfd++; - } - - if (TotalNumRfd > NIC_MIN_NUM_RFD) { - status = 0; - } - - rx_ring->NumRfd = TotalNumRfd; - - if (status != 0) { - kmem_cache_free(rx_ring->RecvLookaside, pMpRfd); - DBG_ERROR(et131x_dbginfo, - "Allocation problems in et131x_init_recv\n"); - } - - DBG_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_rfd_resources_alloc - * @adapter: pointer to our private adapter structure - * @pMpRfd: pointer to a RFD - * - * Returns 0 on success and errno on failure (as defined in errno.h) - */ -int et131x_rfd_resources_alloc(struct et131x_adapter *adapter, MP_RFD *pMpRfd) -{ - pMpRfd->Packet = NULL; - - return 0; -} - -/** - * et131x_rfd_resources_free - Free the packet allocated for the given RFD - * @adapter: pointer to our private adapter structure - * @pMpRfd: pointer to a RFD - */ -void et131x_rfd_resources_free(struct et131x_adapter *adapter, MP_RFD *pMpRfd) -{ - pMpRfd->Packet = NULL; - kmem_cache_free(adapter->RxRing.RecvLookaside, pMpRfd); -} - -/** - * ConfigRxDmaRegs - Start of Rx_DMA init sequence - * @pAdapter: pointer to our adapter structure - */ -void ConfigRxDmaRegs(struct et131x_adapter *pAdapter) -{ - struct _RXDMA_t __iomem *pRxDma = &pAdapter->CSRAddress->rxdma; - struct _rx_ring_t *pRxLocal = &pAdapter->RxRing; - PFBR_DESC_t pFbrEntry; - uint32_t iEntry; - RXDMA_PSR_NUM_DES_t psr_num_des; - unsigned long lockflags; - - DBG_ENTER(et131x_dbginfo); - - /* Halt RXDMA to perform the reconfigure. */ - et131x_rx_dma_disable(pAdapter); - - /* Load the completion writeback physical address - * - * NOTE : pci_alloc_consistent(), used above to alloc DMA regions, - * ALWAYS returns SAC (32-bit) addresses. If DAC (64-bit) addresses - * are ever returned, make sure the high part is retrieved here - * before storing the adjusted address. - */ - writel((uint32_t) (pRxLocal->RxStatusRealPA >> 32), - &pRxDma->dma_wb_base_hi); - writel((uint32_t) pRxLocal->RxStatusRealPA, &pRxDma->dma_wb_base_lo); - - memset(pRxLocal->pRxStatusVa, 0, sizeof(RX_STATUS_BLOCK_t)); - - /* Set the address and parameters of the packet status ring into the - * 1310's registers - */ - writel((uint32_t) (pRxLocal->pPSRingRealPa >> 32), - &pRxDma->psr_base_hi); - writel((uint32_t) pRxLocal->pPSRingRealPa, &pRxDma->psr_base_lo); - writel(pRxLocal->PsrNumEntries - 1, &pRxDma->psr_num_des.value); - writel(0, &pRxDma->psr_full_offset.value); - - psr_num_des.value = readl(&pRxDma->psr_num_des.value); - writel((psr_num_des.bits.psr_ndes * LO_MARK_PERCENT_FOR_PSR) / 100, - &pRxDma->psr_min_des.value); - - spin_lock_irqsave(&pAdapter->RcvLock, lockflags); - - /* These local variables track the PSR in the adapter structure */ - pRxLocal->local_psr_full.bits.psr_full = 0; - pRxLocal->local_psr_full.bits.psr_full_wrap = 0; - - /* Now's the best time to initialize FBR1 contents */ - pFbrEntry = (PFBR_DESC_t) pRxLocal->pFbr1RingVa; - for (iEntry = 0; iEntry < pRxLocal->Fbr1NumEntries; iEntry++) { - pFbrEntry->addr_hi = pRxLocal->Fbr[1]->PAHigh[iEntry]; - pFbrEntry->addr_lo = pRxLocal->Fbr[1]->PALow[iEntry]; - pFbrEntry->word2.bits.bi = iEntry; - pFbrEntry++; - } - - /* Set the address and parameters of Free buffer ring 1 (and 0 if - * required) into the 1310's registers - */ - writel((uint32_t) (pRxLocal->Fbr1Realpa >> 32), &pRxDma->fbr1_base_hi); - writel((uint32_t) pRxLocal->Fbr1Realpa, &pRxDma->fbr1_base_lo); - writel(pRxLocal->Fbr1NumEntries - 1, &pRxDma->fbr1_num_des.value); - - { - DMA10W_t fbr1_full = { 0 }; - - fbr1_full.bits.val = 0; - fbr1_full.bits.wrap = 1; - writel(fbr1_full.value, &pRxDma->fbr1_full_offset.value); - } - - /* This variable tracks the free buffer ring 1 full position, so it - * has to match the above. - */ - pRxLocal->local_Fbr1_full.bits.val = 0; - pRxLocal->local_Fbr1_full.bits.wrap = 1; - writel(((pRxLocal->Fbr1NumEntries * LO_MARK_PERCENT_FOR_RX) / 100) - 1, - &pRxDma->fbr1_min_des.value); - -#ifdef USE_FBR0 - /* Now's the best time to initialize FBR0 contents */ - pFbrEntry = (PFBR_DESC_t) pRxLocal->pFbr0RingVa; - for (iEntry = 0; iEntry < pRxLocal->Fbr0NumEntries; iEntry++) { - pFbrEntry->addr_hi = pRxLocal->Fbr[0]->PAHigh[iEntry]; - pFbrEntry->addr_lo = pRxLocal->Fbr[0]->PALow[iEntry]; - pFbrEntry->word2.bits.bi = iEntry; - pFbrEntry++; - } - - writel((uint32_t) (pRxLocal->Fbr0Realpa >> 32), &pRxDma->fbr0_base_hi); - writel((uint32_t) pRxLocal->Fbr0Realpa, &pRxDma->fbr0_base_lo); - writel(pRxLocal->Fbr0NumEntries - 1, &pRxDma->fbr0_num_des.value); - - { - DMA10W_t fbr0_full = { 0 }; - - fbr0_full.bits.val = 0; - fbr0_full.bits.wrap = 1; - writel(fbr0_full.value, &pRxDma->fbr0_full_offset.value); - } - - /* This variable tracks the free buffer ring 0 full position, so it - * has to match the above. - */ - pRxLocal->local_Fbr0_full.bits.val = 0; - pRxLocal->local_Fbr0_full.bits.wrap = 1; - writel(((pRxLocal->Fbr0NumEntries * LO_MARK_PERCENT_FOR_RX) / 100) - 1, - &pRxDma->fbr0_min_des.value); -#endif - - /* Program the number of packets we will receive before generating an - * interrupt. - * For version B silicon, this value gets updated once autoneg is - *complete. - */ - writel(pAdapter->RegistryRxNumBuffers, &pRxDma->num_pkt_done.value); - - /* The "time_done" is not working correctly to coalesce interrupts - * after a given time period, but rather is giving us an interrupt - * regardless of whether we have received packets. - * This value gets updated once autoneg is complete. - */ - writel(pAdapter->RegistryRxTimeInterval, &pRxDma->max_pkt_time.value); - - spin_unlock_irqrestore(&pAdapter->RcvLock, lockflags); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * SetRxDmaTimer - Set the heartbeat timer according to line rate. - * @pAdapter: pointer to our adapter structure - */ -void SetRxDmaTimer(struct et131x_adapter *pAdapter) -{ - /* For version B silicon, we do not use the RxDMA timer for 10 and 100 - * Mbits/s line rates. We do not enable and RxDMA interrupt coalescing. - */ - if ((pAdapter->uiLinkSpeed == TRUEPHY_SPEED_100MBPS) || - (pAdapter->uiLinkSpeed == TRUEPHY_SPEED_10MBPS)) { - writel(0, &pAdapter->CSRAddress->rxdma.max_pkt_time.value); - writel(1, &pAdapter->CSRAddress->rxdma.num_pkt_done.value); - } -} - -/** - * et131x_rx_dma_disable - Stop of Rx_DMA on the ET1310 - * @pAdapter: pointer to our adapter structure - */ -void et131x_rx_dma_disable(struct et131x_adapter *pAdapter) -{ - RXDMA_CSR_t csr; - - DBG_ENTER(et131x_dbginfo); - - /* Setup the receive dma configuration register */ - writel(0x00002001, &pAdapter->CSRAddress->rxdma.csr.value); - csr.value = readl(&pAdapter->CSRAddress->rxdma.csr.value); - if (csr.bits.halt_status != 1) { - udelay(5); - csr.value = readl(&pAdapter->CSRAddress->rxdma.csr.value); - if (csr.bits.halt_status != 1) { - DBG_ERROR(et131x_dbginfo, - "RX Dma failed to enter halt state. CSR 0x%08x\n", - csr.value); - } - } - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_rx_dma_enable - re-start of Rx_DMA on the ET1310. - * @pAdapter: pointer to our adapter structure - */ -void et131x_rx_dma_enable(struct et131x_adapter *pAdapter) -{ - DBG_RX_ENTER(et131x_dbginfo); - - if (pAdapter->RegistryPhyLoopbk) { - /* RxDMA is disabled for loopback operation. */ - writel(0x1, &pAdapter->CSRAddress->rxdma.csr.value); - } else { - /* Setup the receive dma configuration register for normal operation */ - RXDMA_CSR_t csr = { 0 }; - - csr.bits.fbr1_enable = 1; - if (pAdapter->RxRing.Fbr1BufferSize == 4096) { - csr.bits.fbr1_size = 1; - } else if (pAdapter->RxRing.Fbr1BufferSize == 8192) { - csr.bits.fbr1_size = 2; - } else if (pAdapter->RxRing.Fbr1BufferSize == 16384) { - csr.bits.fbr1_size = 3; - } -#ifdef USE_FBR0 - csr.bits.fbr0_enable = 1; - if (pAdapter->RxRing.Fbr0BufferSize == 256) { - csr.bits.fbr0_size = 1; - } else if (pAdapter->RxRing.Fbr0BufferSize == 512) { - csr.bits.fbr0_size = 2; - } else if (pAdapter->RxRing.Fbr0BufferSize == 1024) { - csr.bits.fbr0_size = 3; - } -#endif - writel(csr.value, &pAdapter->CSRAddress->rxdma.csr.value); - - csr.value = readl(&pAdapter->CSRAddress->rxdma.csr.value); - if (csr.bits.halt_status != 0) { - udelay(5); - csr.value = readl(&pAdapter->CSRAddress->rxdma.csr.value); - if (csr.bits.halt_status != 0) { - DBG_ERROR(et131x_dbginfo, - "RX Dma failed to exit halt state. CSR 0x%08x\n", - csr.value); - } - } - } - - DBG_RX_LEAVE(et131x_dbginfo); -} - -/** - * nic_rx_pkts - Checks the hardware for available packets - * @pAdapter: pointer to our adapter - * - * Returns pMpRfd, a pointer to our MPRFD. - * - * Checks the hardware for available packets, using completion ring - * If packets are available, it gets an RFD from the RecvList, attaches - * the packet to it, puts the RFD in the RecvPendList, and also returns - * the pointer to the RFD. - */ -PMP_RFD nic_rx_pkts(struct et131x_adapter *pAdapter) -{ - struct _rx_ring_t *pRxLocal = &pAdapter->RxRing; - PRX_STATUS_BLOCK_t pRxStatusBlock; - PPKT_STAT_DESC_t pPSREntry; - PMP_RFD pMpRfd; - uint32_t nIndex; - uint8_t *pBufVa; - unsigned long lockflags; - struct list_head *element; - uint8_t ringIndex; - uint16_t bufferIndex; - uint32_t localLen; - PKT_STAT_DESC_WORD0_t Word0; - - - DBG_RX_ENTER(et131x_dbginfo); - - /* RX Status block is written by the DMA engine prior to every - * interrupt. It contains the next to be used entry in the Packet - * Status Ring, and also the two Free Buffer rings. - */ - pRxStatusBlock = (PRX_STATUS_BLOCK_t) pRxLocal->pRxStatusVa; - - if (pRxStatusBlock->Word1.bits.PSRoffset == - pRxLocal->local_psr_full.bits.psr_full && - pRxStatusBlock->Word1.bits.PSRwrap == - pRxLocal->local_psr_full.bits.psr_full_wrap) { - /* Looks like this ring is not updated yet */ - DBG_RX(et131x_dbginfo, "(0)\n"); - DBG_RX_LEAVE(et131x_dbginfo); - return NULL; - } - - /* The packet status ring indicates that data is available. */ - pPSREntry = (PPKT_STAT_DESC_t) (pRxLocal->pPSRingVa) + - pRxLocal->local_psr_full.bits.psr_full; - - /* Grab any information that is required once the PSR is - * advanced, since we can no longer rely on the memory being - * accurate - */ - localLen = pPSREntry->word1.bits.length; - ringIndex = (uint8_t) pPSREntry->word1.bits.ri; - bufferIndex = (uint16_t) pPSREntry->word1.bits.bi; - Word0 = pPSREntry->word0; - - DBG_RX(et131x_dbginfo, "RX PACKET STATUS\n"); - DBG_RX(et131x_dbginfo, "\tlength : %d\n", localLen); - DBG_RX(et131x_dbginfo, "\tringIndex : %d\n", ringIndex); - DBG_RX(et131x_dbginfo, "\tbufferIndex : %d\n", bufferIndex); - DBG_RX(et131x_dbginfo, "\tword0 : 0x%08x\n", Word0.value); - -#if 0 - /* Check the Status Word that the MAC has appended to the PSR - * entry in case the MAC has detected errors. - */ - if (Word0.value & ALCATEL_BAD_STATUS) { - DBG_ERROR(et131x_dbginfo, - "NICRxPkts >> Alcatel Status Word error." - "Value 0x%08x\n", pPSREntry->word0.value); - } -#endif - - /* Indicate that we have used this PSR entry. */ - if (++pRxLocal->local_psr_full.bits.psr_full > - pRxLocal->PsrNumEntries - 1) { - pRxLocal->local_psr_full.bits.psr_full = 0; - pRxLocal->local_psr_full.bits.psr_full_wrap ^= 1; - } - - writel(pRxLocal->local_psr_full.value, - &pAdapter->CSRAddress->rxdma.psr_full_offset.value); - -#ifndef USE_FBR0 - if (ringIndex != 1) { - DBG_ERROR(et131x_dbginfo, - "NICRxPkts PSR Entry %d indicates " - "Buffer Ring 0 in use\n", - pRxLocal->local_psr_full.bits.psr_full); - DBG_RX_LEAVE(et131x_dbginfo); - return NULL; - } -#endif - -#ifdef USE_FBR0 - if (ringIndex > 1 || - (ringIndex == 0 && - bufferIndex > pRxLocal->Fbr0NumEntries - 1) || - (ringIndex == 1 && - bufferIndex > pRxLocal->Fbr1NumEntries - 1)) -#else - if (ringIndex != 1 || - bufferIndex > pRxLocal->Fbr1NumEntries - 1) -#endif - { - /* Illegal buffer or ring index cannot be used by S/W*/ - DBG_ERROR(et131x_dbginfo, - "NICRxPkts PSR Entry %d indicates " - "length of %d and/or bad bi(%d)\n", - pRxLocal->local_psr_full.bits.psr_full, - localLen, bufferIndex); - DBG_RX_LEAVE(et131x_dbginfo); - return NULL; - } - - /* Get and fill the RFD. */ - spin_lock_irqsave(&pAdapter->RcvLock, lockflags); - - pMpRfd = NULL; - element = pRxLocal->RecvList.next; - pMpRfd = (PMP_RFD) list_entry(element, MP_RFD, list_node); - - if (pMpRfd == NULL) { - DBG_RX(et131x_dbginfo, - "NULL RFD returned from RecvList via list_entry()\n"); - DBG_RX_LEAVE(et131x_dbginfo); - spin_unlock_irqrestore(&pAdapter->RcvLock, lockflags); - return NULL; - } - - list_del(&pMpRfd->list_node); - pRxLocal->nReadyRecv--; - - spin_unlock_irqrestore(&pAdapter->RcvLock, lockflags); - - pMpRfd->iBufferIndex = bufferIndex; - pMpRfd->iRingIndex = ringIndex; - - /* In V1 silicon, there is a bug which screws up filtering of - * runt packets. Therefore runt packet filtering is disabled - * in the MAC and the packets are dropped here. They are - * also counted here. - */ - if (localLen < (NIC_MIN_PACKET_SIZE + 4)) { - pAdapter->Stats.other_errors++; - localLen = 0; - } - - if (localLen) { - if (pAdapter->ReplicaPhyLoopbk == 1) { - pBufVa = pRxLocal->Fbr[ringIndex]->Va[bufferIndex]; - - if (memcmp(&pBufVa[6], &pAdapter->CurrentAddress[0], - ETH_ALEN) == 0) { - if (memcmp(&pBufVa[42], "Replica packet", - ETH_HLEN)) { - pAdapter->ReplicaPhyLoopbkPF = 1; - } - } - DBG_WARNING(et131x_dbginfo, - "pBufVa:\t%02x:%02x:%02x:%02x:%02x:%02x\n", - pBufVa[6], pBufVa[7], pBufVa[8], - pBufVa[9], pBufVa[10], pBufVa[11]); - - DBG_WARNING(et131x_dbginfo, - "CurrentAddr:\t%02x:%02x:%02x:%02x:%02x:%02x\n", - pAdapter->CurrentAddress[0], - pAdapter->CurrentAddress[1], - pAdapter->CurrentAddress[2], - pAdapter->CurrentAddress[3], - pAdapter->CurrentAddress[4], - pAdapter->CurrentAddress[5]); - } - - /* Determine if this is a multicast packet coming in */ - if ((Word0.value & ALCATEL_MULTICAST_PKT) && - !(Word0.value & ALCATEL_BROADCAST_PKT)) { - /* Promiscuous mode and Multicast mode are - * not mutually exclusive as was first - * thought. I guess Promiscuous is just - * considered a super-set of the other - * filters. Generally filter is 0x2b when in - * promiscuous mode. - */ - if ((pAdapter->PacketFilter & ET131X_PACKET_TYPE_MULTICAST) - && !(pAdapter->PacketFilter & ET131X_PACKET_TYPE_PROMISCUOUS) - && !(pAdapter->PacketFilter & ET131X_PACKET_TYPE_ALL_MULTICAST)) { - pBufVa = pRxLocal->Fbr[ringIndex]-> - Va[bufferIndex]; - - /* Loop through our list to see if the - * destination address of this packet - * matches one in our list. - */ - for (nIndex = 0; - nIndex < pAdapter->MCAddressCount; - nIndex++) { - if (pBufVa[0] == - pAdapter->MCList[nIndex][0] - && pBufVa[1] == - pAdapter->MCList[nIndex][1] - && pBufVa[2] == - pAdapter->MCList[nIndex][2] - && pBufVa[3] == - pAdapter->MCList[nIndex][3] - && pBufVa[4] == - pAdapter->MCList[nIndex][4] - && pBufVa[5] == - pAdapter->MCList[nIndex][5]) { - break; - } - } - - /* If our index is equal to the number - * of Multicast address we have, then - * this means we did not find this - * packet's matching address in our - * list. Set the PacketSize to zero, - * so we free our RFD when we return - * from this function. - */ - if (nIndex == pAdapter->MCAddressCount) { - localLen = 0; - } - } - - if (localLen > 0) { - pAdapter->Stats.multircv++; - } - } else if (Word0.value & ALCATEL_BROADCAST_PKT) { - pAdapter->Stats.brdcstrcv++; - } else { - /* Not sure what this counter measures in - * promiscuous mode. Perhaps we should check - * the MAC address to see if it is directed - * to us in promiscuous mode. - */ - pAdapter->Stats.unircv++; - } - } - - if (localLen > 0) { - struct sk_buff *skb = NULL; - - //pMpRfd->PacketSize = localLen - 4; - pMpRfd->PacketSize = localLen; - - skb = dev_alloc_skb(pMpRfd->PacketSize + 2); - if (!skb) { - DBG_ERROR(et131x_dbginfo, - "Couldn't alloc an SKB for Rx\n"); - DBG_RX_LEAVE(et131x_dbginfo); - return NULL; - } - - pAdapter->net_stats.rx_bytes += pMpRfd->PacketSize; - - memcpy(skb_put(skb, pMpRfd->PacketSize), - pRxLocal->Fbr[ringIndex]->Va[bufferIndex], - pMpRfd->PacketSize); - - skb->dev = pAdapter->netdev; - skb->protocol = eth_type_trans(skb, pAdapter->netdev); - skb->ip_summed = CHECKSUM_NONE; - - netif_rx(skb); - } else { - pMpRfd->PacketSize = 0; - } - - nic_return_rfd(pAdapter, pMpRfd); - - DBG_RX(et131x_dbginfo, "(1)\n"); - DBG_RX_LEAVE(et131x_dbginfo); - return pMpRfd; -} - -/** - * et131x_reset_recv - Reset the receive list - * @pAdapter: pointer to our adapter - * - * Assumption, Rcv spinlock has been acquired. - */ -void et131x_reset_recv(struct et131x_adapter *pAdapter) -{ - PMP_RFD pMpRfd; - struct list_head *element; - - DBG_ENTER(et131x_dbginfo); - - DBG_ASSERT(!list_empty(&pAdapter->RxRing.RecvList)); - - /* Take all the RFD's from the pending list, and stick them on the - * RecvList. - */ - while (!list_empty(&pAdapter->RxRing.RecvPendingList)) { - element = pAdapter->RxRing.RecvPendingList.next; - - pMpRfd = (PMP_RFD) list_entry(element, MP_RFD, list_node); - - list_del(&pMpRfd->list_node); - list_add_tail(&pMpRfd->list_node, &pAdapter->RxRing.RecvList); - } - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_handle_recv_interrupt - Interrupt handler for receive processing - * @pAdapter: pointer to our adapter - * - * Assumption, Rcv spinlock has been acquired. - */ -void et131x_handle_recv_interrupt(struct et131x_adapter *pAdapter) -{ - PMP_RFD pMpRfd = NULL; - struct sk_buff *PacketArray[NUM_PACKETS_HANDLED]; - PMP_RFD RFDFreeArray[NUM_PACKETS_HANDLED]; - uint32_t PacketArrayCount = 0; - uint32_t PacketsToHandle; - uint32_t PacketFreeCount = 0; - bool TempUnfinishedRec = false; - - DBG_RX_ENTER(et131x_dbginfo); - - PacketsToHandle = NUM_PACKETS_HANDLED; - - /* Process up to available RFD's */ - while (PacketArrayCount < PacketsToHandle) { - if (list_empty(&pAdapter->RxRing.RecvList)) { - DBG_ASSERT(pAdapter->RxRing.nReadyRecv == 0); - DBG_ERROR(et131x_dbginfo, "NO RFD's !!!!!!!!!!!!!\n"); - TempUnfinishedRec = true; - break; - } - - pMpRfd = nic_rx_pkts(pAdapter); - - if (pMpRfd == NULL) { - break; - } - - /* Do not receive any packets until a filter has been set. - * Do not receive any packets until we are at D0. - * Do not receive any packets until we have link. - * If length is zero, return the RFD in order to advance the - * Free buffer ring. - */ - if ((!pAdapter->PacketFilter) || - (pAdapter->PoMgmt.PowerState != NdisDeviceStateD0) || - (!MP_LINK_DETECTED(pAdapter)) || - (pMpRfd->PacketSize == 0)) { - continue; - } - - /* Increment the number of packets we received */ - pAdapter->Stats.ipackets++; - - /* Set the status on the packet, either resources or success */ - if (pAdapter->RxRing.nReadyRecv >= RFD_LOW_WATER_MARK) { - /* Put this RFD on the pending list - * - * NOTE: nic_rx_pkts() above is already returning the - * RFD to the RecvList, so don't additionally do that - * here. - * Besides, we don't really need (at this point) the - * pending list anyway. - */ - //spin_lock_irqsave( &pAdapter->RcvPendLock, lockflags ); - //list_add_tail( &pMpRfd->list_node, &pAdapter->RxRing.RecvPendingList ); - //spin_unlock_irqrestore( &pAdapter->RcvPendLock, lockflags ); - - /* Update the number of outstanding Recvs */ - //MP_INC_RCV_REF( pAdapter ); - } else { - RFDFreeArray[PacketFreeCount] = pMpRfd; - PacketFreeCount++; - - DBG_WARNING(et131x_dbginfo, - "RFD's are running out !!!!!!!!!!!!!\n"); - } - - PacketArray[PacketArrayCount] = pMpRfd->Packet; - PacketArrayCount++; - } - - if ((PacketArrayCount == NUM_PACKETS_HANDLED) || TempUnfinishedRec) { - pAdapter->RxRing.UnfinishedReceives = true; - writel(pAdapter->RegistryTxTimeInterval * NANO_IN_A_MICRO, - &pAdapter->CSRAddress->global.watchdog_timer); - } else { - /* Watchdog timer will disable itself if appropriate. */ - pAdapter->RxRing.UnfinishedReceives = false; - } - - DBG_RX_LEAVE(et131x_dbginfo); -} - -/** - * NICReturnRFD - Recycle a RFD and put it back onto the receive list - * @pAdapter: pointer to our adapter - * @pMpRfd: pointer to the RFD - */ -void nic_return_rfd(struct et131x_adapter *pAdapter, PMP_RFD pMpRfd) -{ - struct _rx_ring_t *pRxLocal = &pAdapter->RxRing; - struct _RXDMA_t __iomem *pRxDma = &pAdapter->CSRAddress->rxdma; - uint16_t bi = pMpRfd->iBufferIndex; - uint8_t ri = pMpRfd->iRingIndex; - unsigned long lockflags; - - DBG_RX_ENTER(et131x_dbginfo); - - /* We don't use any of the OOB data besides status. Otherwise, we - * need to clean up OOB data - */ - if ( -#ifdef USE_FBR0 - (ri == 0 && bi < pRxLocal->Fbr0NumEntries) || -#endif - (ri == 1 && bi < pRxLocal->Fbr1NumEntries)) { - spin_lock_irqsave(&pAdapter->FbrLock, lockflags); - - if (ri == 1) { - PFBR_DESC_t pNextDesc = - (PFBR_DESC_t) (pRxLocal->pFbr1RingVa) + - pRxLocal->local_Fbr1_full.bits.val; - - /* Handle the Free Buffer Ring advancement here. Write - * the PA / Buffer Index for the returned buffer into - * the oldest (next to be freed)FBR entry - */ - pNextDesc->addr_hi = pRxLocal->Fbr[1]->PAHigh[bi]; - pNextDesc->addr_lo = pRxLocal->Fbr[1]->PALow[bi]; - pNextDesc->word2.value = bi; - - if (++pRxLocal->local_Fbr1_full.bits.val > - (pRxLocal->Fbr1NumEntries - 1)) { - pRxLocal->local_Fbr1_full.bits.val = 0; - pRxLocal->local_Fbr1_full.bits.wrap ^= 1; - } - - writel(pRxLocal->local_Fbr1_full.value, - &pRxDma->fbr1_full_offset.value); - } -#ifdef USE_FBR0 - else { - PFBR_DESC_t pNextDesc = - (PFBR_DESC_t) pRxLocal->pFbr0RingVa + - pRxLocal->local_Fbr0_full.bits.val; - - /* Handle the Free Buffer Ring advancement here. Write - * the PA / Buffer Index for the returned buffer into - * the oldest (next to be freed) FBR entry - */ - pNextDesc->addr_hi = pRxLocal->Fbr[0]->PAHigh[bi]; - pNextDesc->addr_lo = pRxLocal->Fbr[0]->PALow[bi]; - pNextDesc->word2.value = bi; - - if (++pRxLocal->local_Fbr0_full.bits.val > - (pRxLocal->Fbr0NumEntries - 1)) { - pRxLocal->local_Fbr0_full.bits.val = 0; - pRxLocal->local_Fbr0_full.bits.wrap ^= 1; - } - - writel(pRxLocal->local_Fbr0_full.value, - &pRxDma->fbr0_full_offset.value); - } -#endif - spin_unlock_irqrestore(&pAdapter->FbrLock, lockflags); - } else { - DBG_ERROR(et131x_dbginfo, - "NICReturnRFD illegal Buffer Index returned\n"); - } - - /* The processing on this RFD is done, so put it back on the tail of - * our list - */ - spin_lock_irqsave(&pAdapter->RcvLock, lockflags); - list_add_tail(&pMpRfd->list_node, &pRxLocal->RecvList); - pRxLocal->nReadyRecv++; - spin_unlock_irqrestore(&pAdapter->RcvLock, lockflags); - - DBG_ASSERT(pRxLocal->nReadyRecv <= pRxLocal->NumRfd); - DBG_RX_LEAVE(et131x_dbginfo); -} diff --git a/src/et131x/et1310_rx.h b/src/et131x/et1310_rx.h deleted file mode 100644 index ea66dbc..0000000 --- a/src/et131x/et1310_rx.h +++ /dev/null @@ -1,373 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_rx.h - Defines, structs, enums, prototypes, etc. pertaining to data - * reception. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET1310_RX_H__ -#define __ET1310_RX_H__ - -#include "et1310_address_map.h" - -#define USE_FBR0 true - -#ifdef USE_FBR0 -//#define FBR0_BUFFER_SIZE 256 -#endif - -//#define FBR1_BUFFER_SIZE 2048 - -#define FBR_CHUNKS 32 - -#define MAX_DESC_PER_RING_RX 1024 - -/* number of RFDs - default and min */ -#ifdef USE_FBR0 -#define RFD_LOW_WATER_MARK 40 -#define NIC_MIN_NUM_RFD 64 -#define NIC_DEFAULT_NUM_RFD 1024 -#else -#define RFD_LOW_WATER_MARK 20 -#define NIC_MIN_NUM_RFD 64 -#define NIC_DEFAULT_NUM_RFD 256 -#endif - -#define NUM_PACKETS_HANDLED 256 - -#define ALCATEL_BAD_STATUS 0xe47f0000 -#define ALCATEL_MULTICAST_PKT 0x01000000 -#define ALCATEL_BROADCAST_PKT 0x02000000 - -/* typedefs for Free Buffer Descriptors */ -typedef union _FBR_WORD2_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 reserved:22; // bits 10-31 - u32 bi:10; // bits 0-9(Buffer Index) -#else - u32 bi:10; // bits 0-9(Buffer Index) - u32 reserved:22; // bit 10-31 -#endif - } bits; -} FBR_WORD2_t, *PFBR_WORD2_t; - -typedef struct _FBR_DESC_t { - u32 addr_lo; - u32 addr_hi; - FBR_WORD2_t word2; -} FBR_DESC_t, *PFBR_DESC_t; - -/* Typedefs for Packet Status Ring Descriptors */ -typedef union _PKT_STAT_DESC_WORD0_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - // top 16 bits are from the Alcatel Status Word as enumerated in - // PE-MCXMAC Data Sheet IPD DS54 0210-1 (also IPD-DS80 0205-2) -#if 0 - u32 asw_trunc:1; // bit 31(Rx frame truncated) -#endif - u32 asw_long_evt:1; // bit 31(Rx long event) - u32 asw_VLAN_tag:1; // bit 30(VLAN tag detected) - u32 asw_unsupported_op:1; // bit 29(unsupported OP code) - u32 asw_pause_frame:1; // bit 28(is a pause frame) - u32 asw_control_frame:1; // bit 27(is a control frame) - u32 asw_dribble_nibble:1; // bit 26(spurious bits after EOP) - u32 asw_broadcast:1; // bit 25(has a broadcast address) - u32 asw_multicast:1; // bit 24(has a multicast address) - u32 asw_OK:1; // bit 23(valid CRC + no code error) - u32 asw_too_long:1; // bit 22(frame length > 1518 bytes) - u32 asw_len_chk_err:1; // bit 21(frame length field incorrect) - u32 asw_CRC_err:1; // bit 20(CRC error) - u32 asw_code_err:1; // bit 19(one or more nibbles signalled as errors) - u32 asw_false_carrier_event:1; // bit 18(bad carrier since last good packet) - u32 asw_RX_DV_event:1; // bit 17(short receive event detected) - u32 asw_prev_pkt_dropped:1;// bit 16(e.g. IFG too small on previous) - u32 unused:5; // bits 11-15 - u32 vp:1; // bit 10(VLAN Packet) - u32 jp:1; // bit 9(Jumbo Packet) - u32 ft:1; // bit 8(Frame Truncated) - u32 drop:1; // bit 7(Drop packet) - u32 rxmac_error:1; // bit 6(RXMAC Error Indicator) - u32 wol:1; // bit 5(WOL Event) - u32 tcpp:1; // bit 4(TCP checksum pass) - u32 tcpa:1; // bit 3(TCP checksum assist) - u32 ipp:1; // bit 2(IP checksum pass) - u32 ipa:1; // bit 1(IP checksum assist) - u32 hp:1; // bit 0(hash pass) -#else - u32 hp:1; // bit 0(hash pass) - u32 ipa:1; // bit 1(IP checksum assist) - u32 ipp:1; // bit 2(IP checksum pass) - u32 tcpa:1; // bit 3(TCP checksum assist) - u32 tcpp:1; // bit 4(TCP checksum pass) - u32 wol:1; // bit 5(WOL Event) - u32 rxmac_error:1; // bit 6(RXMAC Error Indicator) - u32 drop:1; // bit 7(Drop packet) - u32 ft:1; // bit 8(Frame Truncated) - u32 jp:1; // bit 9(Jumbo Packet) - u32 vp:1; // bit 10(VLAN Packet) - u32 unused:5; // bits 11-15 - u32 asw_prev_pkt_dropped:1;// bit 16(e.g. IFG too small on previous) - u32 asw_RX_DV_event:1; // bit 17(short receive event detected) - u32 asw_false_carrier_event:1; // bit 18(bad carrier since last good packet) - u32 asw_code_err:1; // bit 19(one or more nibbles signalled as errors) - u32 asw_CRC_err:1; // bit 20(CRC error) - u32 asw_len_chk_err:1; // bit 21(frame length field incorrect) - u32 asw_too_long:1; // bit 22(frame length > 1518 bytes) - u32 asw_OK:1; // bit 23(valid CRC + no code error) - u32 asw_multicast:1; // bit 24(has a multicast address) - u32 asw_broadcast:1; // bit 25(has a broadcast address) - u32 asw_dribble_nibble:1; // bit 26(spurious bits after EOP) - u32 asw_control_frame:1; // bit 27(is a control frame) - u32 asw_pause_frame:1; // bit 28(is a pause frame) - u32 asw_unsupported_op:1; // bit 29(unsupported OP code) - u32 asw_VLAN_tag:1; // bit 30(VLAN tag detected) - u32 asw_long_evt:1; // bit 31(Rx long event) -#if 0 - u32 asw_trunc:1; // bit 31(Rx frame truncated) -#endif -#endif - } bits; -} PKT_STAT_DESC_WORD0_t, *PPKT_STAT_WORD0_t; - -typedef union _PKT_STAT_DESC_WORD1_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:4; // bits 28-31 - u32 ri:2; // bits 26-27(Ring Index) - u32 bi:10; // bits 16-25(Buffer Index) - u32 length:16; // bit 0-15(length in bytes) -#else - u32 length:16; // bit 0-15(length in bytes) - u32 bi:10; // bits 16-25(Buffer Index) - u32 ri:2; // bits 26-27(Ring Index) - u32 unused:4; // bits 28-31 -#endif - } bits; -} PKT_STAT_DESC_WORD1_t, *PPKT_STAT_WORD1_t; - -typedef struct _PKT_STAT_DESC_t { - PKT_STAT_DESC_WORD0_t word0; - PKT_STAT_DESC_WORD1_t word1; -} PKT_STAT_DESC_t, *PPKT_STAT_DESC_t; - -/* Typedefs for the RX DMA status word */ - -/* - * RXSTAT_WORD0_t structure holds part of the status bits of the Rx DMA engine - * that get copied out to memory by the ET-1310. Word 0 is a 32 bit word - * whichcontains Free Buffer ring 0 and 1 available offset. - */ -typedef union _rxstat_word0_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 FBR1unused:5; // bits 27-31 - u32 FBR1wrap:1; // bit 26 - u32 FBR1offset:10; // bits 16-25 - u32 FBR0unused:5; // bits 11-15 - u32 FBR0wrap:1; // bit 10 - u32 FBR0offset:10; // bits 0-9 -#else - u32 FBR0offset:10; // bits 0-9 - u32 FBR0wrap:1; // bit 10 - u32 FBR0unused:5; // bits 11-15 - u32 FBR1offset:10; // bits 16-25 - u32 FBR1wrap:1; // bit 26 - u32 FBR1unused:5; // bits 27-31 -#endif - } bits; -} RXSTAT_WORD0_t, *PRXSTAT_WORD0_t; - -/* - * RXSTAT_WORD1_t structure holds part of the status bits of the Rx DMA engine - * that get copied out to memory by the ET-1310. Word 3 is a 32 bit word - * which contains the Packet Status Ring available offset. - */ -typedef union _rxstat_word1_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 PSRunused:3; // bits 29-31 - u32 PSRwrap:1; // bit 28 - u32 PSRoffset:12; // bits 16-27 - u32 reserved:16; // bits 0-15 -#else - u32 reserved:16; // bits 0-15 - u32 PSRoffset:12; // bits 16-27 - u32 PSRwrap:1; // bit 28 - u32 PSRunused:3; // bits 29-31 -#endif - } bits; -} RXSTAT_WORD1_t, *PRXSTAT_WORD1_t; - -/* - * RX_STATUS_BLOCK_t is sructure representing the status of the Rx DMA engine - * it sits in free memory, and is pointed to by 0x101c / 0x1020 - */ -typedef struct _rx_status_block_t { - RXSTAT_WORD0_t Word0; - RXSTAT_WORD1_t Word1; -} RX_STATUS_BLOCK_t, *PRX_STATUS_BLOCK_t; - -/* - * Structure for look-up table holding free buffer ring pointers - */ -typedef struct _FbrLookupTable { - void *Va[MAX_DESC_PER_RING_RX]; - void *Buffer1[MAX_DESC_PER_RING_RX]; - void *Buffer2[MAX_DESC_PER_RING_RX]; - u32 PAHigh[MAX_DESC_PER_RING_RX]; - u32 PALow[MAX_DESC_PER_RING_RX]; -} FBRLOOKUPTABLE, *PFBRLOOKUPTABLE; - -typedef enum { - ONE_PACKET_INTERRUPT, - FOUR_PACKET_INTERRUPT -} eRX_INTERRUPT_STATE_t, *PeRX_INTERRUPT_STATE_t; - -/* - * Structure to hold the skb's in a list - */ -typedef struct rx_skb_list_elem { - struct list_head skb_list_elem; - dma_addr_t dma_addr; - struct sk_buff *skb; -} RX_SKB_LIST_ELEM, *PRX_SKB_LIST_ELEM; - -/* - * RX_RING_t is sructure representing the adaptor's local reference(s) to the - * rings - */ -typedef struct _rx_ring_t { -#ifdef USE_FBR0 - void *pFbr0RingVa; - dma_addr_t pFbr0RingPa; - void *Fbr0MemVa[MAX_DESC_PER_RING_RX / FBR_CHUNKS]; - dma_addr_t Fbr0MemPa[MAX_DESC_PER_RING_RX / FBR_CHUNKS]; - uint64_t Fbr0Realpa; - uint64_t Fbr0offset; - DMA10W_t local_Fbr0_full; - u32 Fbr0NumEntries; - u32 Fbr0BufferSize; -#endif - void *pFbr1RingVa; - dma_addr_t pFbr1RingPa; - void *Fbr1MemVa[MAX_DESC_PER_RING_RX / FBR_CHUNKS]; - dma_addr_t Fbr1MemPa[MAX_DESC_PER_RING_RX / FBR_CHUNKS]; - uint64_t Fbr1Realpa; - uint64_t Fbr1offset; - FBRLOOKUPTABLE *Fbr[2]; - DMA10W_t local_Fbr1_full; - u32 Fbr1NumEntries; - u32 Fbr1BufferSize; - - void *pPSRingVa; - dma_addr_t pPSRingPa; - uint64_t pPSRingRealPa; - uint64_t pPSRingOffset; - RXDMA_PSR_FULL_OFFSET_t local_psr_full; - u32 PsrNumEntries; - - void *pRxStatusVa; - dma_addr_t pRxStatusPa; - uint64_t RxStatusRealPA; - uint64_t RxStatusOffset; - - struct list_head RecvBufferPool; - - /* RECV */ - struct list_head RecvList; - struct list_head RecvPendingList; - u32 nReadyRecv; - - u32 NumRfd; - - bool UnfinishedReceives; - - struct list_head RecvPacketPool; - - /* lookaside lists */ - struct kmem_cache *RecvLookaside; -} RX_RING_t, *PRX_RING_t; - -/* Forward reference of RFD */ -struct _MP_RFD; - -/* Forward declaration of the private adapter structure */ -struct et131x_adapter; - -/* PROTOTYPES for Initialization */ -int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter); -void et131x_rx_dma_memory_free(struct et131x_adapter *adapter); -int et131x_rfd_resources_alloc(struct et131x_adapter *adapter, - struct _MP_RFD *pMpRfd); -void et131x_rfd_resources_free(struct et131x_adapter *adapter, - struct _MP_RFD *pMpRfd); -int et131x_init_recv(struct et131x_adapter *adapter); - -void ConfigRxDmaRegs(struct et131x_adapter *adapter); -void SetRxDmaTimer(struct et131x_adapter *adapter); -void et131x_rx_dma_disable(struct et131x_adapter *adapter); -void et131x_rx_dma_enable(struct et131x_adapter *adapter); - -void et131x_reset_recv(struct et131x_adapter *adapter); - -void et131x_handle_recv_interrupt(struct et131x_adapter *adapter); - -#endif /* __ET1310_RX_H__ */ diff --git a/src/et131x/et1310_tx.c b/src/et131x/et1310_tx.c deleted file mode 100644 index a95c260..0000000 --- a/src/et131x/et1310_tx.c +++ /dev/null @@ -1,1525 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_tx.c - Routines used to perform data transmission. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/pci.h> -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" - -#include "et131x_adapter.h" -#include "et131x_initpci.h" -#include "et131x_isr.h" - -#include "et1310_tx.h" - -/* Data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -extern dbg_info_t *et131x_dbginfo; -#endif /* CONFIG_ET131X_DEBUG */ - -static void et131x_update_tcb_list(struct et131x_adapter *pAdapter); -static void et131x_check_send_wait_list(struct et131x_adapter *pAdapter); -static inline void et131x_free_send_packet(struct et131x_adapter *pAdapter, - PMP_TCB pMpTcb); -static int et131x_send_packet(struct sk_buff *skb, - struct et131x_adapter *pAdapter); -static int nic_send_packet(struct et131x_adapter *pAdapter, PMP_TCB pMpTcb); - -/** - * et131x_tx_dma_memory_alloc - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success and errno on failure (as defined in errno.h). - * - * Allocates memory that will be visible both to the device and to the CPU. - * The OS will pass us packets, pointers to which we will insert in the Tx - * Descriptor queue. The device will read this queue to find the packets in - * memory. The device will update the "status" in memory each time it xmits a - * packet. - */ -int et131x_tx_dma_memory_alloc(struct et131x_adapter *adapter) -{ - int desc_size = 0; - TX_RING_t *tx_ring = &adapter->TxRing; - - DBG_ENTER(et131x_dbginfo); - - /* Allocate memory for the TCB's (Transmit Control Block) */ - adapter->TxRing.MpTcbMem = (MP_TCB *) kcalloc(NUM_TCB, sizeof(MP_TCB), - GFP_ATOMIC | GFP_DMA); - if (!adapter->TxRing.MpTcbMem) { - DBG_ERROR(et131x_dbginfo, "Cannot alloc memory for TCBs\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - /* Allocate enough memory for the Tx descriptor ring, and allocate - * some extra so that the ring can be aligned on a 4k boundary. - */ - desc_size = (sizeof(TX_DESC_ENTRY_t) * NUM_DESC_PER_RING_TX) + 4096 - 1; - tx_ring->pTxDescRingVa = - (PTX_DESC_ENTRY_t) pci_alloc_consistent(adapter->pdev, desc_size, - &tx_ring->pTxDescRingPa); - if (!adapter->TxRing.pTxDescRingVa) { - DBG_ERROR(et131x_dbginfo, "Cannot alloc memory for Tx Ring\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - /* Save physical address - * - * NOTE: pci_alloc_consistent(), used above to alloc DMA regions, - * ALWAYS returns SAC (32-bit) addresses. If DAC (64-bit) addresses - * are ever returned, make sure the high part is retrieved here before - * storing the adjusted address. - */ - tx_ring->pTxDescRingAdjustedPa = tx_ring->pTxDescRingPa; - - /* Align Tx Descriptor Ring on a 4k (0x1000) byte boundary */ - et131x_align_allocated_memory(adapter, - &tx_ring->pTxDescRingAdjustedPa, - &tx_ring->TxDescOffset, 0x0FFF); - - tx_ring->pTxDescRingVa += tx_ring->TxDescOffset; - - /* Allocate memory for the Tx status block */ - tx_ring->pTxStatusVa = pci_alloc_consistent(adapter->pdev, - sizeof(TX_STATUS_BLOCK_t), - &tx_ring->pTxStatusPa); - if (!adapter->TxRing.pTxStatusPa) { - DBG_ERROR(et131x_dbginfo, - "Cannot alloc memory for Tx status block\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - /* Allocate memory for a dummy buffer */ - tx_ring->pTxDummyBlkVa = pci_alloc_consistent(adapter->pdev, - NIC_MIN_PACKET_SIZE, - &tx_ring->pTxDummyBlkPa); - if (!adapter->TxRing.pTxDummyBlkPa) { - DBG_ERROR(et131x_dbginfo, - "Cannot alloc memory for Tx dummy buffer\n"); - DBG_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - DBG_LEAVE(et131x_dbginfo); - return 0; -} - -/** - * et131x_tx_dma_memory_free - Free all memory allocated within this module - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success and errno on failure (as defined in errno.h). - */ -void et131x_tx_dma_memory_free(struct et131x_adapter *adapter) -{ - int desc_size = 0; - - DBG_ENTER(et131x_dbginfo); - - if (adapter->TxRing.pTxDescRingVa) { - /* Free memory relating to Tx rings here */ - adapter->TxRing.pTxDescRingVa -= adapter->TxRing.TxDescOffset; - - desc_size = - (sizeof(TX_DESC_ENTRY_t) * NUM_DESC_PER_RING_TX) + 4096 - 1; - - pci_free_consistent(adapter->pdev, - desc_size, - adapter->TxRing.pTxDescRingVa, - adapter->TxRing.pTxDescRingPa); - - adapter->TxRing.pTxDescRingVa = NULL; - } - - /* Free memory for the Tx status block */ - if (adapter->TxRing.pTxStatusVa) { - pci_free_consistent(adapter->pdev, - sizeof(TX_STATUS_BLOCK_t), - adapter->TxRing.pTxStatusVa, - adapter->TxRing.pTxStatusPa); - - adapter->TxRing.pTxStatusVa = NULL; - } - - /* Free memory for the dummy buffer */ - if (adapter->TxRing.pTxDummyBlkVa) { - pci_free_consistent(adapter->pdev, - NIC_MIN_PACKET_SIZE, - adapter->TxRing.pTxDummyBlkVa, - adapter->TxRing.pTxDummyBlkPa); - - adapter->TxRing.pTxDummyBlkVa = NULL; - } - - /* Free the memory for MP_TCB structures */ - if (adapter->TxRing.MpTcbMem) { - kfree(adapter->TxRing.MpTcbMem); - adapter->TxRing.MpTcbMem = NULL; - } - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * ConfigTxDmaRegs - Set up the tx dma section of the JAGCore. - * @adapter: pointer to our private adapter structure - */ -void ConfigTxDmaRegs(struct et131x_adapter *pAdapter) -{ - struct _TXDMA_t __iomem *pTxDma = &pAdapter->CSRAddress->txdma; - - DBG_ENTER(et131x_dbginfo); - - /* Load the hardware with the start of the transmit descriptor ring. */ - writel((uint32_t) (pAdapter->TxRing.pTxDescRingAdjustedPa >> 32), - &pTxDma->pr_base_hi); - writel((uint32_t) pAdapter->TxRing.pTxDescRingAdjustedPa, - &pTxDma->pr_base_lo); - - /* Initialise the transmit DMA engine */ - writel(NUM_DESC_PER_RING_TX - 1, &pTxDma->pr_num_des.value); - - /* Load the completion writeback physical address - * - * NOTE: pci_alloc_consistent(), used above to alloc DMA regions, - * ALWAYS returns SAC (32-bit) addresses. If DAC (64-bit) addresses - * are ever returned, make sure the high part is retrieved here before - * storing the adjusted address. - */ - writel(0, &pTxDma->dma_wb_base_hi); - writel(pAdapter->TxRing.pTxStatusPa, &pTxDma->dma_wb_base_lo); - - memset(pAdapter->TxRing.pTxStatusVa, 0, sizeof(TX_STATUS_BLOCK_t)); - - writel(0, &pTxDma->service_request.value); - pAdapter->TxRing.txDmaReadyToSend.value = 0; - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_tx_dma_disable - Stop of Tx_DMA on the ET1310 - * @pAdapter: pointer to our adapter structure - */ -void et131x_tx_dma_disable(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Setup the tramsmit dma configuration register */ - writel(0x101, &pAdapter->CSRAddress->txdma.csr.value); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_tx_dma_enable - re-start of Tx_DMA on the ET1310. - * @pAdapter: pointer to our adapter structure - * - * Mainly used after a return to the D0 (full-power) state from a lower state. - */ -void et131x_tx_dma_enable(struct et131x_adapter *pAdapter) -{ - DBG_ENTER(et131x_dbginfo); - - if (pAdapter->RegistryPhyLoopbk) { - /* TxDMA is disabled for loopback operation. */ - writel(0x101, &pAdapter->CSRAddress->txdma.csr.value); - } else { - TXDMA_CSR_t csr = { 0 }; - - /* Setup the transmit dma configuration register for normal - * operation - */ - csr.bits.sngl_epkt_mode = 1; - csr.bits.halt = 0; - csr.bits.cache_thrshld = pAdapter->RegistryDMACache; - writel(csr.value, &pAdapter->CSRAddress->txdma.csr.value); - } - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_init_send - Initialize send data structures - * @adapter: pointer to our private adapter structure - */ -void et131x_init_send(struct et131x_adapter *adapter) -{ - PMP_TCB pMpTcb; - uint32_t TcbCount; - TX_RING_t *tx_ring; - - DBG_ENTER(et131x_dbginfo); - - /* Setup some convenience pointers */ - tx_ring = &adapter->TxRing; - pMpTcb = adapter->TxRing.MpTcbMem; - - tx_ring->TCBReadyQueueHead = pMpTcb; - - /* Go through and set up each TCB */ - for (TcbCount = 0; TcbCount < NUM_TCB; TcbCount++) { - memset(pMpTcb, 0, sizeof(MP_TCB)); - - /* Set the link pointer in HW TCB to the next TCB in the - * chain. If this is the last TCB in the chain, also set the - * tail pointer. - */ - if (TcbCount < NUM_TCB - 1) { - pMpTcb->Next = pMpTcb + 1; - } else { - tx_ring->TCBReadyQueueTail = pMpTcb; - pMpTcb->Next = (PMP_TCB) NULL; - } - - pMpTcb++; - } - - /* Curr send queue should now be empty */ - tx_ring->CurrSendHead = (PMP_TCB) NULL; - tx_ring->CurrSendTail = (PMP_TCB) NULL; - - INIT_LIST_HEAD(&adapter->TxRing.SendWaitQueue); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_send_packets - This function is called by the OS to send packets - * @skb: the packet(s) to send - * @netdev:device on which to TX the above packet(s) - * - * Return 0 in almost all cases; non-zero value in extreme hard failure only - */ -int et131x_send_packets(struct sk_buff *skb, struct net_device *netdev) -{ - int status = 0; - struct et131x_adapter *pAdapter = NULL; - - DBG_TX_ENTER(et131x_dbginfo); - - pAdapter = netdev_priv(netdev); - - /* Send these packets - * - * NOTE: The Linux Tx entry point is only given one packet at a time - * to Tx, so the PacketCount and it's array used makes no sense here - */ - - /* Queue is not empty or TCB is not available */ - if (!list_empty(&pAdapter->TxRing.SendWaitQueue) || - MP_TCB_RESOURCES_NOT_AVAILABLE(pAdapter)) { - /* NOTE: If there's an error on send, no need to queue the - * packet under Linux; if we just send an error up to the - * netif layer, it will resend the skb to us. - */ - DBG_VERBOSE(et131x_dbginfo, "TCB Resources Not Available\n"); - status = -ENOMEM; - } else { - /* We need to see if the link is up; if it's not, make the - * netif layer think we're good and drop the packet - */ - //if( MP_SHOULD_FAIL_SEND( pAdapter ) || pAdapter->DriverNoPhyAccess ) - if (MP_SHOULD_FAIL_SEND(pAdapter) || pAdapter->DriverNoPhyAccess - || !netif_carrier_ok(netdev)) { - DBG_VERBOSE(et131x_dbginfo, - "Can't Tx, Link is DOWN; drop the packet\n"); - - dev_kfree_skb_any(skb); - skb = NULL; - - pAdapter->net_stats.tx_dropped++; - } else { - status = et131x_send_packet(skb, pAdapter); - - if (status == -ENOMEM) { - - /* NOTE: If there's an error on send, no need - * to queue the packet under Linux; if we just - * send an error up to the netif layer, it - * will resend the skb to us. - */ - DBG_WARNING(et131x_dbginfo, - "Resources problem, Queue tx packet\n"); - } else if (status != 0) { - /* On any other error, make netif think we're - * OK and drop the packet - */ - DBG_WARNING(et131x_dbginfo, - "General error, drop packet\n"); - - dev_kfree_skb_any(skb); - skb = NULL; - - pAdapter->net_stats.tx_dropped++; - } - } - } - - DBG_TX_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_send_packet - Do the work to send a packet - * @skb: the packet(s) to send - * @pAdapter: a pointer to the device's private adapter structure - * - * Return 0 in almost all cases; non-zero value in extreme hard failure only. - * - * Assumption: Send spinlock has been acquired - */ -static int et131x_send_packet(struct sk_buff *skb, - struct et131x_adapter *pAdapter) -{ - int status = 0; - PMP_TCB pMpTcb = NULL; - uint16_t *pShBufVa; - unsigned long lockflags; - - DBG_TX_ENTER(et131x_dbginfo); - - /* Is our buffer scattered, or continuous? */ - if (skb_shinfo(skb)->nr_frags == 0) { - DBG_TX(et131x_dbginfo, "Scattered buffer: NO\n"); - } else { - DBG_TX(et131x_dbginfo, "Scattered buffer: YES, Num Frags: %d\n", - skb_shinfo(skb)->nr_frags); - } - - /* All packets must have at least a MAC address and a protocol type */ - if (skb->len < ETH_HLEN) { - DBG_ERROR(et131x_dbginfo, - "Packet size < ETH_HLEN (14 bytes)\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - - /* Get a TCB for this packet */ - spin_lock_irqsave(&pAdapter->TCBReadyQLock, lockflags); - - pMpTcb = pAdapter->TxRing.TCBReadyQueueHead; - - if (pMpTcb == NULL) { - spin_unlock_irqrestore(&pAdapter->TCBReadyQLock, lockflags); - - DBG_WARNING(et131x_dbginfo, "Can't obtain a TCB\n"); - DBG_TX_LEAVE(et131x_dbginfo); - return -ENOMEM; - } - - pAdapter->TxRing.TCBReadyQueueHead = pMpTcb->Next; - - if (pAdapter->TxRing.TCBReadyQueueHead == NULL) { - pAdapter->TxRing.TCBReadyQueueTail = NULL; - } - - spin_unlock_irqrestore(&pAdapter->TCBReadyQLock, lockflags); - - pMpTcb->PacketLength = skb->len; - pMpTcb->Packet = skb; - - if ((skb->data != NULL) && ((skb->len - skb->data_len) >= 6)) { - pShBufVa = (uint16_t *) skb->data; - - if ((pShBufVa[0] == 0xffff) && - (pShBufVa[1] == 0xffff) && (pShBufVa[2] == 0xffff)) { - MP_SET_FLAG(pMpTcb, fMP_DEST_BROAD); - } else if ((pShBufVa[0] & 0x3) == 0x0001) { - MP_SET_FLAG(pMpTcb, fMP_DEST_MULTI); - } - } - - pMpTcb->Next = NULL; - - /* Call the NIC specific send handler. */ - if (status == 0) { - status = nic_send_packet(pAdapter, pMpTcb); - } - - if (status != 0) { - spin_lock_irqsave(&pAdapter->TCBReadyQLock, lockflags); - - if (pAdapter->TxRing.TCBReadyQueueTail) { - pAdapter->TxRing.TCBReadyQueueTail->Next = pMpTcb; - } else { - /* Apparently ready Q is empty. */ - pAdapter->TxRing.TCBReadyQueueHead = pMpTcb; - } - - pAdapter->TxRing.TCBReadyQueueTail = pMpTcb; - - spin_unlock_irqrestore(&pAdapter->TCBReadyQLock, lockflags); - - DBG_TX_LEAVE(et131x_dbginfo); - return status; - } - - DBG_ASSERT(pAdapter->TxRing.nBusySend <= NUM_TCB); - - DBG_TX_LEAVE(et131x_dbginfo); - return 0; -} - -/** - * nic_send_packet - NIC specific send handler for version B silicon. - * @pAdapter: pointer to our adapter - * @pMpTcb: pointer to MP_TCB - * - * Returns 0 or errno. - */ -static int nic_send_packet(struct et131x_adapter *pAdapter, PMP_TCB pMpTcb) -{ - uint32_t loopIndex; - TX_DESC_ENTRY_t CurDesc[24]; - uint32_t FragmentNumber = 0; - uint32_t iThisCopy, iRemainder; - struct sk_buff *pPacket = pMpTcb->Packet; - uint32_t FragListCount = skb_shinfo(pPacket)->nr_frags + 1; - struct skb_frag_struct *pFragList = &skb_shinfo(pPacket)->frags[0]; - unsigned long lockflags1, lockflags2; - - DBG_TX_ENTER(et131x_dbginfo); - - /* Part of the optimizations of this send routine restrict us to - * sending 24 fragments at a pass. In practice we should never see - * more than 5 fragments. - * - * NOTE: The older version of this function (below) can handle any - * number of fragments. If needed, we can call this function, - * although it is less efficient. - */ - if (FragListCount > 23) { - DBG_TX_LEAVE(et131x_dbginfo); - return -EIO; - } - - memset(CurDesc, 0, sizeof(TX_DESC_ENTRY_t) * (FragListCount + 1)); - - for (loopIndex = 0; loopIndex < FragListCount; loopIndex++) { - /* If there is something in this element, lets get a - * descriptor from the ring and get the necessary data - */ - if (loopIndex == 0) { - /* If the fragments are smaller than a standard MTU, - * then map them to a single descriptor in the Tx - * Desc ring. However, if they're larger, as is - * possible with support for jumbo packets, then - * split them each across 2 descriptors. - * - * This will work until we determine why the hardware - * doesn't seem to like large fragments. - */ - if ((pPacket->len - pPacket->data_len) <= 1514) { - DBG_TX(et131x_dbginfo, - "Got packet of length %d, " - "filling desc entry %d, " - "TCB: 0x%p\n", - (pPacket->len - pPacket->data_len), - pAdapter->TxRing.txDmaReadyToSend.bits. - val, pMpTcb); - - CurDesc[FragmentNumber].DataBufferPtrHigh = 0; - - CurDesc[FragmentNumber].word2.bits. - length_in_bytes = - pPacket->len - pPacket->data_len; - - /* NOTE: Here, the dma_addr_t returned from - * pci_map_single() is implicitly cast as a - * uint32_t. Although dma_addr_t can be - * 64-bit, the address returned by - * pci_map_single() is always 32-bit - * addressable (as defined by the pci/dma - * subsystem) - */ - CurDesc[FragmentNumber++].DataBufferPtrLow = - pci_map_single(pAdapter->pdev, - pPacket->data, - pPacket->len - - pPacket->data_len, - PCI_DMA_TODEVICE); - } else { - DBG_TX(et131x_dbginfo, - "Got packet of length %d, " - "filling desc entry %d, " - "TCB: 0x%p\n", - (pPacket->len - pPacket->data_len), - pAdapter->TxRing.txDmaReadyToSend.bits. - val, pMpTcb); - - CurDesc[FragmentNumber].DataBufferPtrHigh = 0; - - CurDesc[FragmentNumber].word2.bits. - length_in_bytes = - ((pPacket->len - pPacket->data_len) / 2); - - /* NOTE: Here, the dma_addr_t returned from - * pci_map_single() is implicitly cast as a - * uint32_t. Although dma_addr_t can be - * 64-bit, the address returned by - * pci_map_single() is always 32-bit - * addressable (as defined by the pci/dma - * subsystem) - */ - CurDesc[FragmentNumber++].DataBufferPtrLow = - pci_map_single(pAdapter->pdev, - pPacket->data, - ((pPacket->len - - pPacket->data_len) / 2), - PCI_DMA_TODEVICE); - CurDesc[FragmentNumber].DataBufferPtrHigh = 0; - - CurDesc[FragmentNumber].word2.bits. - length_in_bytes = - ((pPacket->len - pPacket->data_len) / 2); - - /* NOTE: Here, the dma_addr_t returned from - * pci_map_single() is implicitly cast as a - * uint32_t. Although dma_addr_t can be - * 64-bit, the address returned by - * pci_map_single() is always 32-bit - * addressable (as defined by the pci/dma - * subsystem) - */ - CurDesc[FragmentNumber++].DataBufferPtrLow = - pci_map_single(pAdapter->pdev, - pPacket->data + - ((pPacket->len - - pPacket->data_len) / 2), - ((pPacket->len - - pPacket->data_len) / 2), - PCI_DMA_TODEVICE); - } - } else { - DBG_TX(et131x_dbginfo, - "Got packet of length %d," - "filling desc entry %d\n" - "TCB: 0x%p\n", - pFragList[loopIndex].size, - pAdapter->TxRing.txDmaReadyToSend.bits.val, - pMpTcb); - - CurDesc[FragmentNumber].DataBufferPtrHigh = 0; - - CurDesc[FragmentNumber].word2.bits.length_in_bytes = - pFragList[loopIndex - 1].size; - - /* NOTE: Here, the dma_addr_t returned from - * pci_map_page() is implicitly cast as a uint32_t. - * Although dma_addr_t can be 64-bit, the address - * returned by pci_map_page() is always 32-bit - * addressable (as defined by the pci/dma subsystem) - */ - CurDesc[FragmentNumber++].DataBufferPtrLow = - pci_map_page(pAdapter->pdev, - pFragList[loopIndex - 1].page, - pFragList[loopIndex - 1].page_offset, - pFragList[loopIndex - 1].size, - PCI_DMA_TODEVICE); - } - } - - if (FragmentNumber == 0) { - DBG_WARNING(et131x_dbginfo, "No. frags is 0\n"); - return -EIO; - } - - if (pAdapter->uiLinkSpeed == TRUEPHY_SPEED_1000MBPS) { - if (++pAdapter->TxRing.TxPacketsSinceLastinterrupt == - pAdapter->RegistryTxNumBuffers) { - CurDesc[FragmentNumber - 1].word3.value = 0x5; - pAdapter->TxRing.TxPacketsSinceLastinterrupt = 0; - } else { - CurDesc[FragmentNumber - 1].word3.value = 0x1; - } - } else { - CurDesc[FragmentNumber - 1].word3.value = 0x5; - } - - CurDesc[0].word3.bits.f = 1; - - pMpTcb->WrIndexStart = pAdapter->TxRing.txDmaReadyToSend; - pMpTcb->PacketStaleCount = 0; - - spin_lock_irqsave(&pAdapter->SendHWLock, lockflags1); - - iThisCopy = - NUM_DESC_PER_RING_TX - pAdapter->TxRing.txDmaReadyToSend.bits.val; - - if (iThisCopy >= FragmentNumber) { - iRemainder = 0; - iThisCopy = FragmentNumber; - } else { - iRemainder = FragmentNumber - iThisCopy; - } - - memcpy(pAdapter->TxRing.pTxDescRingVa + - pAdapter->TxRing.txDmaReadyToSend.bits.val, CurDesc, - sizeof(TX_DESC_ENTRY_t) * iThisCopy); - - pAdapter->TxRing.txDmaReadyToSend.bits.val += iThisCopy; - - if ((pAdapter->TxRing.txDmaReadyToSend.bits.val == 0) || - (pAdapter->TxRing.txDmaReadyToSend.bits.val == - NUM_DESC_PER_RING_TX)) { - if (pAdapter->TxRing.txDmaReadyToSend.bits.wrap) { - pAdapter->TxRing.txDmaReadyToSend.value = 0; - } else { - pAdapter->TxRing.txDmaReadyToSend.value = 0x400; - } - } - - if (iRemainder) { - memcpy(pAdapter->TxRing.pTxDescRingVa, - CurDesc + iThisCopy, - sizeof(TX_DESC_ENTRY_t) * iRemainder); - - pAdapter->TxRing.txDmaReadyToSend.bits.val += iRemainder; - } - - if (pAdapter->TxRing.txDmaReadyToSend.bits.val == 0) { - if (pAdapter->TxRing.txDmaReadyToSend.value) { - pMpTcb->WrIndex.value = NUM_DESC_PER_RING_TX - 1; - } else { - pMpTcb->WrIndex.value = - 0x400 | (NUM_DESC_PER_RING_TX - 1); - } - } else { - pMpTcb->WrIndex.value = - pAdapter->TxRing.txDmaReadyToSend.value - 1; - } - - spin_lock_irqsave(&pAdapter->TCBSendQLock, lockflags2); - - if (pAdapter->TxRing.CurrSendTail) { - pAdapter->TxRing.CurrSendTail->Next = pMpTcb; - } else { - pAdapter->TxRing.CurrSendHead = pMpTcb; - } - - pAdapter->TxRing.CurrSendTail = pMpTcb; - - DBG_ASSERT(pMpTcb->Next == NULL); - - pAdapter->TxRing.nBusySend++; - - spin_unlock_irqrestore(&pAdapter->TCBSendQLock, lockflags2); - - /* Write the new write pointer back to the device. */ - writel(pAdapter->TxRing.txDmaReadyToSend.value, - &pAdapter->CSRAddress->txdma.service_request.value); - - /* For Gig only, we use Tx Interrupt coalescing. Enable the software - * timer to wake us up if this packet isn't followed by N more. - */ - if (pAdapter->uiLinkSpeed == TRUEPHY_SPEED_1000MBPS) { - writel(pAdapter->RegistryTxTimeInterval * NANO_IN_A_MICRO, - &pAdapter->CSRAddress->global.watchdog_timer); - } - - spin_unlock_irqrestore(&pAdapter->SendHWLock, lockflags1); - - DBG_TX_LEAVE(et131x_dbginfo); - return 0; -} - -/* - * NOTE: For now, keep this older version of NICSendPacket around for - * reference, even though it's not used - */ -#if 0 - -/** - * NICSendPacket - NIC specific send handler. - * @pAdapter: pointer to our adapter - * @pMpTcb: pointer to MP_TCB - * - * Returns 0 on succes, errno on failure. - * - * This version of the send routine is designed for version A silicon. - * Assumption - Send spinlock has been acquired. - */ -static int nic_send_packet(struct et131x_adapter *pAdapter, PMP_TCB pMpTcb) -{ - uint32_t loopIndex, fragIndex, loopEnd; - uint32_t iSplitFirstElement = 0; - uint32_t SegmentSize = 0; - TX_DESC_ENTRY_t CurDesc; - TX_DESC_ENTRY_t *CurDescPostCopy = NULL; - uint32_t SlotsAvailable; - DMA10W_t ServiceComplete; - unsigned int lockflags1, lockflags2; - struct sk_buff *pPacket = pMpTcb->Packet; - uint32_t FragListCount = skb_shinfo(pPacket)->nr_frags + 1; - struct skb_frag_struct *pFragList = &skb_shinfo(pPacket)->frags[0]; - - DBG_TX_ENTER(et131x_dbginfo); - - ServiceComplete.value = - readl(&pAdapter->CSRAddress->txdma.NewServiceComplete.value); - - /* - * Attempt to fix TWO hardware bugs: - * 1) NEVER write an odd number of descriptors. - * 2) If packet length is less than NIC_MIN_PACKET_SIZE, then pad the - * packet to NIC_MIN_PACKET_SIZE bytes by adding a new last - * descriptor IN HALF DUPLEX MODE ONLY - * NOTE that (2) interacts with (1). If the packet is less than - * NIC_MIN_PACKET_SIZE bytes then we will append a descriptor. - * Therefore if it is even now, it will eventually end up odd, and - * so will need adjusting. - * - * VLAN tags get involved since VLAN tags add another one or two - * segments. - */ - DBG_TX(et131x_dbginfo, - "pMpTcb->PacketLength: %d\n", pMpTcb->PacketLength); - - if ((pAdapter->uiDuplexMode == 0) - && (pMpTcb->PacketLength < NIC_MIN_PACKET_SIZE)) { - DBG_TX(et131x_dbginfo, - "HALF DUPLEX mode AND len < MIN_PKT_SIZE\n"); - if ((FragListCount & 0x1) == 0) { - DBG_TX(et131x_dbginfo, - "Even number of descs, split 1st elem\n"); - iSplitFirstElement = 1; - //SegmentSize = pFragList[0].size / 2; - SegmentSize = (pPacket->len - pPacket->data_len) / 2; - } - } else if (FragListCount & 0x1) { - DBG_TX(et131x_dbginfo, "Odd number of descs, split 1st elem\n"); - - iSplitFirstElement = 1; - //SegmentSize = pFragList[0].size / 2; - SegmentSize = (pPacket->len - pPacket->data_len) / 2; - } - - spin_lock_irqsave(&pAdapter->SendHWLock, lockflags1); - - if (pAdapter->TxRing.txDmaReadyToSend.bits.serv_req_wrap == - ServiceComplete.bits.serv_cpl_wrap) { - /* The ring hasn't wrapped. Slots available should be - * (RING_SIZE) - the difference between the two pointers. - */ - SlotsAvailable = NUM_DESC_PER_RING_TX - - (pAdapter->TxRing.txDmaReadyToSend.bits.serv_req - - ServiceComplete.bits.serv_cpl); - } else { - /* The ring has wrapped. Slots available should be the - * difference between the two pointers. - */ - SlotsAvailable = ServiceComplete.bits.serv_cpl - - pAdapter->TxRing.txDmaReadyToSend.bits.serv_req; - } - - if ((FragListCount + iSplitFirstElement) > SlotsAvailable) { - DBG_WARNING(et131x_dbginfo, - "Not Enough Space in Tx Desc Ring\n"); - spin_unlock_irqrestore(&pAdapter->SendHWLock, lockflags1); - return -ENOMEM; - } - - loopEnd = (FragListCount) + iSplitFirstElement; - fragIndex = 0; - - DBG_TX(et131x_dbginfo, - "TCB : 0x%p\n" - "Packet (SKB) : 0x%p\t Packet->len: %d\t Packet->data_len: %d\n" - "FragListCount : %d\t iSplitFirstElement: %d\t loopEnd:%d\n", - pMpTcb, - pPacket, pPacket->len, pPacket->data_len, - FragListCount, iSplitFirstElement, loopEnd); - - for (loopIndex = 0; loopIndex < loopEnd; loopIndex++) { - if (loopIndex > iSplitFirstElement) { - fragIndex++; - } - - DBG_TX(et131x_dbginfo, - "In loop, loopIndex: %d\t fragIndex: %d\n", loopIndex, - fragIndex); - - /* If there is something in this element, let's get a - * descriptor from the ring and get the necessary data - */ - DBG_TX(et131x_dbginfo, - "Packet Length %d," - "filling desc entry %d\n", - pPacket->len, - pAdapter->TxRing.txDmaReadyToSend.bits.serv_req); - - // NOTE - Should we do a paranoia check here to make sure the fragment - // actually has a length? It's HIGHLY unlikely the fragment would - // contain no data... - if (1) { - // NOTE - Currently always getting 32-bit addrs, and dma_addr_t is - // only 32-bit, so leave "high" ptr value out for now - CurDesc.DataBufferPtrHigh = 0; - - CurDesc.word2.value = 0; - CurDesc.word3.value = 0; - - if (fragIndex == 0) { - if (iSplitFirstElement) { - DBG_TX(et131x_dbginfo, - "Split first element: YES\n"); - - if (loopIndex == 0) { - DBG_TX(et131x_dbginfo, - "Got fragment of length %d, fragIndex: %d\n", - pPacket->len - - pPacket->data_len, - fragIndex); - DBG_TX(et131x_dbginfo, - "SegmentSize: %d\n", - SegmentSize); - - CurDesc.word2.bits. - length_in_bytes = - SegmentSize; - CurDesc.DataBufferPtrLow = - pci_map_single(pAdapter-> - pdev, - pPacket-> - data, - SegmentSize, - PCI_DMA_TODEVICE); - DBG_TX(et131x_dbginfo, - "pci_map_single() returns: 0x%08x\n", - CurDesc. - DataBufferPtrLow); - } else { - DBG_TX(et131x_dbginfo, - "Got fragment of length %d, fragIndex: %d\n", - pPacket->len - - pPacket->data_len, - fragIndex); - DBG_TX(et131x_dbginfo, - "Leftover Size: %d\n", - (pPacket->len - - pPacket->data_len - - SegmentSize)); - - CurDesc.word2.bits. - length_in_bytes = - ((pPacket->len - - pPacket->data_len) - - SegmentSize); - CurDesc.DataBufferPtrLow = - pci_map_single(pAdapter-> - pdev, - (pPacket-> - data + - SegmentSize), - (pPacket-> - len - - pPacket-> - data_len - - SegmentSize), - PCI_DMA_TODEVICE); - DBG_TX(et131x_dbginfo, - "pci_map_single() returns: 0x%08x\n", - CurDesc. - DataBufferPtrLow); - } - } else { - DBG_TX(et131x_dbginfo, - "Split first element: NO\n"); - - CurDesc.word2.bits.length_in_bytes = - pPacket->len - pPacket->data_len; - - CurDesc.DataBufferPtrLow = - pci_map_single(pAdapter->pdev, - pPacket->data, - (pPacket->len - - pPacket->data_len), - PCI_DMA_TODEVICE); - DBG_TX(et131x_dbginfo, - "pci_map_single() returns: 0x%08x\n", - CurDesc.DataBufferPtrLow); - } - } else { - - CurDesc.word2.bits.length_in_bytes = - pFragList[fragIndex - 1].size; - CurDesc.DataBufferPtrLow = - pci_map_page(pAdapter->pdev, - pFragList[fragIndex - 1].page, - pFragList[fragIndex - - 1].page_offset, - pFragList[fragIndex - 1].size, - PCI_DMA_TODEVICE); - DBG_TX(et131x_dbginfo, - "pci_map_page() returns: 0x%08x\n", - CurDesc.DataBufferPtrLow); - } - - if (loopIndex == 0) { - /* This is the first descriptor of the packet - * - * Set the "f" bit to indicate this is the - * first descriptor in the packet. - */ - DBG_TX(et131x_dbginfo, - "This is our FIRST descriptor\n"); - CurDesc.word3.bits.f = 1; - - pMpTcb->WrIndexStart = - pAdapter->TxRing.txDmaReadyToSend; - } - - if ((loopIndex == (loopEnd - 1)) && - (pAdapter->uiDuplexMode || - (pMpTcb->PacketLength >= NIC_MIN_PACKET_SIZE))) { - /* This is the Last descriptor of the packet */ - DBG_TX(et131x_dbginfo, - "THIS is our LAST descriptor\n"); - - if (pAdapter->uiLinkSpeed == - TRUEPHY_SPEED_1000MBPS) { - if (++pAdapter->TxRing. - TxPacketsSinceLastinterrupt >= - pAdapter->RegistryTxNumBuffers) { - CurDesc.word3.value = 0x5; - pAdapter->TxRing. - TxPacketsSinceLastinterrupt - = 0; - } else { - CurDesc.word3.value = 0x1; - } - } else { - CurDesc.word3.value = 0x5; - } - - /* Following index will be used during freeing - * of packet - */ - pMpTcb->WrIndex = - pAdapter->TxRing.txDmaReadyToSend; - pMpTcb->PacketStaleCount = 0; - } - - /* Copy the descriptor (filled above) into the - * descriptor ring at the next free entry. Advance - * the "next free entry" variable - */ - memcpy(pAdapter->TxRing.pTxDescRingVa + - pAdapter->TxRing.txDmaReadyToSend.bits.serv_req, - &CurDesc, sizeof(TX_DESC_ENTRY_t)); - - CurDescPostCopy = - pAdapter->TxRing.pTxDescRingVa + - pAdapter->TxRing.txDmaReadyToSend.bits.serv_req; - - DBG_TX(et131x_dbginfo, - "CURRENT DESCRIPTOR\n" - "\tAddress : 0x%p\n" - "\tDataBufferPtrHigh : 0x%08x\n" - "\tDataBufferPtrLow : 0x%08x\n" - "\tword2 : 0x%08x\n" - "\tword3 : 0x%08x\n", - CurDescPostCopy, - CurDescPostCopy->DataBufferPtrHigh, - CurDescPostCopy->DataBufferPtrLow, - CurDescPostCopy->word2.value, - CurDescPostCopy->word3.value); - - if (++pAdapter->TxRing.txDmaReadyToSend.bits.serv_req >= - NUM_DESC_PER_RING_TX) { - if (pAdapter->TxRing.txDmaReadyToSend.bits. - serv_req_wrap) { - pAdapter->TxRing.txDmaReadyToSend. - value = 0; - } else { - pAdapter->TxRing.txDmaReadyToSend. - value = 0x400; - } - } - } - } - - if (pAdapter->uiDuplexMode == 0 && - pMpTcb->PacketLength < NIC_MIN_PACKET_SIZE) { - // NOTE - Same 32/64-bit issue as above... - CurDesc.DataBufferPtrHigh = 0x0; - CurDesc.DataBufferPtrLow = pAdapter->TxRing.pTxDummyBlkPa; - CurDesc.word2.value = 0; - - if (pAdapter->uiLinkSpeed == TRUEPHY_SPEED_1000MBPS) { - if (++pAdapter->TxRing.TxPacketsSinceLastinterrupt >= - pAdapter->RegistryTxNumBuffers) { - CurDesc.word3.value = 0x5; - pAdapter->TxRing.TxPacketsSinceLastinterrupt = - 0; - } else { - CurDesc.word3.value = 0x1; - } - } else { - CurDesc.word3.value = 0x5; - } - - CurDesc.word2.bits.length_in_bytes = - NIC_MIN_PACKET_SIZE - pMpTcb->PacketLength; - - pMpTcb->WrIndex = pAdapter->TxRing.txDmaReadyToSend; - - memcpy(pAdapter->TxRing.pTxDescRingVa + - pAdapter->TxRing.txDmaReadyToSend.bits.serv_req, - &CurDesc, sizeof(TX_DESC_ENTRY_t)); - - CurDescPostCopy = - pAdapter->TxRing.pTxDescRingVa + - pAdapter->TxRing.txDmaReadyToSend.bits.serv_req; - - DBG_TX(et131x_dbginfo, - "CURRENT DESCRIPTOR\n" - "\tAddress : 0x%p\n" - "\tDataBufferPtrHigh : 0x%08x\n" - "\tDataBufferPtrLow : 0x%08x\n" - "\tword2 : 0x%08x\n" - "\tword3 : 0x%08x\n", - CurDescPostCopy, - CurDescPostCopy->DataBufferPtrHigh, - CurDescPostCopy->DataBufferPtrLow, - CurDescPostCopy->word2.value, - CurDescPostCopy->word3.value); - - if (++pAdapter->TxRing.txDmaReadyToSend.bits.serv_req >= - NUM_DESC_PER_RING_TX) { - if (pAdapter->TxRing.txDmaReadyToSend.bits. - serv_req_wrap) { - pAdapter->TxRing.txDmaReadyToSend.value = 0; - } else { - pAdapter->TxRing.txDmaReadyToSend.value = 0x400; - } - } - - DBG_TX(et131x_dbginfo, "Padding descriptor %d by %d bytes\n", - //pAdapter->TxRing.txDmaReadyToSend.value, - pAdapter->TxRing.txDmaReadyToSend.bits.serv_req, - NIC_MIN_PACKET_SIZE - pMpTcb->PacketLength); - } - - spin_lock_irqsave(&pAdapter->TCBSendQLock, lockflags2); - - if (pAdapter->TxRing.CurrSendTail) { - pAdapter->TxRing.CurrSendTail->Next = pMpTcb; - } else { - pAdapter->TxRing.CurrSendHead = pMpTcb; - } - - pAdapter->TxRing.CurrSendTail = pMpTcb; - - DBG_ASSERT(pMpTcb->Next == NULL); - - pAdapter->TxRing.nBusySend++; - - spin_unlock_irqrestore(&pAdapter->TCBSendQLock, lockflags2); - - /* Write the new write pointer back to the device. */ - writel(pAdapter->TxRing.txDmaReadyToSend.value, - &pAdapter->CSRAddress->txdma.service_request.value); - -#ifdef CONFIG_ET131X_DEBUG - DumpDeviceBlock(DBG_TX_ON, pAdapter, 1); -#endif - - /* For Gig only, we use Tx Interrupt coalescing. Enable the software - * timer to wake us up if this packet isn't followed by N more. - */ - if (pAdapter->uiLinkSpeed == TRUEPHY_SPEED_1000MBPS) { - writel(pAdapter->RegistryTxTimeInterval * NANO_IN_A_MICRO, - &pAdapter->CSRAddress->global.watchdog_timer); - } - - spin_unlock_irqrestore(&pAdapter->SendHWLock, lockflags1); - - DBG_TX_LEAVE(et131x_dbginfo); - return 0; -} - -#endif - -/** - * et131x_free_send_packet - Recycle a MP_TCB, complete the packet if necessary - * @pAdapter: pointer to our adapter - * @pMpTcb: pointer to MP_TCB - * - * Assumption - Send spinlock has been acquired - */ -__inline void et131x_free_send_packet(struct et131x_adapter *pAdapter, PMP_TCB pMpTcb) -{ - unsigned long lockflags; - TX_DESC_ENTRY_t *desc = NULL; - struct net_device_stats *stats = &pAdapter->net_stats; - - if (MP_TEST_FLAG(pMpTcb, fMP_DEST_BROAD)) { - atomic_inc(&pAdapter->Stats.brdcstxmt); - } else if (MP_TEST_FLAG(pMpTcb, fMP_DEST_MULTI)) { - atomic_inc(&pAdapter->Stats.multixmt); - } else { - atomic_inc(&pAdapter->Stats.unixmt); - } - - if (pMpTcb->Packet) { - stats->tx_bytes += pMpTcb->Packet->len; - - /* Iterate through the TX descriptors on the ring - * corresponding to this packet and umap the fragments - * they point to - */ - DBG_TX(et131x_dbginfo, - "Unmap descriptors Here\n" - "TCB : 0x%p\n" - "TCB Next : 0x%p\n" - "TCB PacketLength : %d\n" - "TCB WrIndex.value : 0x%08x\n" - "TCB WrIndex.bits.val : %d\n" - "TCB WrIndex.value : 0x%08x\n" - "TCB WrIndex.bits.val : %d\n", - pMpTcb, - pMpTcb->Next, - pMpTcb->PacketLength, - pMpTcb->WrIndexStart.value, - pMpTcb->WrIndexStart.bits.val, - pMpTcb->WrIndex.value, - pMpTcb->WrIndex.bits.val); - - do { - desc = - (TX_DESC_ENTRY_t *) (pAdapter->TxRing. - pTxDescRingVa + - pMpTcb->WrIndexStart.bits.val); - - DBG_TX(et131x_dbginfo, - "CURRENT DESCRIPTOR\n" - "\tAddress : 0x%p\n" - "\tDataBufferPtrHigh : 0x%08x\n" - "\tDataBufferPtrLow : 0x%08x\n" - "\tword2 : 0x%08x\n" - "\tword3 : 0x%08x\n", - desc, - desc->DataBufferPtrHigh, - desc->DataBufferPtrLow, - desc->word2.value, - desc->word3.value); - - pci_unmap_single(pAdapter->pdev, - desc->DataBufferPtrLow, - desc->word2.value, PCI_DMA_TODEVICE); - - if (++pMpTcb->WrIndexStart.bits.val >= - NUM_DESC_PER_RING_TX) { - if (pMpTcb->WrIndexStart.bits.wrap) { - pMpTcb->WrIndexStart.value = 0; - } else { - pMpTcb->WrIndexStart.value = 0x400; - } - } - } - while (desc != (pAdapter->TxRing.pTxDescRingVa + - pMpTcb->WrIndex.bits.val)); - - DBG_TX(et131x_dbginfo, - "Free Packet (SKB) : 0x%p\n", pMpTcb->Packet); - - dev_kfree_skb_any(pMpTcb->Packet); - } - - memset(pMpTcb, 0, sizeof(MP_TCB)); - - /* Add the TCB to the Ready Q */ - spin_lock_irqsave(&pAdapter->TCBReadyQLock, lockflags); - - pAdapter->Stats.opackets++; - - if (pAdapter->TxRing.TCBReadyQueueTail) { - pAdapter->TxRing.TCBReadyQueueTail->Next = pMpTcb; - } else { - /* Apparently ready Q is empty. */ - pAdapter->TxRing.TCBReadyQueueHead = pMpTcb; - } - - pAdapter->TxRing.TCBReadyQueueTail = pMpTcb; - - spin_unlock_irqrestore(&pAdapter->TCBReadyQLock, lockflags); - - DBG_ASSERT(pAdapter->TxRing.nBusySend >= 0); -} - -/** - * et131x_free_busy_send_packets - Free and complete the stopped active sends - * @pAdapter: pointer to our adapter - * - * Assumption - Send spinlock has been acquired - */ -void et131x_free_busy_send_packets(struct et131x_adapter *pAdapter) -{ - PMP_TCB pMpTcb; - struct list_head *pEntry; - struct sk_buff *pPacket = NULL; - unsigned long lockflags; - uint32_t FreeCounter = 0; - - DBG_ENTER(et131x_dbginfo); - - while (!list_empty(&pAdapter->TxRing.SendWaitQueue)) { - spin_lock_irqsave(&pAdapter->SendWaitLock, lockflags); - - pAdapter->TxRing.nWaitSend--; - spin_unlock_irqrestore(&pAdapter->SendWaitLock, lockflags); - - pEntry = pAdapter->TxRing.SendWaitQueue.next; - - pPacket = NULL; - } - - pAdapter->TxRing.nWaitSend = 0; - - /* Any packets being sent? Check the first TCB on the send list */ - spin_lock_irqsave(&pAdapter->TCBSendQLock, lockflags); - - pMpTcb = pAdapter->TxRing.CurrSendHead; - - while ((pMpTcb != NULL) && (FreeCounter < NUM_TCB)) { - PMP_TCB pNext = pMpTcb->Next; - - pAdapter->TxRing.CurrSendHead = pNext; - - if (pNext == NULL) { - pAdapter->TxRing.CurrSendTail = NULL; - } - - pAdapter->TxRing.nBusySend--; - - spin_unlock_irqrestore(&pAdapter->TCBSendQLock, lockflags); - - DBG_VERBOSE(et131x_dbginfo, "pMpTcb = 0x%p\n", pMpTcb); - - FreeCounter++; - MP_FREE_SEND_PACKET_FUN(pAdapter, pMpTcb); - - spin_lock_irqsave(&pAdapter->TCBSendQLock, lockflags); - - pMpTcb = pAdapter->TxRing.CurrSendHead; - } - - if (FreeCounter == NUM_TCB) { - DBG_ERROR(et131x_dbginfo, - "MpFreeBusySendPackets exitted loop for a bad reason\n"); - BUG(); - } - - spin_unlock_irqrestore(&pAdapter->TCBSendQLock, lockflags); - - pAdapter->TxRing.nBusySend = 0; - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_handle_send_interrupt - Interrupt handler for sending processing - * @pAdapter: pointer to our adapter - * - * Re-claim the send resources, complete sends and get more to send from - * the send wait queue. - * - * Assumption - Send spinlock has been acquired - */ -void et131x_handle_send_interrupt(struct et131x_adapter *pAdapter) -{ - DBG_TX_ENTER(et131x_dbginfo); - - /* Mark as completed any packets which have been sent by the device. */ - et131x_update_tcb_list(pAdapter); - - /* If we queued any transmits because we didn't have any TCBs earlier, - * dequeue and send those packets now, as long as we have free TCBs. - */ - et131x_check_send_wait_list(pAdapter); - - DBG_TX_LEAVE(et131x_dbginfo); -} - -/** - * et131x_update_tcb_list - Helper routine for Send Interrupt handler - * @pAdapter: pointer to our adapter - * - * Re-claims the send resources and completes sends. Can also be called as - * part of the NIC send routine when the "ServiceComplete" indication has - * wrapped. - */ -static void et131x_update_tcb_list(struct et131x_adapter *pAdapter) -{ - unsigned long lockflags; - DMA10W_t ServiceComplete; - PMP_TCB pMpTcb; - - ServiceComplete.value = - readl(&pAdapter->CSRAddress->txdma.NewServiceComplete.value); - - /* Has the ring wrapped? Process any descriptors that do not have - * the same "wrap" indicator as the current completion indicator - */ - spin_lock_irqsave(&pAdapter->TCBSendQLock, lockflags); - - pMpTcb = pAdapter->TxRing.CurrSendHead; - while (pMpTcb && - ServiceComplete.bits.wrap != pMpTcb->WrIndex.bits.wrap && - ServiceComplete.bits.val < pMpTcb->WrIndex.bits.val) { - pAdapter->TxRing.nBusySend--; - pAdapter->TxRing.CurrSendHead = pMpTcb->Next; - if (pMpTcb->Next == NULL) { - pAdapter->TxRing.CurrSendTail = NULL; - } - - spin_unlock_irqrestore(&pAdapter->TCBSendQLock, lockflags); - MP_FREE_SEND_PACKET_FUN(pAdapter, pMpTcb); - spin_lock_irqsave(&pAdapter->TCBSendQLock, lockflags); - - /* Goto the next packet */ - pMpTcb = pAdapter->TxRing.CurrSendHead; - } - while (pMpTcb && - ServiceComplete.bits.wrap == pMpTcb->WrIndex.bits.wrap && - ServiceComplete.bits.val > pMpTcb->WrIndex.bits.val) { - pAdapter->TxRing.nBusySend--; - pAdapter->TxRing.CurrSendHead = pMpTcb->Next; - if (pMpTcb->Next == NULL) { - pAdapter->TxRing.CurrSendTail = NULL; - } - - spin_unlock_irqrestore(&pAdapter->TCBSendQLock, lockflags); - MP_FREE_SEND_PACKET_FUN(pAdapter, pMpTcb); - spin_lock_irqsave(&pAdapter->TCBSendQLock, lockflags); - - /* Goto the next packet */ - pMpTcb = pAdapter->TxRing.CurrSendHead; - } - - /* Wake up the queue when we hit a low-water mark */ - if (pAdapter->TxRing.nBusySend <= (NUM_TCB / 3)) { - netif_wake_queue(pAdapter->netdev); - } - - spin_unlock_irqrestore(&pAdapter->TCBSendQLock, lockflags); -} - -/** - * et131x_check_send_wait_list - Helper routine for the interrupt handler - * @pAdapter: pointer to our adapter - * - * Takes packets from the send wait queue and posts them to the device (if - * room available). - */ -static void et131x_check_send_wait_list(struct et131x_adapter *pAdapter) -{ - unsigned long lockflags; - - spin_lock_irqsave(&pAdapter->SendWaitLock, lockflags); - - while (!list_empty(&pAdapter->TxRing.SendWaitQueue) && - MP_TCB_RESOURCES_AVAILABLE(pAdapter)) { - struct list_head *pEntry; - - DBG_VERBOSE(et131x_dbginfo, "Tx packets on the wait queue\n"); - - pEntry = pAdapter->TxRing.SendWaitQueue.next; - - pAdapter->TxRing.nWaitSend--; - - DBG_WARNING(et131x_dbginfo, - "MpHandleSendInterrupt - sent a queued pkt. Waiting %d\n", - pAdapter->TxRing.nWaitSend); - } - - spin_unlock_irqrestore(&pAdapter->SendWaitLock, lockflags); -} diff --git a/src/et131x/et1310_tx.h b/src/et131x/et1310_tx.h deleted file mode 100644 index 2819c78..0000000 --- a/src/et131x/et1310_tx.h +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et1310_tx.h - Defines, structs, enums, prototypes, etc. pertaining to data - * transmission. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET1310_TX_H__ -#define __ET1310_TX_H__ - - -/* Typedefs for Tx Descriptor Ring */ - -/* - * TXDESC_WORD2_t structure holds part of the control bits in the Tx Descriptor - * ring for the ET-1310 - */ -typedef union _txdesc_word2_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 vlan_prio:3; // bits 29-31(VLAN priority) - u32 vlan_cfi:1; // bit 28(cfi) - u32 vlan_tag:12; // bits 16-27(VLAN tag) - u32 length_in_bytes:16; // bits 0-15(packet length) -#else - u32 length_in_bytes:16; // bits 0-15(packet length) - u32 vlan_tag:12; // bits 16-27(VLAN tag) - u32 vlan_cfi:1; // bit 28(cfi) - u32 vlan_prio:3; // bits 29-31(VLAN priority) -#endif /* _BIT_FIELDS_HTOL */ - } bits; -} TXDESC_WORD2_t, *PTXDESC_WORD2_t; - -/* - * TXDESC_WORD3_t structure holds part of the control bits in the Tx Descriptor - * ring for the ET-1310 - */ -typedef union _txdesc_word3_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:17; // bits 15-31 - u32 udpa:1; // bit 14(UDP checksum assist) - u32 tcpa:1; // bit 13(TCP checksum assist) - u32 ipa:1; // bit 12(IP checksum assist) - u32 vlan:1; // bit 11(append VLAN tag) - u32 hp:1; // bit 10(Packet is a Huge packet) - u32 pp:1; // bit 9(pad packet) - u32 mac:1; // bit 8(MAC override) - u32 crc:1; // bit 7(append CRC) - u32 e:1; // bit 6(Tx frame has error) - u32 pf:1; // bit 5(send pause frame) - u32 bp:1; // bit 4(Issue half-duplex backpressure (XON/XOFF) - u32 cw:1; // bit 3(Control word - no packet data) - u32 ir:1; // bit 2(interrupt the processor when this pkt sent) - u32 f:1; // bit 1(first packet in the sequence) - u32 l:1; // bit 0(last packet in the sequence) -#else - u32 l:1; // bit 0(last packet in the sequence) - u32 f:1; // bit 1(first packet in the sequence) - u32 ir:1; // bit 2(interrupt the processor when this pkt sent) - u32 cw:1; // bit 3(Control word - no packet data) - u32 bp:1; // bit 4(Issue half-duplex backpressure (XON/XOFF) - u32 pf:1; // bit 5(send pause frame) - u32 e:1; // bit 6(Tx frame has error) - u32 crc:1; // bit 7(append CRC) - u32 mac:1; // bit 8(MAC override) - u32 pp:1; // bit 9(pad packet) - u32 hp:1; // bit 10(Packet is a Huge packet) - u32 vlan:1; // bit 11(append VLAN tag) - u32 ipa:1; // bit 12(IP checksum assist) - u32 tcpa:1; // bit 13(TCP checksum assist) - u32 udpa:1; // bit 14(UDP checksum assist) - u32 unused:17; // bits 15-31 -#endif /* _BIT_FIELDS_HTOL */ - } bits; -} TXDESC_WORD3_t, *PTXDESC_WORD3_t; - -/* TX_DESC_ENTRY_t is sructure representing each descriptor on the ring */ -typedef struct _tx_desc_entry_t { - u32 DataBufferPtrHigh; - u32 DataBufferPtrLow; - TXDESC_WORD2_t word2; // control words how to xmit the - TXDESC_WORD3_t word3; // data (detailed above) -} TX_DESC_ENTRY_t, *PTX_DESC_ENTRY_t; - - -/* Typedefs for Tx DMA engine status writeback */ - -/* - * TX_STATUS_BLOCK_t is sructure representing the status of the Tx DMA engine - * it sits in free memory, and is pointed to by 0x101c / 0x1020 - */ -typedef union _tx_status_block_t { - u32 value; - struct { -#ifdef _BIT_FIELDS_HTOL - u32 unused:21; // bits 11-31 - u32 serv_cpl_wrap:1; // bit 10 - u32 serv_cpl:10; // bits 0-9 -#else - u32 serv_cpl:10; // bits 0-9 - u32 serv_cpl_wrap:1; // bit 10 - u32 unused:21; // bits 11-31 -#endif - } bits; -} TX_STATUS_BLOCK_t, *PTX_STATUS_BLOCK_t; - -/* TCB (Transmit Control Block) */ -typedef struct _MP_TCB { - struct _MP_TCB *Next; - u32 Flags; - u32 Count; - u32 PacketStaleCount; - struct sk_buff *Packet; - u32 PacketLength; - DMA10W_t WrIndex; - DMA10W_t WrIndexStart; -} MP_TCB, *PMP_TCB; - -/* Structure to hold the skb's in a list */ -typedef struct tx_skb_list_elem { - struct list_head skb_list_elem; - struct sk_buff *skb; -} TX_SKB_LIST_ELEM, *PTX_SKB_LIST_ELEM; - -/* TX_RING_t is sructure representing our local reference(s) to the ring */ -typedef struct _tx_ring_t { - /* TCB (Transmit Control Block) memory and lists */ - PMP_TCB MpTcbMem; - - /* List of TCBs that are ready to be used */ - PMP_TCB TCBReadyQueueHead; - PMP_TCB TCBReadyQueueTail; - - /* list of TCBs that are currently being sent. NOTE that access to all - * three of these (including nBusySend) are controlled via the - * TCBSendQLock. This lock should be secured prior to incementing / - * decrementing nBusySend, or any queue manipulation on CurrSendHead / - * Tail - */ - PMP_TCB CurrSendHead; - PMP_TCB CurrSendTail; - int32_t nBusySend; - - /* List of packets (not TCBs) that were queued for lack of resources */ - struct list_head SendWaitQueue; - int32_t nWaitSend; - - /* The actual descriptor ring */ - PTX_DESC_ENTRY_t pTxDescRingVa; - dma_addr_t pTxDescRingPa; - uint64_t pTxDescRingAdjustedPa; - uint64_t TxDescOffset; - - /* ReadyToSend indicates where we last wrote to in the descriptor ring. */ - DMA10W_t txDmaReadyToSend; - - /* The location of the write-back status block */ - PTX_STATUS_BLOCK_t pTxStatusVa; - dma_addr_t pTxStatusPa; - - /* A Block of zeroes used to pad packets that are less than 60 bytes */ - void *pTxDummyBlkVa; - dma_addr_t pTxDummyBlkPa; - - TXMAC_ERR_t TxMacErr; - - /* Variables to track the Tx interrupt coalescing features */ - int32_t TxPacketsSinceLastinterrupt; -} TX_RING_t, *PTX_RING_t; - -/* Forward declaration of the frag-list for the following prototypes */ -typedef struct _MP_FRAG_LIST MP_FRAG_LIST, *PMP_FRAG_LIST; - -/* Forward declaration of the private adapter structure */ -struct et131x_adapter; - -/* PROTOTYPES for et1310_tx.c */ -int et131x_tx_dma_memory_alloc(struct et131x_adapter *adapter); -void et131x_tx_dma_memory_free(struct et131x_adapter *adapter); -void ConfigTxDmaRegs(struct et131x_adapter *pAdapter); -void et131x_init_send(struct et131x_adapter *adapter); -void et131x_tx_dma_disable(struct et131x_adapter *pAdapter); -void et131x_tx_dma_enable(struct et131x_adapter *pAdapter); -void et131x_handle_send_interrupt(struct et131x_adapter *pAdapter); -void et131x_free_busy_send_packets(struct et131x_adapter *pAdapter); -int et131x_send_packets(struct sk_buff *skb, struct net_device *netdev); - -#endif /* __ET1310_TX_H__ */ diff --git a/src/et131x/et131x_adapter.h b/src/et131x/et131x_adapter.h deleted file mode 100644 index 36e61a4..0000000 --- a/src/et131x/et131x_adapter.h +++ /dev/null @@ -1,347 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_adapter.h - Header which includes the private adapter structure, along - * with related support structures, macros, definitions, etc. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET131X_ADAPTER_H__ -#define __ET131X_ADAPTER_H__ - -#include "et1310_address_map.h" -#include "et1310_tx.h" -#include "et1310_rx.h" - -/* - * Do not change these values: if changed, then change also in respective - * TXdma and Rxdma engines - */ -#define NUM_DESC_PER_RING_TX 512 // TX Do not change these values -#define NUM_TCB 64 - -/* - * These values are all superseded by registry entries to facilitate tuning. - * Once the desired performance has been achieved, the optimal registry values - * should be re-populated to these #defines: - */ -#define NUM_TRAFFIC_CLASSES 1 - -/* - * There are three ways of counting errors - if there are more than X errors - * in Y packets (represented by the "SAMPLE" macros), if there are more than - * N errors in a S mSec time period (the "PERIOD" macros), or if there are - * consecutive packets with errors (CONSEC_ERRORED_THRESH). This last covers - * for "Bursty" errors, and the errored packets may well not be contiguous, - * but several errors where the packet counter has changed by less than a - * small amount will cause this count to increment. - */ -#define TX_PACKETS_IN_SAMPLE 10000 -#define TX_MAX_ERRORS_IN_SAMPLE 50 - -#define TX_ERROR_PERIOD 1000 -#define TX_MAX_ERRORS_IN_PERIOD 10 - -#define LINK_DETECTION_TIMER 5000 - -#define TX_CONSEC_RANGE 5 -#define TX_CONSEC_ERRORED_THRESH 10 - -#define LO_MARK_PERCENT_FOR_PSR 15 -#define LO_MARK_PERCENT_FOR_RX 15 - -/* Macros for flag and ref count operations */ -#define MP_SET_FLAG(_M, _F) ((_M)->Flags |= (_F)) -#define MP_CLEAR_FLAG(_M, _F) ((_M)->Flags &= ~(_F)) -#define MP_CLEAR_FLAGS(_M) ((_M)->Flags = 0) -#define MP_TEST_FLAG(_M, _F) (((_M)->Flags & (_F)) != 0) -#define MP_TEST_FLAGS(_M, _F) (((_M)->Flags & (_F)) == (_F)) -#define MP_IS_FLAG_CLEAR(_M, _F) (((_M)->Flags & (_F)) == 0) - -#define MP_INC_RCV_REF(_A) atomic_inc(&(_A)->RcvRefCount) -#define MP_DEC_RCV_REF(_A) atomic_dec(&(_A)->RcvRefCount) -#define MP_GET_RCV_REF(_A) atomic_read(&(_A)->RcvRefCount) - -/* Macros specific to the private adapter structure */ -#define MP_TCB_RESOURCES_AVAILABLE(_M) ((_M)->TxRing.nBusySend < NUM_TCB) -#define MP_TCB_RESOURCES_NOT_AVAILABLE(_M) ((_M)->TxRing.nBusySend >= NUM_TCB) - -#define MP_SHOULD_FAIL_SEND(_M) ((_M)->Flags & fMP_ADAPTER_FAIL_SEND_MASK) -#define MP_IS_NOT_READY(_M) ((_M)->Flags & fMP_ADAPTER_NOT_READY_MASK) -#define MP_IS_READY(_M) !((_M)->Flags & fMP_ADAPTER_NOT_READY_MASK) - -#define MP_HAS_CABLE(_M) !((_M)->Flags & fMP_ADAPTER_NO_CABLE) -#define MP_LINK_DETECTED(_M) !((_M)->Flags & fMP_ADAPTER_LINK_DETECTION) - -/* Counters for error rate monitoring */ -typedef struct _MP_ERR_COUNTERS { - u32 PktCountTxPackets; - u32 PktCountTxErrors; - u32 TimerBasedTxErrors; - u32 PktCountLastError; - u32 ErredConsecPackets; -} MP_ERR_COUNTERS, *PMP_ERR_COUNTERS; - -/* RFD (Receive Frame Descriptor) */ -typedef struct _MP_RFD { - struct list_head list_node; - struct sk_buff *Packet; - u32 PacketSize; // total size of receive frame - u16 iBufferIndex; - u8 iRingIndex; -} MP_RFD, *PMP_RFD; - -/* Enum for Flow Control */ -typedef enum _eflow_control_t { - Both = 0, - TxOnly = 1, - RxOnly = 2, - None = 3 -} eFLOW_CONTROL_t, *PeFLOW_CONTROL_t; - -/* Struct to define some device statistics */ -typedef struct _ce_stats_t { - /* Link Input/Output stats */ - uint64_t ipackets; // # of in packets - uint64_t opackets; // # of out packets - - /* MIB II variables - * - * NOTE: atomic_t types are only guaranteed to store 24-bits; if we - * MUST have 32, then we'll need another way to perform atomic - * operations - */ - u32 unircv; // # multicast packets received - atomic_t unixmt; // # multicast packets for Tx - u32 multircv; // # multicast packets received - atomic_t multixmt; // # multicast packets for Tx - u32 brdcstrcv; // # broadcast packets received - atomic_t brdcstxmt; // # broadcast packets for Tx - u32 norcvbuf; // # Rx packets discarded - u32 noxmtbuf; // # Tx packets discarded - - /* Transciever state informations. */ - u8 xcvr_addr; - u32 xcvr_id; - - /* Tx Statistics. */ - u32 tx_uflo; // Tx Underruns - - u32 collisions; - u32 excessive_collisions; - u32 first_collision; - u32 late_collisions; - u32 max_pkt_error; - u32 tx_deferred; - - /* Rx Statistics. */ - u32 rx_ov_flow; // Rx Over Flow - - u32 length_err; - u32 alignment_err; - u32 crc_err; - u32 code_violations; - u32 other_errors; - -#ifdef CONFIG_ET131X_DEBUG - u32 UnhandledInterruptsPerSec; - u32 RxDmaInterruptsPerSec; - u32 TxDmaInterruptsPerSec; - u32 WatchDogInterruptsPerSec; -#endif /* CONFIG_ET131X_DEBUG */ - - u32 SynchrounousIterations; - INTERRUPT_t InterruptStatus; -} CE_STATS_t, *PCE_STATS_t; - -/* The private adapter structure */ -struct et131x_adapter { - struct net_device *netdev; - struct pci_dev *pdev; - - struct work_struct task; - - /* Flags that indicate current state of the adapter */ - u32 Flags; - u32 HwErrCount; - - /* Configuration */ - u8 PermanentAddress[ETH_ALEN]; - u8 CurrentAddress[ETH_ALEN]; - bool bOverrideAddress; - bool bEepromPresent; - u8 eepromData[2]; - - /* Spinlocks */ - spinlock_t Lock; - - spinlock_t TCBSendQLock; - spinlock_t TCBReadyQLock; - spinlock_t SendHWLock; - spinlock_t SendWaitLock; - - spinlock_t RcvLock; - spinlock_t RcvPendLock; - spinlock_t FbrLock; - - spinlock_t PHYLock; - - /* Packet Filter and look ahead size */ - u32 PacketFilter; - u32 ulLookAhead; - u32 uiLinkSpeed; - u32 uiDuplexMode; - u32 uiAutoNegStatus; - u8 ucLinkStatus; - - /* multicast list */ - u32 MCAddressCount; - u8 MCList[NIC_MAX_MCAST_LIST][ETH_ALEN]; - - /* MAC test */ - TXMAC_TXTEST_t TxMacTest; - - /* Pointer to the device's PCI register space */ - ADDRESS_MAP_t __iomem *CSRAddress; - - /* PCI config space info, for debug purposes only. */ - u8 RevisionID; - u16 VendorID; - u16 DeviceID; - u16 SubVendorID; - u16 SubSystemID; - u32 CacheFillSize; - u16 PciXDevCtl; - u8 pci_lat_timer; - u8 pci_hdr_type; - u8 pci_bist; - u32 pci_cfg_state[64 / sizeof(u32)]; - - /* Registry parameters */ - u8 SpeedDuplex; // speed/duplex - eFLOW_CONTROL_t RegistryFlowControl; // for 802.3x flow control - u8 RegistryWOLMatch; // Enable WOL pattern-matching - u8 RegistryWOLLink; // Link state change is independant - u8 RegistryPhyComa; // Phy Coma mode enable/disable - - u32 RegistryRxMemEnd; // Size of internal rx memory - u8 RegistryMACStat; // If set, read MACSTAT, else don't - u32 RegistryVlanTag; // 802.1q Vlan TAG - u32 RegistryJumboPacket; // Max supported ethernet packet size - - u32 RegistryTxNumBuffers; - u32 RegistryTxTimeInterval; - - u32 RegistryRxNumBuffers; - u32 RegistryRxTimeInterval; - - /* Validation helpers */ - u8 RegistryPMWOL; - u8 RegistryNMIDisable; - u32 RegistryDMACache; - u32 RegistrySCGain; - u8 RegistryPhyLoopbk; // Enable Phy loopback - - /* Derived from the registry: */ - u8 AiForceDpx; // duplex setting - u16 AiForceSpeed; // 'Speed', user over-ride of line speed - eFLOW_CONTROL_t FlowControl; // flow control validated by the far-end - enum { - NETIF_STATUS_INVALID = 0, - NETIF_STATUS_MEDIA_CONNECT, - NETIF_STATUS_MEDIA_DISCONNECT, - NETIF_STATUS_MAX - } MediaState; - u8 DriverNoPhyAccess; - - /* Minimize init-time */ - bool bQueryPending; - bool bSetPending; - bool bResetPending; - struct timer_list ErrorTimer; - bool bLinkTimerActive; - MP_POWER_MGMT PoMgmt; - INTERRUPT_t CachedMaskValue; - - atomic_t RcvRefCount; // Num packets not yet returned - - /* Xcvr status at last poll */ - MI_BMSR_t Bmsr; - - /* Tx Memory Variables */ - TX_RING_t TxRing; - - /* Rx Memory Variables */ - RX_RING_t RxRing; - - /* ET1310 register Access */ - JAGCORE_ACCESS_REGS JagCoreRegs; - PCI_CFG_SPACE_REGS PciCfgRegs; - - /* Loopback specifics */ - u8 ReplicaPhyLoopbk; // Replica Enable - u8 ReplicaPhyLoopbkPF; // Replica Enable Pass/Fail - - /* Stats */ - CE_STATS_t Stats; - - struct net_device_stats net_stats; - struct net_device_stats net_stats_prev; -}; - -#define MPSendPacketsHandler MPSendPackets -#define MP_FREE_SEND_PACKET_FUN(Adapter, pMpTcb) \ - et131x_free_send_packet(Adapter, pMpTcb) -#define MpSendPacketFun(Adapter, Packet) MpSendPacket(Adapter, Packet) - -#endif /* __ET131X_ADAPTER_H__ */ diff --git a/src/et131x/et131x_config.c b/src/et131x/et131x_config.c deleted file mode 100644 index 0adbaa6..0000000 --- a/src/et131x/et131x_config.c +++ /dev/null @@ -1,325 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_config.c - Handles parsing of configuration data during - * initialization. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" - -#include "et131x_adapter.h" -#include "et131x_initpci.h" -#include "et131x_config.h" - -#include "et1310_tx.h" - -/* Data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -extern dbg_info_t *et131x_dbginfo; -#endif /* CONFIG_ET131X_DEBUG */ - -/* Defines for Parameter Default/Min/Max vaules */ -#define PARM_SPEED_DUPLEX_DEF 0 -#define PARM_SPEED_DUPLEX_MIN 0 -#define PARM_SPEED_DUPLEX_MAX 5 - -#define PARM_VLAN_TAG_DEF 0 -#define PARM_VLAN_TAG_MIN 0 -#define PARM_VLAN_TAG_MAX 4095 - -#define PARM_FLOW_CTL_DEF 0 -#define PARM_FLOW_CTL_MIN 0 -#define PARM_FLOW_CTL_MAX 3 - -#define PARM_WOL_LINK_DEF 3 -#define PARM_WOL_LINK_MIN 0 -#define PARM_WOL_LINK_MAX 3 - -#define PARM_WOL_MATCH_DEF 7 -#define PARM_WOL_MATCH_MIN 0 -#define PARM_WOL_MATCH_MAX 7 - -#define PARM_JUMBO_PKT_DEF 1514 -#define PARM_JUMBO_PKT_MIN 1514 -#define PARM_JUMBO_PKT_MAX 9216 - -#define PARM_PHY_COMA_DEF 0 -#define PARM_PHY_COMA_MIN 0 -#define PARM_PHY_COMA_MAX 1 - -#define PARM_RX_NUM_BUFS_DEF 4 -#define PARM_RX_NUM_BUFS_MIN 1 -#define PARM_RX_NUM_BUFS_MAX 64 - -#define PARM_RX_TIME_INT_DEF 10 -#define PARM_RX_TIME_INT_MIN 2 -#define PARM_RX_TIME_INT_MAX 320 - -#define PARM_TX_NUM_BUFS_DEF 4 -#define PARM_TX_NUM_BUFS_MIN 1 -#define PARM_TX_NUM_BUFS_MAX 40 - -#define PARM_TX_TIME_INT_DEF 40 -#define PARM_TX_TIME_INT_MIN 1 -#define PARM_TX_TIME_INT_MAX 140 - -#define PARM_RX_MEM_END_DEF 0x2bc -#define PARM_RX_MEM_END_MIN 0 -#define PARM_RX_MEM_END_MAX 0x3ff - -#define PARM_MAC_STAT_DEF 1 -#define PARM_MAC_STAT_MIN 0 -#define PARM_MAC_STAT_MAX 1 - -#define PARM_SC_GAIN_DEF 7 -#define PARM_SC_GAIN_MIN 0 -#define PARM_SC_GAIN_MAX 7 - -#define PARM_PM_WOL_DEF 0 -#define PARM_PM_WOL_MIN 0 -#define PARM_PM_WOL_MAX 1 - -#define PARM_NMI_DISABLE_DEF 0 -#define PARM_NMI_DISABLE_MIN 0 -#define PARM_NMI_DISABLE_MAX 2 - -#define PARM_DMA_CACHE_DEF 0 -#define PARM_DMA_CACHE_MIN 0 -#define PARM_DMA_CACHE_MAX 15 - -#define PARM_PHY_LOOPBK_DEF 0 -#define PARM_PHY_LOOPBK_MIN 0 -#define PARM_PHY_LOOPBK_MAX 1 - -#define PARM_MAC_ADDRESS_DEF { 0x00, 0x05, 0x3d, 0x00, 0x02, 0x00 } - -/* Module parameter for disabling NMI - * et131x_speed_set : - * Set Link speed and dublex manually (0-5) [0] - * 1 : 10Mb Half-Duplex - * 2 : 10Mb Full-Duplex - * 3 : 100Mb Half-Duplex - * 4 : 100Mb Full-Duplex - * 5 : 1000Mb Full-Duplex - * 0 : Auto Speed Auto Dublex // default - */ -static u32 et131x_nmi_disable = PARM_NMI_DISABLE_DEF; -module_param(et131x_nmi_disable, uint, 0); -MODULE_PARM_DESC(et131x_nmi_disable, "Disable NMI (0-2) [0]"); - -/* Module parameter for manual speed setting - * et131x_nmi_disable : - * Disable NMI (0-2) [0] - * 0 : - * 1 : - * 2 : - */ -static u32 et131x_speed_set = PARM_SPEED_DUPLEX_DEF; -module_param(et131x_speed_set, uint, 0); -MODULE_PARM_DESC(et131x_speed_set, - "Set Link speed and dublex manually (0-5) [0] \n 1 : 10Mb Half-Duplex \n 2 : 10Mb Full-Duplex \n 3 : 100Mb Half-Duplex \n 4 : 100Mb Full-Duplex \n 5 : 1000Mb Full-Duplex \n 0 : Auto Speed Auto Dublex"); - -/** - * et131x_config_parse - * @pAdapter: pointer to the private adapter struct - * - * Parses a configuration from some location (module parameters, for example) - * into the private adapter struct - */ -void et131x_config_parse(struct et131x_adapter *pAdapter) -{ - uint8_t macAddrDef[] = PARM_MAC_ADDRESS_DEF; - - DBG_ENTER(et131x_dbginfo); - - /* - * The NDIS driver uses the registry to store persistent per-device - * configuration, and reads this configuration into the appropriate - * elements of the private adapter structure on initialization. - * Because Linux has no analog to the registry, use this function to - * initialize the private adapter structure with a default - * configuration. - * - * One other possibility is to use a series of module parameters which - * can be passed in by the caller when the module is initialized. - * However, this implementation does not allow for seperate - * configurations in the event multiple devices are present, and hence - * will not suffice. - * - * If another method is derived which addresses this problem, this is - * where it should be implemented. - */ - - /* Set the private adapter struct with default values for the - * corresponding parameters - */ - if (et131x_speed_set != PARM_SPEED_DUPLEX_DEF) { - DBG_VERBOSE(et131x_dbginfo, "Speed set manually to : %d \n", - et131x_speed_set); - pAdapter->SpeedDuplex = et131x_speed_set; - } else { - pAdapter->SpeedDuplex = PARM_SPEED_DUPLEX_DEF; - } - - // pAdapter->SpeedDuplex = PARM_SPEED_DUPLEX_DEF; - - pAdapter->RegistryVlanTag = PARM_VLAN_TAG_DEF; - pAdapter->RegistryFlowControl = PARM_FLOW_CTL_DEF; - pAdapter->RegistryWOLLink = PARM_WOL_LINK_DEF; - pAdapter->RegistryWOLMatch = PARM_WOL_MATCH_DEF; - pAdapter->RegistryJumboPacket = PARM_JUMBO_PKT_DEF; - pAdapter->RegistryPhyComa = PARM_PHY_COMA_DEF; - pAdapter->RegistryRxNumBuffers = PARM_RX_NUM_BUFS_DEF; - pAdapter->RegistryRxTimeInterval = PARM_RX_TIME_INT_DEF; - pAdapter->RegistryTxNumBuffers = PARM_TX_NUM_BUFS_DEF; - pAdapter->RegistryTxTimeInterval = PARM_TX_TIME_INT_DEF; - pAdapter->RegistryRxMemEnd = PARM_RX_MEM_END_DEF; - pAdapter->RegistryMACStat = PARM_MAC_STAT_DEF; - pAdapter->RegistrySCGain = PARM_SC_GAIN_DEF; - pAdapter->RegistryPMWOL = PARM_PM_WOL_DEF; - - if (et131x_nmi_disable != PARM_NMI_DISABLE_DEF) { - pAdapter->RegistryNMIDisable = et131x_nmi_disable; - } else { - pAdapter->RegistryNMIDisable = PARM_NMI_DISABLE_DEF; - } - - pAdapter->RegistryDMACache = PARM_DMA_CACHE_DEF; - pAdapter->RegistryPhyLoopbk = PARM_PHY_LOOPBK_DEF; - - /* Set the MAC address to a default */ - memcpy(pAdapter->CurrentAddress, macAddrDef, ETH_ALEN); - pAdapter->bOverrideAddress = false; - - DBG_TRACE(et131x_dbginfo, - "Default MAC Address : %02x:%02x:%02x:%02x:%02x:%02x\n", - pAdapter->CurrentAddress[0], pAdapter->CurrentAddress[1], - pAdapter->CurrentAddress[2], pAdapter->CurrentAddress[3], - pAdapter->CurrentAddress[4], pAdapter->CurrentAddress[5]); - - /* Decode SpeedDuplex - * - * Set up as if we are auto negotiating always and then change if we - * go into force mode - */ - pAdapter->AiForceSpeed = 0; // Auto speed - pAdapter->AiForceDpx = 0; // Auto FDX - - /* If we are the 10/100 device, and gigabit is somehow requested then - * knock it down to 100 full. - */ - if ((pAdapter->DeviceID == ET131X_PCI_DEVICE_ID_FAST) && - (pAdapter->SpeedDuplex == 5)) { - pAdapter->SpeedDuplex = 4; - } - - switch (pAdapter->SpeedDuplex) { - case 1: // 10Mb Half-Duplex - pAdapter->AiForceSpeed = 10; - pAdapter->AiForceDpx = 1; - break; - - case 2: // 10Mb Full-Duplex - pAdapter->AiForceSpeed = 10; - pAdapter->AiForceDpx = 2; - break; - - case 3: // 100Mb Half-Duplex - pAdapter->AiForceSpeed = 100; - pAdapter->AiForceDpx = 1; - break; - - case 4: // 100Mb Full-Duplex - pAdapter->AiForceSpeed = 100; - pAdapter->AiForceDpx = 2; - break; - - case 5: // 1000Mb Full-Duplex - pAdapter->AiForceSpeed = 1000; - pAdapter->AiForceDpx = 2; - break; - } - - DBG_LEAVE(et131x_dbginfo); -} diff --git a/src/et131x/et131x_config.h b/src/et131x/et131x_config.h deleted file mode 100644 index 642c0f6..0000000 --- a/src/et131x/et131x_config.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_config.h - Defines, structs, enums, prototypes, etc. to support - * et131x_config.c - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET131X_CONFIG_H__ -#define __ET131X_CONFIG_H__ - -/* Forward declaration of the private adapter structure */ -struct et131x_adapter; - -void et131x_config_parse(struct et131x_adapter *adapter); - -#endif /* __ET131X_CONFIG_H__ */ diff --git a/src/et131x/et131x_debug.c b/src/et131x/et131x_debug.c deleted file mode 100644 index 9ee5bce..0000000 --- a/src/et131x/et131x_debug.c +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_debug.c - Routines used for debugging. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifdef CONFIG_ET131X_DEBUG - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/pci.h> -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> -#include <linux/random.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" - -#include "et131x_adapter.h" -#include "et131x_netdev.h" -#include "et131x_config.h" -#include "et131x_isr.h" - -#include "et1310_address_map.h" -#include "et1310_jagcore.h" -#include "et1310_tx.h" -#include "et1310_rx.h" -#include "et1310_mac.h" - -/* Data for debugging facilities */ -extern dbg_info_t *et131x_dbginfo; - -/** - * DumpTxQueueContents - Dump out the tx queue and the shadow pointers - * @pAdapter: pointer to our adapter structure - */ -void DumpTxQueueContents(int dbgLvl, struct et131x_adapter *pAdapter) -{ - MMC_t __iomem *mmc = &pAdapter->CSRAddress->mmc; - uint32_t TxQueueAddr; - - if (DBG_FLAGS(et131x_dbginfo) & dbgLvl) { - for (TxQueueAddr = 0x200; TxQueueAddr < 0x3ff; TxQueueAddr++) { - MMC_SRAM_ACCESS_t sram_access; - - sram_access.value = readl(&mmc->sram_access.value); - sram_access.bits.req_addr = TxQueueAddr; - sram_access.bits.req_access = 1; - writel(sram_access.value, &mmc->sram_access.value); - - DBG_PRINT("Addr 0x%x, Access 0x%08x\t" - "Value 1 0x%08x, Value 2 0x%08x, " - "Value 3 0x%08x, Value 4 0x%08x, \n", - TxQueueAddr, - readl(&mmc->sram_access.value), - readl(&mmc->sram_word1), - readl(&mmc->sram_word2), - readl(&mmc->sram_word3), - readl(&mmc->sram_word4)); - } - - DBG_PRINT("Shadow Pointers 0x%08x\n", - readl(&pAdapter->CSRAddress->txmac.shadow_ptr.value)); - } -} - -/** - * DumpDeviceBlock - * @pAdapter: pointer to our adapter - * - * Dumps the first 64 regs of each block of the et-1310 (each block is - * mapped to a new page, each page is 4096 bytes). - */ -#define NUM_BLOCKS 8 -void DumpDeviceBlock(int dbgLvl, struct et131x_adapter *pAdapter, - uint32_t Block) -{ - uint32_t Address1, Address2; - uint32_t __iomem *BigDevicePointer = - (uint32_t __iomem *) pAdapter->CSRAddress; - const char *BlockNames[NUM_BLOCKS] = { - "Global", "Tx DMA", "Rx DMA", "Tx MAC", - "Rx MAC", "MAC", "MAC Stat", "MMC" - }; - - /* Output the debug counters to the debug terminal */ - if (DBG_FLAGS(et131x_dbginfo) & dbgLvl) { - DBG_PRINT("%s block\n", BlockNames[Block]); - BigDevicePointer += Block * 1024; - for (Address1 = 0; Address1 < 8; Address1++) { - for (Address2 = 0; Address2 < 8; Address2++) { - if (Block == 0 && - (Address1 * 8 + Address2) == 6) { - DBG_PRINT(" ISR , "); - } else { - DBG_PRINT("0x%08x, ", - readl(BigDevicePointer++)); - } - } - DBG_PRINT("\n"); - } - DBG_PRINT("\n"); - } -} - -/** - * DumpDeviceReg - * @pAdapter: pointer to our adapter - * - * Dumps the first 64 regs of each block of the et-1310 (each block is - * mapped to a new page, each page is 4096 bytes). - */ -void DumpDeviceReg(int dbgLvl, struct et131x_adapter *pAdapter) -{ - uint32_t Address1, Address2; - uint32_t Block; - uint32_t __iomem *BigDevicePointer = - (uint32_t __iomem *) pAdapter->CSRAddress; - uint32_t __iomem *Pointer; - const char *BlockNames[NUM_BLOCKS] = { - "Global", "Tx DMA", "Rx DMA", "Tx MAC", - "Rx MAC", "MAC", "MAC Stat", "MMC" - }; - - /* Output the debug counters to the debug terminal */ - if (DBG_FLAGS(et131x_dbginfo) & dbgLvl) { - for (Block = 0; Block < NUM_BLOCKS; Block++) { - DBG_PRINT("%s block\n", BlockNames[Block]); - Pointer = BigDevicePointer + (Block * 1024); - - for (Address1 = 0; Address1 < 8; Address1++) { - for (Address2 = 0; Address2 < 8; Address2++) { - DBG_PRINT("0x%08x, ", - readl(Pointer++)); - } - DBG_PRINT("\n"); - } - DBG_PRINT("\n"); - } - } -} - -#endif // CONFIG_ET131X_DEBUG diff --git a/src/et131x/et131x_debug.h b/src/et131x/et131x_debug.h deleted file mode 100644 index dab6080..0000000 --- a/src/et131x/et131x_debug.h +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_debug.h - Defines, structs, enums, prototypes, etc. used for - * outputting debug messages to the system logging facility - * (ksyslogd) - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET131X_DBG_H__ -#define __ET131X_DBG_H__ - -/* Define Masks for debugging types/levels */ -#define DBG_ERROR_ON 0x00000001L -#define DBG_WARNING_ON 0x00000002L -#define DBG_NOTICE_ON 0x00000004L -#define DBG_TRACE_ON 0x00000008L -#define DBG_VERBOSE_ON 0x00000010L -#define DBG_PARAM_ON 0x00000020L -#define DBG_BREAK_ON 0x00000040L -#define DBG_RX_ON 0x00000100L -#define DBG_TX_ON 0x00000200L - -#ifdef CONFIG_ET131X_DEBUG - -/* - * Set the level of debugging if not done with a preprocessor define. See - * et131x_main.c, function et131x_init_module() for how the debug level - * translates into the types of messages displayed. - */ -#ifndef DBG_LVL -#define DBG_LVL 3 -#endif /* DBG_LVL */ - -#define DBG_DEFAULTS (DBG_ERROR_ON | DBG_WARNING_ON | DBG_BREAK_ON ) - -#define DBG_FLAGS(A) (A)->dbgFlags -#define DBG_NAME(A) (A)->dbgName -#define DBG_LEVEL(A) (A)->dbgLevel - -#ifndef DBG_PRINT -#define DBG_PRINT(S...) printk(KERN_DEBUG S) -#endif /* DBG_PRINT */ - -#ifndef DBG_PRINTC -#define DBG_PRINTC(S...) printk(S) -#endif /* DBG_PRINTC */ - -#ifndef DBG_TRAP -#define DBG_TRAP {} /* BUG() */ -#endif /* DBG_TRAP */ - -#define _ENTER_STR ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" -#define _LEAVE_STR "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" - -#define _DBG_ENTER(A) printk(KERN_DEBUG "%s:%.*s:%s\n", DBG_NAME(A), \ - ++DBG_LEVEL(A), _ENTER_STR, __func__) -#define _DBG_LEAVE(A) printk(KERN_DEBUG "%s:%.*s:%s\n", DBG_NAME(A), \ - DBG_LEVEL(A)--, _LEAVE_STR, __func__) - -#define DBG_ENTER(A) {if (DBG_FLAGS(A) & DBG_TRACE_ON) \ - _DBG_ENTER(A);} - -#define DBG_LEAVE(A) {if (DBG_FLAGS(A) & DBG_TRACE_ON) \ - _DBG_LEAVE(A);} - -#define DBG_PARAM(A,N,F,S...) {if (DBG_FLAGS(A) & DBG_PARAM_ON) \ - DBG_PRINT(" %s -- "F"\n",N,S);} - -#define DBG_ERROR(A,S...) \ - if (DBG_FLAGS(A) & DBG_ERROR_ON) { \ - DBG_PRINT("%s:ERROR:%s ",DBG_NAME(A), __func__); \ - DBG_PRINTC(S); \ - DBG_TRAP; \ - } - -#define DBG_WARNING(A,S...) {if (DBG_FLAGS(A) & DBG_WARNING_ON) \ - {DBG_PRINT("%s:WARNING:%s ",DBG_NAME(A),__func__);DBG_PRINTC(S);}} - -#define DBG_NOTICE(A,S...) {if (DBG_FLAGS(A) & DBG_NOTICE_ON) \ - {DBG_PRINT("%s:NOTICE:%s ",DBG_NAME(A),__func__);DBG_PRINTC(S);}} - -#define DBG_TRACE(A,S...) {if (DBG_FLAGS(A) & DBG_TRACE_ON) \ - {DBG_PRINT("%s:TRACE:%s ",DBG_NAME(A), __func__);DBG_PRINTC(S);}} - -#define DBG_VERBOSE(A,S...) {if (DBG_FLAGS(A) & DBG_VERBOSE_ON) \ - {DBG_PRINT("%s:VERBOSE:%s ",DBG_NAME(A), __func__);DBG_PRINTC(S);}} - -#define DBG_RX(A,S...) {if (DBG_FLAGS(A) & DBG_RX_ON) \ - {DBG_PRINT(S);}} - -#define DBG_RX_ENTER(A) {if (DBG_FLAGS(A) & DBG_RX_ON) \ - _DBG_ENTER(A);} - -#define DBG_RX_LEAVE(A) {if (DBG_FLAGS(A) & DBG_RX_ON) \ - _DBG_LEAVE(A);} - -#define DBG_TX(A,S...) {if (DBG_FLAGS(A) & DBG_TX_ON) \ - {DBG_PRINT(S);}} - -#define DBG_TX_ENTER(A) {if (DBG_FLAGS(A) & DBG_TX_ON) \ - _DBG_ENTER(A);} - -#define DBG_TX_LEAVE(A) {if (DBG_FLAGS(A) & DBG_TX_ON) \ - _DBG_LEAVE(A);} - -#define DBG_ASSERT(C) {if (!(C)) \ - {DBG_PRINT("ASSERT(%s) -- %s#%d (%s)\n", \ - #C,__FILE__,__LINE__,__func__); \ - DBG_TRAP;}} -#define STATIC - -typedef struct { - char *dbgName; - int dbgLevel; - unsigned long dbgFlags; -} dbg_info_t; - -#else /* CONFIG_ET131X_DEBUG */ - -#define DBG_DEFN -#define DBG_TRAP -#define DBG_PRINT(S...) -#define DBG_ENTER(A) -#define DBG_LEAVE(A) -#define DBG_PARAM(A,N,F,S...) -#define DBG_ERROR(A,S...) -#define DBG_WARNING(A,S...) -#define DBG_NOTICE(A,S...) -#define DBG_TRACE(A,S...) -#define DBG_VERBOSE(A,S...) -#define DBG_RX(A,S...) -#define DBG_RX_ENTER(A) -#define DBG_RX_LEAVE(A) -#define DBG_TX(A,S...) -#define DBG_TX_ENTER(A) -#define DBG_TX_LEAVE(A) -#define DBG_ASSERT(C) -#define STATIC static - -#endif /* CONFIG_ET131X_DEBUG */ - -/* Forward declaration of the private adapter structure */ -struct et131x_adapter; - -void DumpTxQueueContents(int dbgLvl, struct et131x_adapter *adapter); -void DumpDeviceBlock(int dbgLvl, struct et131x_adapter *adapter, - unsigned int Block); -void DumpDeviceReg(int dbgLvl, struct et131x_adapter *adapter); - -#endif /* __ET131X_DBG_H__ */ diff --git a/src/et131x/et131x_defs.h b/src/et131x/et131x_defs.h deleted file mode 100644 index 886cb78..0000000 --- a/src/et131x/et131x_defs.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_defs.h - Defines, structs, enums, prototypes, etc. to assist with OS - * compatibility - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET131X_DEFS_H__ -#define __ET131X_DEFS_H__ - -/* Packet and header sizes */ -#define NIC_MIN_PACKET_SIZE 60 -#define NIC_HEADER_SIZE ETH_HLEN /* 14 */ - -/* Multicast list size */ -#define NIC_MAX_MCAST_LIST 128 - -/* Supported Filters */ -#define ET131X_PACKET_TYPE_DIRECTED 0x0001 -#define ET131X_PACKET_TYPE_MULTICAST 0x0002 -#define ET131X_PACKET_TYPE_BROADCAST 0x0004 -#define ET131X_PACKET_TYPE_PROMISCUOUS 0x0008 -#define ET131X_PACKET_TYPE_ALL_MULTICAST 0x0010 - -/* Tx Timeout */ -#define ET131X_TX_TIMEOUT (1 * HZ) -#define NIC_SEND_HANG_THRESHOLD 0 - -/* MP_TCB flags */ -#define fMP_DEST_MULTI 0x00000001 -#define fMP_DEST_BROAD 0x00000002 - -/* MP_ADAPTER flags */ -#define fMP_ADAPTER_RECV_LOOKASIDE 0x00000004 -#define fMP_ADAPTER_INTERRUPT_IN_USE 0x00000008 -#define fMP_ADAPTER_SECONDARY 0x00000010 - -/* MP_SHARED flags */ -#define fMP_ADAPTER_SHUTDOWN 0x00100000 -#define fMP_ADAPTER_LOWER_POWER 0x00200000 - -#define fMP_ADAPTER_NON_RECOVER_ERROR 0x00800000 -#define fMP_ADAPTER_RESET_IN_PROGRESS 0x01000000 -#define fMP_ADAPTER_NO_CABLE 0x02000000 -#define fMP_ADAPTER_HARDWARE_ERROR 0x04000000 -#define fMP_ADAPTER_REMOVE_IN_PROGRESS 0x08000000 -#define fMP_ADAPTER_HALT_IN_PROGRESS 0x10000000 -#define fMP_ADAPTER_LINK_DETECTION 0x20000000 - -#define fMP_ADAPTER_FAIL_SEND_MASK 0x3ff00000 -#define fMP_ADAPTER_NOT_READY_MASK 0x3ff00000 - -/* Some offsets in PCI config space that are actually used. */ -#define ET1310_PCI_PM_CAPABILITY 0x40 -#define ET1310_PCI_PM_CSR 0x44 -#define ET1310_PCI_MAX_PYLD 0x4C -#define ET1310_PCI_DEV_CTRL 0x50 -#define ET1310_PCI_DEV_STAT 0x52 -#define ET1310_NMI_DISABLE 0x61 -#define ET1310_PCI_MAC_ADDRESS 0xA4 -#define ET1310_PCI_EEPROM_STATUS 0xB2 -#define ET1310_PCI_PHY_INDEX_REG 0xB4 -#define ET1310_PCI_ACK_NACK 0xC0 -#define ET1310_PCI_REPLAY 0xC2 -#define ET1310_PCI_L0L1LATENCY 0xCF -#define ET1310_PCI_SEL_PHY_CTRL 0xE4 -#define ET1310_PCI_ADVANCED_ERR 0x100 - -/* PCI Vendor/Product IDs */ -#define ET131X_PCI_VENDOR_ID 0x11C1 // Agere Systems -#define ET131X_PCI_DEVICE_ID_GIG 0xED00 // ET1310 1000 Base-T -#define ET131X_PCI_DEVICE_ID_FAST 0xED01 // ET1310 100 Base-T - -/* Define order of magnitude converter */ -#define NANO_IN_A_MICRO 1000 - -#endif /* __ET131X_DEFS_H__ */ diff --git a/src/et131x/et131x_initpci.c b/src/et131x/et131x_initpci.c deleted file mode 100644 index 4c6f171..0000000 --- a/src/et131x/et131x_initpci.c +++ /dev/null @@ -1,1046 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_initpci.c - Routines and data used to register the driver with the - * PCI (and PCI Express) subsystem, as well as basic driver - * init and startup. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/pci.h> -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> -#include <linux/random.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" - -#include "et131x_adapter.h" -#include "et131x_netdev.h" -#include "et131x_config.h" -#include "et131x_isr.h" - -#include "et1310_address_map.h" -#include "et1310_jagcore.h" -#include "et1310_tx.h" -#include "et1310_rx.h" -#include "et1310_mac.h" -#include "et1310_eeprom.h" - - -int __devinit et131x_pci_setup(struct pci_dev *pdev, - const struct pci_device_id *ent); -void __devexit et131x_pci_remove(struct pci_dev *pdev); - - -/* Modinfo parameters (filled out using defines from et131x_version.h) */ -MODULE_AUTHOR(DRIVER_AUTHOR); -MODULE_DESCRIPTION(DRIVER_INFO); -MODULE_LICENSE(DRIVER_LICENSE); - -/* Module Parameters and related data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -static u32 et131x_debug_level = DBG_LVL; -static u32 et131x_debug_flags = DBG_DEFAULTS; - -/* -et131x_debug_level : - Level of debugging desired (0-7) - 7 : DBG_RX_ON | DBG_TX_ON - 6 : DBG_PARAM_ON - 5 : DBG_VERBOSE_ON - 4 : DBG_TRACE_ON - 3 : DBG_NOTICE_ON - 2 : no debug info - 1 : no debug info - 0 : no debug info -*/ - -module_param(et131x_debug_level, uint, 0); -module_param(et131x_debug_flags, uint, 0); - -MODULE_PARM_DESC(et131x_debug_level, "Level of debugging desired (0-7)"); - -static dbg_info_t et131x_info = { DRIVER_NAME_EXT, 0, 0 }; -dbg_info_t *et131x_dbginfo = &et131x_info; -#endif /* CONFIG_ET131X_DEBUG */ - -static struct pci_device_id et131x_pci_table[] __devinitdata = { - {ET131X_PCI_VENDOR_ID, ET131X_PCI_DEVICE_ID_GIG, PCI_ANY_ID, - PCI_ANY_ID, 0, 0, 0UL}, - {ET131X_PCI_VENDOR_ID, ET131X_PCI_DEVICE_ID_FAST, PCI_ANY_ID, - PCI_ANY_ID, 0, 0, 0UL}, - {0,} -}; - -MODULE_DEVICE_TABLE(pci, et131x_pci_table); - -static struct pci_driver et131x_driver = { - .name = DRIVER_NAME, - .id_table = et131x_pci_table, - .probe = et131x_pci_setup, - .remove = __devexit_p(et131x_pci_remove), - .suspend = NULL, //et131x_pci_suspend, - .resume = NULL, //et131x_pci_resume, -}; - - -/** - * et131x_init_module - The "main" entry point called on driver initialization - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_init_module(void) -{ - int result; - -#ifdef CONFIG_ET131X_DEBUG - /* Set the level of debug messages displayed using the module - * parameter - */ - et131x_dbginfo->dbgFlags = et131x_debug_flags; - - switch (et131x_debug_level) { - case 7: - et131x_dbginfo->dbgFlags |= (DBG_RX_ON | DBG_TX_ON); - - case 6: - et131x_dbginfo->dbgFlags |= DBG_PARAM_ON; - - case 5: - et131x_dbginfo->dbgFlags |= DBG_VERBOSE_ON; - - case 4: - et131x_dbginfo->dbgFlags |= DBG_TRACE_ON; - - case 3: - et131x_dbginfo->dbgFlags |= DBG_NOTICE_ON; - - case 2: - case 1: - case 0: - default: - break; - } -#endif /* CONFIG_ET131X_DEBUG */ - - DBG_ENTER(et131x_dbginfo); - DBG_PRINT("%s\n", DRIVER_INFO); - - result = pci_register_driver(&et131x_driver); - - DBG_LEAVE(et131x_dbginfo); - return result; -} - -/** - * et131x_cleanup_module - The entry point called on driver cleanup - */ -void et131x_cleanup_module(void) -{ - DBG_ENTER(et131x_dbginfo); - - pci_unregister_driver(&et131x_driver); - - DBG_LEAVE(et131x_dbginfo); -} - -/* - * These macros map the driver-specific init_module() and cleanup_module() - * routines so they can be called by the kernel. - */ -module_init(et131x_init_module); -module_exit(et131x_cleanup_module); - - -/** - * et131x_find_adapter - Find the adapter and get all the assigned resources - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_find_adapter(struct et131x_adapter *adapter, struct pci_dev *pdev) -{ - int result; - uint8_t eepromStat; - uint8_t maxPayload = 0; - uint8_t read_size_reg; - - DBG_ENTER(et131x_dbginfo); - - /* Allow disabling of Non-Maskable Interrupts in I/O space, to - * support validation. - */ - if (adapter->RegistryNMIDisable) { - uint8_t RegisterVal; - - RegisterVal = inb(ET1310_NMI_DISABLE); - RegisterVal &= 0xf3; - - if (adapter->RegistryNMIDisable == 2) { - RegisterVal |= 0xc; - } - - outb(ET1310_NMI_DISABLE, RegisterVal); - } - - /* We first need to check the EEPROM Status code located at offset - * 0xB2 of config space - */ - result = pci_read_config_byte(pdev, ET1310_PCI_EEPROM_STATUS, - &eepromStat); - - /* THIS IS A WORKAROUND: - * I need to call this function twice to get my card in a - * LG M1 Express Dual running. I tried also a msleep before this - * function, because I thougth there could be some time condidions - * but it didn't work. Call the whole function twice also work. - */ - result = pci_read_config_byte(pdev, ET1310_PCI_EEPROM_STATUS, - &eepromStat); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, "Could not read PCI config space for " - "EEPROM Status\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - - /* Determine if the error(s) we care about are present. If they are - * present, we need to fail. - */ - if (eepromStat & 0x4C) { - result = pci_read_config_byte(pdev, PCI_REVISION_ID, - &adapter->RevisionID); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, - "Could not read PCI config space for " - "Revision ID\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } else if (adapter->RevisionID == 0x01) { - int32_t nLoop; - uint8_t ucTemp[4] = { 0xFE, 0x13, 0x10, 0xFF }; - - /* Re-write the first 4 bytes if we have an eeprom - * present and the revision id is 1, this fixes the - * corruption seen with 1310 B Silicon - */ - for (nLoop = 0; nLoop < 3; nLoop++) { - EepromWriteByte(adapter, nLoop, ucTemp[nLoop], - 0, SINGLE_BYTE); - } - } - - DBG_ERROR(et131x_dbginfo, - "Fatal EEPROM Status Error - 0x%04x\n", eepromStat); - - /* This error could mean that there was an error reading the - * eeprom or that the eeprom doesn't exist. We will treat - * each case the same and not try to gather additional - * information that normally would come from the eeprom, like - * MAC Address - */ - adapter->bEepromPresent = false; - - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } else { - DBG_TRACE(et131x_dbginfo, "EEPROM Status Code - 0x%04x\n", - eepromStat); - adapter->bEepromPresent = true; - } - - /* Read the EEPROM for information regarding LED behavior. Refer to - * ET1310_phy.c, et131x_xcvr_init(), for its use. - */ - EepromReadByte(adapter, 0x70, &adapter->eepromData[0], 0, SINGLE_BYTE); - EepromReadByte(adapter, 0x71, &adapter->eepromData[1], 0, SINGLE_BYTE); - - if (adapter->eepromData[0] != 0xcd) { - adapter->eepromData[1] = 0x00; // Disable all optional features - } - - /* Let's set up the PORT LOGIC Register. First we need to know what - * the max_payload_size is - */ - result = pci_read_config_byte(pdev, ET1310_PCI_MAX_PYLD, &maxPayload); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, "Could not read PCI config space for " - "Max Payload Size\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - - /* Program the Ack/Nak latency and replay timers */ - maxPayload &= 0x07; // Only the lower 3 bits are valid - - if (maxPayload < 2) { - const uint16_t AckNak[2] = { 0x76, 0xD0 }; - const uint16_t Replay[2] = { 0x1E0, 0x2ED }; - - result = pci_write_config_word(pdev, ET1310_PCI_ACK_NACK, - AckNak[maxPayload]); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, - "Could not write PCI config space " - "for ACK/NAK\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - - result = pci_write_config_word(pdev, ET1310_PCI_REPLAY, - Replay[maxPayload]); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, - "Could not write PCI config space " - "for Replay Timer\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - } - - /* l0s and l1 latency timers. We are using default values. - * Representing 001 for L0s and 010 for L1 - */ - result = pci_write_config_byte(pdev, ET1310_PCI_L0L1LATENCY, 0x11); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, - "Could not write PCI config space for " - "Latency Timers\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - - /* Change the max read size to 2k */ - result = pci_read_config_byte(pdev, 0x51, &read_size_reg); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, - "Could not read PCI config space for Max read size\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - - read_size_reg &= 0x8f; - read_size_reg |= 0x40; - - result = pci_write_config_byte(pdev, 0x51, read_size_reg); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, - "Could not write PCI config space for Max read size\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - - /* PCI Express Configuration registers 0x48-0x5B (Device Control) */ - result = pci_read_config_word(pdev, ET1310_PCI_DEV_CTRL, - &adapter->PciXDevCtl); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, - "Could not read PCI config space for PCI Express Dev Ctl\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - - /* Get MAC address from config space if an eeprom exists, otherwise - * the MAC address there will not be valid - */ - if (adapter->bEepromPresent) { - int i; - - for (i = 0; i < ETH_ALEN; i++) { - result = pci_read_config_byte( - pdev, ET1310_PCI_MAC_ADDRESS + i, - adapter->PermanentAddress + i); - if (result != PCIBIOS_SUCCESSFUL) { - DBG_ERROR(et131x_dbginfo, - "Could not read PCI config space for MAC address\n"); - DBG_LEAVE(et131x_dbginfo); - return -EIO; - } - } - } - - DBG_LEAVE(et131x_dbginfo); - return 0; -} - -/** - * et131x_error_timer_handler - * @data: timer-specific variable; here a pointer to our adapter structure - * - * The routine called when the error timer expires, to track the number of - * recurring errors. - */ -void et131x_error_timer_handler(unsigned long data) -{ - struct et131x_adapter *pAdapter = (struct et131x_adapter *) data; - PM_CSR_t pm_csr; - - pm_csr.value = readl(&pAdapter->CSRAddress->global.pm_csr.value); - - if (pm_csr.bits.pm_phy_sw_coma == 0) { - if (pAdapter->RegistryMACStat) { - UpdateMacStatHostCounters(pAdapter); - } - } else { - DBG_VERBOSE(et131x_dbginfo, - "No interrupts, in PHY coma, pm_csr = 0x%x\n", - pm_csr.value); - } - - if (!pAdapter->Bmsr.bits.link_status && - pAdapter->RegistryPhyComa && - pAdapter->PoMgmt.TransPhyComaModeOnBoot < 11) { - pAdapter->PoMgmt.TransPhyComaModeOnBoot++; - } - - if (pAdapter->PoMgmt.TransPhyComaModeOnBoot == 10) { - if (!pAdapter->Bmsr.bits.link_status - && pAdapter->RegistryPhyComa) { - if (pm_csr.bits.pm_phy_sw_coma == 0) { - // NOTE - This was originally a 'sync with interrupt'. How - // to do that under Linux? - et131x_enable_interrupts(pAdapter); - EnablePhyComa(pAdapter); - } - } - } - - /* This is a periodic timer, so reschedule */ - mod_timer(&pAdapter->ErrorTimer, jiffies + - TX_ERROR_PERIOD * HZ / 1000); -} - -/** - * et131x_link_detection_handler - * - * Timer function for link up at driver load time - */ -void et131x_link_detection_handler(unsigned long data) -{ - struct et131x_adapter *pAdapter = (struct et131x_adapter *) data; - unsigned long lockflags; - - /* Let everyone know that we have run */ - pAdapter->bLinkTimerActive = false; - - if (pAdapter->MediaState == 0) { - spin_lock_irqsave(&pAdapter->Lock, lockflags); - - pAdapter->MediaState = NETIF_STATUS_MEDIA_DISCONNECT; - MP_CLEAR_FLAG(pAdapter, fMP_ADAPTER_LINK_DETECTION); - - spin_unlock_irqrestore(&pAdapter->Lock, lockflags); - - netif_carrier_off(pAdapter->netdev); - - pAdapter->bSetPending = false; - } -} - -/** - * et131x_adapter_setup - Set the adapter up as per cassini+ documentation - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_adapter_setup(struct et131x_adapter *pAdapter) -{ - int status = 0; - - DBG_ENTER(et131x_dbginfo); - - /* Configure the JAGCore */ - ConfigGlobalRegs(pAdapter); - - ConfigMACRegs1(pAdapter); - ConfigMMCRegs(pAdapter); - - ConfigRxMacRegs(pAdapter); - ConfigTxMacRegs(pAdapter); - - ConfigRxDmaRegs(pAdapter); - ConfigTxDmaRegs(pAdapter); - - ConfigMacStatRegs(pAdapter); - - /* Move the following code to Timer function?? */ - status = et131x_xcvr_find(pAdapter); - - if (status != 0) { - DBG_WARNING(et131x_dbginfo, "Could not find the xcvr\n"); - } - - /* Prepare the TRUEPHY library. */ - ET1310_PhyInit(pAdapter); - - /* Reset the phy now so changes take place */ - ET1310_PhyReset(pAdapter); - - /* Power down PHY */ - ET1310_PhyPowerDown(pAdapter, 1); - - /* - * We need to turn off 1000 base half dulplex, the mac does not - * support it. For the 10/100 part, turn off all gig advertisement - */ - if (pAdapter->DeviceID != ET131X_PCI_DEVICE_ID_FAST) { - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_FULL); - } else { - ET1310_PhyAdvertise1000BaseT(pAdapter, TRUEPHY_ADV_DUPLEX_NONE); - } - - /* Power up PHY */ - ET1310_PhyPowerDown(pAdapter, 0); - - et131x_setphy_normal(pAdapter); - - DBG_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_setup_hardware_properties - set up the MAC Address on the ET1310 - * @adapter: pointer to our private adapter structure - */ -void et131x_setup_hardware_properties(struct et131x_adapter *adapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* If have our default mac from registry and no mac address from - * EEPROM then we need to generate the last octet and set it on the - * device - */ - if (!adapter->bOverrideAddress) { - if (adapter->PermanentAddress[0] == 0x00 && - adapter->PermanentAddress[1] == 0x00 && - adapter->PermanentAddress[2] == 0x00 && - adapter->PermanentAddress[3] == 0x00 && - adapter->PermanentAddress[4] == 0x00 && - adapter->PermanentAddress[5] == 0x00) { - /* - * We need to randomly generate the last octet so we - * decrease our chances of setting the mac address to - * same as another one of our cards in the system - */ - get_random_bytes(&adapter->CurrentAddress[5], 1); - - /* - * We have the default value in the register we are - * working with so we need to copy the current - * address into the permanent address - */ - memcpy(adapter->PermanentAddress, - adapter->CurrentAddress, ETH_ALEN); - } else { - /* We do not have an override address, so set the - * current address to the permanent address and add - * it to the device - */ - memcpy(adapter->CurrentAddress, - adapter->PermanentAddress, ETH_ALEN); - } - } - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_soft_reset - Issue a soft reset to the hardware, complete for ET1310 - * @adapter: pointer to our private adapter structure - */ -void et131x_soft_reset(struct et131x_adapter *adapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Disable MAC Core */ - writel(0xc00f0000, &adapter->CSRAddress->mac.cfg1.value); - - /* Set everything to a reset value */ - writel(0x7F, &adapter->CSRAddress->global.sw_reset.value); - writel(0x000f0000, &adapter->CSRAddress->mac.cfg1.value); - writel(0x00000000, &adapter->CSRAddress->mac.cfg1.value); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_align_allocated_memory - Align allocated memory on a given boundary - * @adapter: pointer to our adapter structure - * @phys_addr: pointer to Physical address - * @offset: pointer to the offset variable - * @mask: correct mask - */ -void et131x_align_allocated_memory(struct et131x_adapter *adapter, - uint64_t *phys_addr, - uint64_t *offset, uint64_t mask) -{ - uint64_t new_addr; - - DBG_ENTER(et131x_dbginfo); - - *offset = 0; - - new_addr = *phys_addr & ~mask; - - if (new_addr != *phys_addr) { - /* Move to next aligned block */ - new_addr += mask + 1; - /* Return offset for adjusting virt addr */ - *offset = new_addr - *phys_addr; - /* Return new physical address */ - *phys_addr = new_addr; - } - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_adapter_memory_alloc - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success, errno on failure (as defined in errno.h). - * - * Allocate all the memory blocks for send, receive and others. - */ -int et131x_adapter_memory_alloc(struct et131x_adapter *adapter) -{ - int status = 0; - - DBG_ENTER(et131x_dbginfo); - - do { - /* Allocate memory for the Tx Ring */ - status = et131x_tx_dma_memory_alloc(adapter); - if (status != 0) { - DBG_ERROR(et131x_dbginfo, - "et131x_tx_dma_memory_alloc FAILED\n"); - break; - } - - /* Receive buffer memory allocation */ - status = et131x_rx_dma_memory_alloc(adapter); - if (status != 0) { - DBG_ERROR(et131x_dbginfo, - "et131x_rx_dma_memory_alloc FAILED\n"); - et131x_tx_dma_memory_free(adapter); - break; - } - - /* Init receive data structures */ - status = et131x_init_recv(adapter); - if (status != 0) { - DBG_ERROR(et131x_dbginfo, "et131x_init_recv FAILED\n"); - et131x_tx_dma_memory_free(adapter); - et131x_rx_dma_memory_free(adapter); - break; - } - } while (0); - - DBG_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_adapter_memory_free - Free all memory allocated for use by Tx & Rx - * @adapter: pointer to our private adapter structure - */ -void et131x_adapter_memory_free(struct et131x_adapter *adapter) -{ - DBG_ENTER(et131x_dbginfo); - - /* Free DMA memory */ - et131x_tx_dma_memory_free(adapter); - et131x_rx_dma_memory_free(adapter); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_pci_remove - * @pdev: a pointer to the device's pci_dev structure - * - * Registered in the pci_driver structure, this function is called when the - * PCI subsystem detects that a PCI device which matches the information - * contained in the pci_device_id table has been removed. - */ -void __devexit et131x_pci_remove(struct pci_dev *pdev) -{ - struct net_device *netdev; - struct et131x_adapter *adapter; - - DBG_ENTER(et131x_dbginfo); - - /* Retrieve the net_device pointer from the pci_dev struct, as well - * as the private adapter struct - */ - netdev = (struct net_device *) pci_get_drvdata(pdev); - adapter = netdev_priv(netdev); - - /* Perform device cleanup */ - unregister_netdev(netdev); - et131x_adapter_memory_free(adapter); - iounmap(adapter->CSRAddress); - free_netdev(netdev); - pci_release_regions(pdev); - pci_disable_device(pdev); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_pci_setup - Perform device initialization - * @pdev: a pointer to the device's pci_dev structure - * @ent: this device's entry in the pci_device_id table - * - * Returns 0 on success, errno on failure (as defined in errno.h) - * - * Registered in the pci_driver structure, this function is called when the - * PCI subsystem finds a new PCI device which matches the information - * contained in the pci_device_id table. This routine is the equivalent to - * a device insertion routine. - */ -int __devinit et131x_pci_setup(struct pci_dev *pdev, - const struct pci_device_id *ent) -{ - int result = 0; - int pm_cap; - bool pci_using_dac; - struct net_device *netdev = NULL; - struct et131x_adapter *adapter = NULL; - - DBG_ENTER(et131x_dbginfo); - - /* Enable the device via the PCI subsystem */ - result = pci_enable_device(pdev); - if (result != 0) { - DBG_ERROR(et131x_dbginfo, "pci_enable_device() failed\n"); - goto out; - } - - /* Perform some basic PCI checks */ - if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) { - DBG_ERROR(et131x_dbginfo, - "Can't find PCI device's base address\n"); - result = -ENODEV; - goto out; - } - - result = pci_request_regions(pdev, DRIVER_NAME); - if (result != 0) { - DBG_ERROR(et131x_dbginfo, "Can't get PCI resources\n"); - goto err_disable; - } - - /* Enable PCI bus mastering */ - DBG_TRACE(et131x_dbginfo, "Setting PCI Bus Mastering...\n"); - pci_set_master(pdev); - - /* Query PCI for Power Mgmt Capabilities - * - * NOTE: Now reading PowerMgmt in another location; is this still - * needed? - */ - pm_cap = pci_find_capability(pdev, PCI_CAP_ID_PM); - if (pm_cap == 0) { - DBG_ERROR(et131x_dbginfo, - "Cannot find Power Management capabilities\n"); - result = -EIO; - goto err_release_res; - } - - /* Check the DMA addressing support of this device */ - if (!pci_set_dma_mask(pdev, 0xffffffffffffffffULL)) { - DBG_TRACE(et131x_dbginfo, "64-bit DMA addressing supported\n"); - pci_using_dac = true; - - result = - pci_set_consistent_dma_mask(pdev, 0xffffffffffffffffULL); - if (result != 0) { - DBG_ERROR(et131x_dbginfo, - "Unable to obtain 64 bit DMA for consistent allocations\n"); - goto err_release_res; - } - } else if (!pci_set_dma_mask(pdev, 0xffffffffULL)) { - DBG_TRACE(et131x_dbginfo, - "64-bit DMA addressing NOT supported\n"); - DBG_TRACE(et131x_dbginfo, - "32-bit DMA addressing will be used\n"); - pci_using_dac = false; - } else { - DBG_ERROR(et131x_dbginfo, "No usable DMA addressing method\n"); - result = -EIO; - goto err_release_res; - } - - /* Allocate netdev and private adapter structs */ - DBG_TRACE(et131x_dbginfo, - "Allocate netdev and private adapter structs...\n"); - netdev = et131x_device_alloc(); - if (netdev == NULL) { - DBG_ERROR(et131x_dbginfo, "Couldn't alloc netdev struct\n"); - result = -ENOMEM; - goto err_release_res; - } - - /* Setup the fundamental net_device and private adapter structure elements */ - DBG_TRACE(et131x_dbginfo, "Setting fundamental net_device info...\n"); - SET_NETDEV_DEV(netdev, &pdev->dev); - if (pci_using_dac) { - //netdev->features |= NETIF_F_HIGHDMA; - } - - /* - * NOTE - Turn this on when we're ready to deal with SG-DMA - * - * NOTE: According to "Linux Device Drivers", 3rd ed, Rubini et al, - * if checksumming is not performed in HW, then the kernel will not - * use SG. - * From pp 510-511: - * - * "Note that the kernel does not perform scatter/gather I/O to your - * device if it does not also provide some form of checksumming as - * well. The reason is that, if the kernel has to make a pass over a - * fragmented ("nonlinear") packet to calculate the checksum, it - * might as well copy the data and coalesce the packet at the same - * time." - * - * This has been verified by setting the flags below and still not - * receiving a scattered buffer from the network stack, so leave it - * off until checksums are calculated in HW. - */ - //netdev->features |= NETIF_F_SG; - //netdev->features |= NETIF_F_NO_CSUM; - //netdev->features |= NETIF_F_LLTX; - - /* Allocate private adapter struct and copy in relevant information */ - adapter = netdev_priv(netdev); - adapter->pdev = pdev; - adapter->netdev = netdev; - adapter->VendorID = pdev->vendor; - adapter->DeviceID = pdev->device; - - /* Do the same for the netdev struct */ - netdev->irq = pdev->irq; - netdev->base_addr = pdev->resource[0].start; - - /* Initialize spinlocks here */ - DBG_TRACE(et131x_dbginfo, "Initialize spinlocks...\n"); - - spin_lock_init(&adapter->Lock); - spin_lock_init(&adapter->TCBSendQLock); - spin_lock_init(&adapter->TCBReadyQLock); - spin_lock_init(&adapter->SendHWLock); - spin_lock_init(&adapter->SendWaitLock); - spin_lock_init(&adapter->RcvLock); - spin_lock_init(&adapter->RcvPendLock); - spin_lock_init(&adapter->FbrLock); - spin_lock_init(&adapter->PHYLock); - - /* Parse configuration parameters into the private adapter struct */ - et131x_config_parse(adapter); - - /* Find the physical adapter - * - * NOTE: This is the equivalent of the MpFindAdapter() routine; can we - * lump it's init with the device specific init below into a - * single init function? - */ - //while (et131x_find_adapter(adapter, pdev) != 0); - et131x_find_adapter(adapter, pdev); - - /* Map the bus-relative registers to system virtual memory */ - DBG_TRACE(et131x_dbginfo, - "Mapping bus-relative registers to virtual memory...\n"); - - adapter->CSRAddress = ioremap_nocache(pci_resource_start(pdev, 0), - pci_resource_len(pdev, 0)); - if (adapter->CSRAddress == NULL) { - DBG_ERROR(et131x_dbginfo, "Cannot map device registers\n"); - result = -ENOMEM; - goto err_free_dev; - } - - /* Perform device-specific initialization here (See code below) */ - - /* If Phy COMA mode was enabled when we went down, disable it here. */ - { - PM_CSR_t GlobalPmCSR = { 0 }; - - GlobalPmCSR.bits.pm_sysclk_gate = 1; - GlobalPmCSR.bits.pm_txclk_gate = 1; - GlobalPmCSR.bits.pm_rxclk_gate = 1; - writel(GlobalPmCSR.value, - &adapter->CSRAddress->global.pm_csr.value); - } - - /* Issue a global reset to the et1310 */ - DBG_TRACE(et131x_dbginfo, "Issuing soft reset...\n"); - et131x_soft_reset(adapter); - - /* Disable all interrupts (paranoid) */ - DBG_TRACE(et131x_dbginfo, "Disable device interrupts...\n"); - et131x_disable_interrupts(adapter); - - /* Allocate DMA memory */ - result = et131x_adapter_memory_alloc(adapter); - if (result != 0) { - DBG_ERROR(et131x_dbginfo, - "Could not alloc adapater memory (DMA)\n"); - goto err_iounmap; - } - - /* Init send data structures */ - DBG_TRACE(et131x_dbginfo, "Init send data structures...\n"); - et131x_init_send(adapter); - - adapter->PoMgmt.PowerState = NdisDeviceStateD0; - - /* Register the interrupt - * - * NOTE - This is being done in the open routine, where most other - * Linux drivers setup IRQ handlers. Make sure device - * interrupts are not turned on before the IRQ is registered!! - * - * What we will do here is setup the task structure for the - * ISR's deferred handler - */ - INIT_WORK(&adapter->task, et131x_isr_handler); - - /* Determine MAC Address, and copy into the net_device struct */ - DBG_TRACE(et131x_dbginfo, "Retrieve MAC address...\n"); - et131x_setup_hardware_properties(adapter); - - memcpy(netdev->dev_addr, adapter->CurrentAddress, ETH_ALEN); - - /* Setup et1310 as per the documentation */ - DBG_TRACE(et131x_dbginfo, "Setup the adapter...\n"); - et131x_adapter_setup(adapter); - - /* Create a timer to count errors received by the NIC */ - init_timer(&adapter->ErrorTimer); - - adapter->ErrorTimer.expires = jiffies + TX_ERROR_PERIOD * HZ / 1000; - adapter->ErrorTimer.function = et131x_error_timer_handler; - adapter->ErrorTimer.data = (unsigned long)adapter; - - /* Initialize link state */ - et131x_link_detection_handler((unsigned long)adapter); - - /* Intialize variable for counting how long we do not have link status */ - adapter->PoMgmt.TransPhyComaModeOnBoot = 0; - - /* We can enable interrupts now - * - * NOTE - Because registration of interrupt handler is done in the - * device's open(), defer enabling device interrupts to that - * point - */ - - /* Register the net_device struct with the Linux network layer */ - DBG_TRACE(et131x_dbginfo, "Registering net_device...\n"); - if ((result = register_netdev(netdev)) != 0) { - DBG_ERROR(et131x_dbginfo, "register_netdev() failed\n"); - goto err_mem_free; - } - - /* Register the net_device struct with the PCI subsystem. Save a copy - * of the PCI config space for this device now that the device has - * been initialized, just in case it needs to be quickly restored. - */ - pci_set_drvdata(pdev, netdev); - - pci_save_state(adapter->pdev); - -out: - DBG_LEAVE(et131x_dbginfo); - return result; - -err_mem_free: - et131x_adapter_memory_free(adapter); -err_iounmap: - iounmap(adapter->CSRAddress); -err_free_dev: - free_netdev(netdev); -err_release_res: - pci_release_regions(pdev); -err_disable: - pci_disable_device(pdev); - goto out; -} diff --git a/src/et131x/et131x_initpci.h b/src/et131x/et131x_initpci.h deleted file mode 100644 index bbacb62..0000000 --- a/src/et131x/et131x_initpci.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_initpci.h - Header which includes common data and function prototypes - * related to the driver's PCI (and PCI Express) information. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET131X_INITPCI_H__ -#define __ET131X_INITPCI_H__ - -/* Function Prototypes */ -void et131x_align_allocated_memory(struct et131x_adapter *adapter, - u64 *phys_addr, - u64 *offset, u64 mask); - -int et131x_adapter_setup(struct et131x_adapter *adapter); -int et131x_adapter_memory_alloc(struct et131x_adapter *adapter); -void et131x_adapter_memory_free(struct et131x_adapter *adapter); -void et131x_setup_hardware_properties(struct et131x_adapter *adapter); -void et131x_soft_reset(struct et131x_adapter *adapter); - -#endif /* __ET131X_INITPCI_H__ */ diff --git a/src/et131x/et131x_isr.c b/src/et131x/et131x_isr.c deleted file mode 100644 index 00afad1..0000000 --- a/src/et131x/et131x_isr.c +++ /dev/null @@ -1,488 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_isr.c - File which contains the ISR, ISR handler, and related routines - * for processing interrupts from the device. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" -#include "et1310_mac.h" - -#include "et131x_adapter.h" - -/* Data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -extern dbg_info_t *et131x_dbginfo; -#endif /* CONFIG_ET131X_DEBUG */ - -/** - * et131x_isr - The Interrupt Service Routine for the driver. - * @irq: the IRQ on which the interrupt was received. - * @dev_id: device-specific info (here a pointer to a net_device struct) - * - * Returns a value indicating if the interrupt was handled. - */ -irqreturn_t et131x_isr(int irq, void *dev_id) -{ - bool handled = true; - struct net_device *netdev = (struct net_device *)dev_id; - struct et131x_adapter *adapter = NULL; - INTERRUPT_t status; - - if (netdev == NULL || !netif_device_present(netdev)) { - DBG_WARNING(et131x_dbginfo, - "No net_device struct or device not present\n"); - handled = false; - goto out; - } - - adapter = netdev_priv(netdev); - - /* If the adapter is in low power state, then it should not - * recognize any interrupt - */ - - /* Disable Device Interrupts */ - et131x_disable_interrupts(adapter); - - /* Get a copy of the value in the interrupt status register - * so we can process the interrupting section - */ - status.value = readl(&adapter->CSRAddress->global.int_status.value); - - if (adapter->FlowControl == TxOnly || - adapter->FlowControl == Both) { - status.value &= ~INT_MASK_ENABLE; - } else { - status.value &= ~INT_MASK_ENABLE_NO_FLOW; - } - - /* Make sure this is our interrupt */ - if (!status.value) { -#ifdef CONFIG_ET131X_DEBUG - adapter->Stats.UnhandledInterruptsPerSec++; -#endif - handled = false; - DBG_VERBOSE(et131x_dbginfo, "NOT OUR INTERRUPT\n"); - et131x_enable_interrupts(adapter); - goto out; - } - - /* This is our interrupt, so process accordingly */ -#ifdef CONFIG_ET131X_DEBUG - if (status.bits.rxdma_xfr_done) { - adapter->Stats.RxDmaInterruptsPerSec++; - } - - if (status.bits.txdma_isr) { - adapter->Stats.TxDmaInterruptsPerSec++; - } -#endif - - if (status.bits.watchdog_interrupt) { - PMP_TCB pMpTcb = adapter->TxRing.CurrSendHead; - - if (pMpTcb) { - if (++pMpTcb->PacketStaleCount > 1) { - status.bits.txdma_isr = 1; - } - } - - if (adapter->RxRing.UnfinishedReceives) { - status.bits.rxdma_xfr_done = 1; - } else if (pMpTcb == NULL) { - writel(0, &adapter->CSRAddress->global.watchdog_timer); - } - - status.bits.watchdog_interrupt = 0; -#ifdef CONFIG_ET131X_DEBUG - adapter->Stats.WatchDogInterruptsPerSec++; -#endif - } - - if (status.value == 0) { - /* This interrupt has in some way been "handled" by - * the ISR. Either it was a spurious Rx interrupt, or - * it was a Tx interrupt that has been filtered by - * the ISR. - */ - et131x_enable_interrupts(adapter); - goto out; - } - - /* We need to save the interrupt status value for use in our - * DPC. We will clear the software copy of that in that - * routine. - */ - adapter->Stats.InterruptStatus = status; - - /* Schedule the ISR handler as a bottom-half task in the - * kernel's tq_immediate queue, and mark the queue for - * execution - */ - schedule_work(&adapter->task); - -out: - return IRQ_RETVAL(handled); -} - -/** - * et131x_isr_handler - The ISR handler - * @p_adapter, a pointer to the device's private adapter structure - * - * scheduled to run in a deferred context by the ISR. This is where the ISR's - * work actually gets done. - */ -void et131x_isr_handler(struct work_struct *work) -{ - struct et131x_adapter *pAdapter = - container_of(work, struct et131x_adapter, task); - INTERRUPT_t GlobStatus = pAdapter->Stats.InterruptStatus; - ADDRESS_MAP_t __iomem *iomem = pAdapter->CSRAddress; - - /* - * These first two are by far the most common. Once handled, we clear - * their two bits in the status word. If the word is now zero, we - * exit. - */ - /* Handle all the completed Transmit interrupts */ - if (GlobStatus.bits.txdma_isr) { - DBG_TX(et131x_dbginfo, "TXDMA_ISR interrupt\n"); - et131x_handle_send_interrupt(pAdapter); - } - - /* Handle all the completed Receives interrupts */ - if (GlobStatus.bits.rxdma_xfr_done) { - DBG_RX(et131x_dbginfo, "RXDMA_XFR_DONE interrupt\n"); - et131x_handle_recv_interrupt(pAdapter); - } - - GlobStatus.value &= 0xffffffd7; - - if (GlobStatus.value) { - /* Handle the TXDMA Error interrupt */ - if (GlobStatus.bits.txdma_err) { - TXDMA_ERROR_t TxDmaErr; - - /* Following read also clears the register (COR) */ - TxDmaErr.value = readl(&iomem->txdma.TxDmaError.value); - - DBG_WARNING(et131x_dbginfo, - "TXDMA_ERR interrupt, error = %d\n", - TxDmaErr.value); - } - - /* Handle Free Buffer Ring 0 and 1 Low interrupt */ - if (GlobStatus.bits.rxdma_fb_ring0_low || - GlobStatus.bits.rxdma_fb_ring1_low) { - /* - * This indicates the number of unused buffers in - * RXDMA free buffer ring 0 is <= the limit you - * programmed. Free buffer resources need to be - * returned. Free buffers are consumed as packets - * are passed from the network to the host. The host - * becomes aware of the packets from the contents of - * the packet status ring. This ring is queried when - * the packet done interrupt occurs. Packets are then - * passed to the OS. When the OS is done with the - * packets the resources can be returned to the - * ET1310 for re-use. This interrupt is one method of - * returning resources. - */ - DBG_WARNING(et131x_dbginfo, - "RXDMA_FB_RING0_LOW or " - "RXDMA_FB_RING1_LOW interrupt\n"); - - /* If the user has flow control on, then we will - * send a pause packet, otherwise just exit - */ - if (pAdapter->FlowControl == TxOnly || - pAdapter->FlowControl == Both) { - PM_CSR_t pm_csr; - - /* Tell the device to send a pause packet via - * the back pressure register - */ - pm_csr.value = readl(&iomem->global.pm_csr.value); - if (pm_csr.bits.pm_phy_sw_coma == 0) { - TXMAC_BP_CTRL_t bp_ctrl = { 0 }; - - bp_ctrl.bits.bp_req = 1; - bp_ctrl.bits.bp_xonxoff = 1; - writel(bp_ctrl.value, - &iomem->txmac.bp_ctrl.value); - } - } - } - - /* Handle Packet Status Ring Low Interrupt */ - if (GlobStatus.bits.rxdma_pkt_stat_ring_low) { - DBG_WARNING(et131x_dbginfo, - "RXDMA_PKT_STAT_RING_LOW interrupt\n"); - - /* - * Same idea as with the two Free Buffer Rings. - * Packets going from the network to the host each - * consume a free buffer resource and a packet status - * resource. These resoures are passed to the OS. - * When the OS is done with the resources, they need - * to be returned to the ET1310. This is one method - * of returning the resources. - */ - } - - /* Handle RXDMA Error Interrupt */ - if (GlobStatus.bits.rxdma_err) { - /* - * The rxdma_error interrupt is sent when a time-out - * on a request issued by the JAGCore has occurred or - * a completion is returned with an un-successful - * status. In both cases the request is considered - * complete. The JAGCore will automatically re-try the - * request in question. Normally information on events - * like these are sent to the host using the "Advanced - * Error Reporting" capability. This interrupt is - * another way of getting similar information. The - * only thing required is to clear the interrupt by - * reading the ISR in the global resources. The - * JAGCore will do a re-try on the request. Normally - * you should never see this interrupt. If you start - * to see this interrupt occurring frequently then - * something bad has occurred. A reset might be the - * thing to do. - */ - // TRAP(); - - pAdapter->TxMacTest.value = - readl(&iomem->txmac.tx_test.value); - DBG_WARNING(et131x_dbginfo, - "RxDMA_ERR interrupt, error %x\n", - pAdapter->TxMacTest.value); - } - - /* Handle the Wake on LAN Event */ - if (GlobStatus.bits.wake_on_lan) { - /* - * This is a secondary interrupt for wake on LAN. - * The driver should never see this, if it does, - * something serious is wrong. We will TRAP the - * message when we are in DBG mode, otherwise we - * will ignore it. - */ - DBG_ERROR(et131x_dbginfo, "WAKE_ON_LAN interrupt\n"); - } - - /* Handle the PHY interrupt */ - if (GlobStatus.bits.phy_interrupt) { - PM_CSR_t pm_csr; - MI_BMSR_t BmsrInts, BmsrData; - MI_ISR_t myIsr; - - DBG_VERBOSE(et131x_dbginfo, "PHY interrupt\n"); - - /* If we are in coma mode when we get this interrupt, - * we need to disable it. - */ - pm_csr.value = readl(&iomem->global.pm_csr.value); - if (pm_csr.bits.pm_phy_sw_coma == 1) { - /* - * Check to see if we are in coma mode and if - * so, disable it because we will not be able - * to read PHY values until we are out. - */ - DBG_VERBOSE(et131x_dbginfo, - "Device is in COMA mode, " - "need to wake up\n"); - DisablePhyComa(pAdapter); - } - - /* Read the PHY ISR to clear the reason for the - * interrupt. - */ - MiRead(pAdapter, (uint8_t) offsetof(MI_REGS_t, isr), - &myIsr.value); - - if (!pAdapter->ReplicaPhyLoopbk) { - MiRead(pAdapter, - (uint8_t) offsetof(MI_REGS_t, bmsr), - &BmsrData.value); - - BmsrInts.value = - pAdapter->Bmsr.value ^ BmsrData.value; - pAdapter->Bmsr.value = BmsrData.value; - - DBG_VERBOSE(et131x_dbginfo, - "Bmsr.value = 0x%04x," - "Bmsr_ints.value = 0x%04x\n", - BmsrData.value, BmsrInts.value); - - /* Do all the cable in / cable out stuff */ - et131x_Mii_check(pAdapter, BmsrData, BmsrInts); - } - } - - /* Let's move on to the TxMac */ - if (GlobStatus.bits.txmac_interrupt) { - pAdapter->TxRing.TxMacErr.value = - readl(&iomem->txmac.err.value); - - /* - * When any of the errors occur and TXMAC generates - * an interrupt to report these errors, it usually - * means that TXMAC has detected an error in the data - * stream retrieved from the on-chip Tx Q. All of - * these errors are catastrophic and TXMAC won't be - * able to recover data when these errors occur. In - * a nutshell, the whole Tx path will have to be reset - * and re-configured afterwards. - */ - DBG_WARNING(et131x_dbginfo, - "TXMAC interrupt, error 0x%08x\n", - pAdapter->TxRing.TxMacErr.value); - - /* If we are debugging, we want to see this error, - * otherwise we just want the device to be reset and - * continue - */ - //DBG_TRAP(); - } - - /* Handle RXMAC Interrupt */ - if (GlobStatus.bits.rxmac_interrupt) { - /* - * These interrupts are catastrophic to the device, - * what we need to do is disable the interrupts and - * set the flag to cause us to reset so we can solve - * this issue. - */ - // MP_SET_FLAG( pAdapter, fMP_ADAPTER_HARDWARE_ERROR ); - - DBG_WARNING(et131x_dbginfo, - "RXMAC interrupt, error 0x%08x. Requesting reset\n", - readl(&iomem->rxmac.err_reg.value)); - - DBG_WARNING(et131x_dbginfo, - "Enable 0x%08x, Diag 0x%08x\n", - readl(&iomem->rxmac.ctrl.value), - readl(&iomem->rxmac.rxq_diag.value)); - - /* - * If we are debugging, we want to see this error, - * otherwise we just want the device to be reset and - * continue - */ - // TRAP(); - } - - /* Handle MAC_STAT Interrupt */ - if (GlobStatus.bits.mac_stat_interrupt) { - /* - * This means at least one of the un-masked counters - * in the MAC_STAT block has rolled over. Use this - * to maintain the top, software managed bits of the - * counter(s). - */ - DBG_VERBOSE(et131x_dbginfo, "MAC_STAT interrupt\n"); - HandleMacStatInterrupt(pAdapter); - } - - /* Handle SLV Timeout Interrupt */ - if (GlobStatus.bits.slv_timeout) { - /* - * This means a timeout has occured on a read or - * write request to one of the JAGCore registers. The - * Global Resources block has terminated the request - * and on a read request, returned a "fake" value. - * The most likely reasons are: Bad Address or the - * addressed module is in a power-down state and - * can't respond. - */ - DBG_VERBOSE(et131x_dbginfo, "SLV_TIMEOUT interrupt\n"); - } - } - - if (pAdapter->PoMgmt.PowerState == NdisDeviceStateD0) { - et131x_enable_interrupts(pAdapter); - } -} diff --git a/src/et131x/et131x_isr.h b/src/et131x/et131x_isr.h deleted file mode 100644 index 76a51d5..0000000 --- a/src/et131x/et131x_isr.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_isr.h - Defines, structs, enums, prototypes, etc. pertaining to the - * ISR processing code. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET131X_ISR_H__ -#define __ET131X_ISR_H__ - -irqreturn_t et131x_isr(int irq, void *dev_id); -void et131x_isr_handler(struct work_struct *work); - -#endif /* __ET131X_ISR_H__ */ diff --git a/src/et131x/et131x_netdev.c b/src/et131x/et131x_netdev.c deleted file mode 100644 index de65972..0000000 --- a/src/et131x/et131x_netdev.c +++ /dev/null @@ -1,856 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_netdev.c - Routines and data required by all Linux network devices. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#include "et131x_version.h" -#include "et131x_debug.h" -#include "et131x_defs.h" - -#include <linux/init.h> -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> - -#include <linux/sched.h> -#include <linux/ptrace.h> -#include <linux/slab.h> -#include <linux/ctype.h> -#include <linux/string.h> -#include <linux/timer.h> -#include <linux/interrupt.h> -#include <linux/in.h> -#include <linux/delay.h> -#include <asm/io.h> -#include <asm/system.h> -#include <asm/bitops.h> - -#include <linux/mii.h> -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/skbuff.h> -#include <linux/if_arp.h> -#include <linux/ioport.h> - -#include "et1310_phy.h" -#include "et1310_pm.h" -#include "et1310_jagcore.h" -#include "et1310_mac.h" -#include "et1310_tx.h" - -#include "et131x_adapter.h" -#include "et131x_isr.h" -#include "et131x_initpci.h" - -/* Data for debugging facilities */ -#ifdef CONFIG_ET131X_DEBUG -extern dbg_info_t *et131x_dbginfo; -#endif /* CONFIG_ET131X_DEBUG */ - -struct net_device_stats *et131x_stats(struct net_device *netdev); -int et131x_open(struct net_device *netdev); -int et131x_close(struct net_device *netdev); -int et131x_ioctl(struct net_device *netdev, struct ifreq *reqbuf, int cmd); -void et131x_multicast(struct net_device *netdev); -int et131x_tx(struct sk_buff *skb, struct net_device *netdev); -void et131x_tx_timeout(struct net_device *netdev); -int et131x_change_mtu(struct net_device *netdev, int new_mtu); -int et131x_set_mac_addr(struct net_device *netdev, void *new_mac); -void et131x_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp); -void et131x_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid); -void et131x_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid); - -/** - * et131x_device_alloc - * - * Returns pointer to the allocated and initialized net_device struct for - * this device. - * - * Create instances of net_device and wl_private for the new adapter and - * register the device's entry points in the net_device structure. - */ -struct net_device *et131x_device_alloc(void) -{ - struct net_device *netdev; - - DBG_ENTER(et131x_dbginfo); - - /* Alloc net_device and adapter structs */ - netdev = alloc_etherdev(sizeof(struct et131x_adapter)); - - if (netdev == NULL) { - DBG_ERROR(et131x_dbginfo, - "Alloc of net_device struct failed\n"); - DBG_LEAVE(et131x_dbginfo); - return NULL; - } - - /* Setup the function registration table (and other data) for a - * net_device - */ - //netdev->init = &et131x_init; - //netdev->set_config = &et131x_config; - netdev->get_stats = &et131x_stats; - netdev->open = &et131x_open; - netdev->stop = &et131x_close; - netdev->do_ioctl = &et131x_ioctl; - netdev->set_multicast_list = &et131x_multicast; - netdev->hard_start_xmit = &et131x_tx; - netdev->tx_timeout = &et131x_tx_timeout; - netdev->watchdog_timeo = ET131X_TX_TIMEOUT; - netdev->change_mtu = &et131x_change_mtu; - netdev->set_mac_address = &et131x_set_mac_addr; - - //netdev->ethtool_ops = &et131x_ethtool_ops; - - // Poll? - //netdev->poll = &et131x_poll; - //netdev->poll_controller = &et131x_poll_controller; - - DBG_LEAVE(et131x_dbginfo); - return netdev; -} - -/** - * et131x_stats - Return the current device statistics. - * @netdev: device whose stats are being queried - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -struct net_device_stats *et131x_stats(struct net_device *netdev) -{ - struct et131x_adapter *adapter = netdev_priv(netdev); - struct net_device_stats *stats = &adapter->net_stats; - CE_STATS_t *devstat = &adapter->Stats; - - DBG_ENTER(et131x_dbginfo); - - stats->rx_packets = devstat->ipackets; - stats->tx_packets = devstat->opackets; - stats->rx_errors = devstat->length_err + devstat->alignment_err + - devstat->crc_err + devstat->code_violations + devstat->other_errors; - stats->tx_errors = devstat->max_pkt_error; - stats->multicast = devstat->multircv; - stats->collisions = devstat->collisions; - - stats->rx_length_errors = devstat->length_err; - stats->rx_over_errors = devstat->rx_ov_flow; - stats->rx_crc_errors = devstat->crc_err; - - // NOTE: These stats don't have corresponding values in CE_STATS, so we're - // going to have to update these directly from within the TX/RX code - //stats->rx_bytes = 20; //devstat->; - //stats->tx_bytes = 20; //devstat->; - //stats->rx_dropped = devstat->; - //stats->tx_dropped = devstat->; - - // NOTE: Not used, can't find analogous statistics - //stats->rx_frame_errors = devstat->; - //stats->rx_fifo_errors = devstat->; - //stats->rx_missed_errors = devstat->; - - //stats->tx_aborted_errors = devstat->; - //stats->tx_carrier_errors = devstat->; - //stats->tx_fifo_errors = devstat->; - //stats->tx_heartbeat_errors = devstat->; - //stats->tx_window_errors = devstat->; - - DBG_LEAVE(et131x_dbginfo); - return stats; -} - -/** - * et131x_open - Open the device for use. - * @netdev: device to be opened - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_open(struct net_device *netdev) -{ - int result = 0; - struct et131x_adapter *adapter = netdev_priv(netdev); - - DBG_ENTER(et131x_dbginfo); - - /* Start the timer to track NIC errors */ - add_timer(&adapter->ErrorTimer); - - /* Register our ISR */ - DBG_TRACE(et131x_dbginfo, "Registering ISR...\n"); - - result = - request_irq(netdev->irq, et131x_isr, IRQF_SHARED, netdev->name, - netdev); - if (result) { - DBG_ERROR(et131x_dbginfo, "Could not register ISR\n"); - DBG_LEAVE(et131x_dbginfo); - return result; - } - - /* Enable the Tx and Rx DMA engines (if not already enabled) */ - et131x_rx_dma_enable(adapter); - et131x_tx_dma_enable(adapter); - - /* Enable device interrupts */ - et131x_enable_interrupts(adapter); - - MP_SET_FLAG(adapter, fMP_ADAPTER_INTERRUPT_IN_USE); - - /* We're ready to move some data, so start the queue */ - netif_start_queue(netdev); - - DBG_LEAVE(et131x_dbginfo); - return result; -} - -/** - * et131x_close - Close the device - * @netdev: device to be closed - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_close(struct net_device *netdev) -{ - struct et131x_adapter *adapter = netdev_priv(netdev); - - DBG_ENTER(et131x_dbginfo); - - /* First thing is to stop the queue */ - netif_stop_queue(netdev); - - /* Stop the Tx and Rx DMA engines */ - et131x_rx_dma_disable(adapter); - et131x_tx_dma_disable(adapter); - - /* Disable device interrupts */ - et131x_disable_interrupts(adapter); - - /* Deregistering ISR */ - MP_CLEAR_FLAG(adapter, fMP_ADAPTER_INTERRUPT_IN_USE); - - DBG_TRACE(et131x_dbginfo, "Deregistering ISR...\n"); - free_irq(netdev->irq, netdev); - - /* Stop the error timer */ - del_timer_sync(&adapter->ErrorTimer); - - DBG_LEAVE(et131x_dbginfo); - return 0; -} - -/** - * et131x_ioctl_mii - The function which handles MII IOCTLs - * @netdev: device on which the query is being made - * @reqbuf: the request-specific data buffer - * @cmd: the command request code - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_ioctl_mii(struct net_device *netdev, struct ifreq *reqbuf, int cmd) -{ - int status = 0; - struct et131x_adapter *pAdapter = netdev_priv(netdev); - struct mii_ioctl_data *data = if_mii(reqbuf); - - DBG_ENTER(et131x_dbginfo); - - switch (cmd) { - case SIOCGMIIPHY: - DBG_VERBOSE(et131x_dbginfo, "SIOCGMIIPHY\n"); - data->phy_id = pAdapter->Stats.xcvr_addr; - break; - - case SIOCGMIIREG: - DBG_VERBOSE(et131x_dbginfo, "SIOCGMIIREG\n"); - if (!capable(CAP_NET_ADMIN)) { - status = -EPERM; - } else { - status = MiRead(pAdapter, - data->reg_num, &data->val_out); - } - break; - - case SIOCSMIIREG: - DBG_VERBOSE(et131x_dbginfo, "SIOCSMIIREG\n"); - if (!capable(CAP_NET_ADMIN)) { - status = -EPERM; - } else { - status = MiWrite(pAdapter, data->reg_num, - data->val_in); - } - break; - - default: - status = -EOPNOTSUPP; - } - - DBG_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_ioctl - The I/O Control handler for the driver - * @netdev: device on which the control request is being made - * @reqbuf: a pointer to the IOCTL request buffer - * @cmd: the IOCTL command code - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_ioctl(struct net_device *netdev, struct ifreq *reqbuf, int cmd) -{ - int status = 0; - - DBG_ENTER(et131x_dbginfo); - - switch (cmd) { - case SIOCGMIIPHY: - case SIOCGMIIREG: - case SIOCSMIIREG: - status = et131x_ioctl_mii(netdev, reqbuf, cmd); - break; - - default: - DBG_WARNING(et131x_dbginfo, "Unhandled IOCTL Code: 0x%04x\n", - cmd); - status = -EOPNOTSUPP; - } - - DBG_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_set_packet_filter - Configures the Rx Packet filtering on the device - * @adapter: pointer to our private adapter structure - * - * Returns 0 on success, errno on failure - */ -int et131x_set_packet_filter(struct et131x_adapter *adapter) -{ - int status = 0; - uint32_t filter = adapter->PacketFilter; - RXMAC_CTRL_t ctrl; - RXMAC_PF_CTRL_t pf_ctrl; - - DBG_ENTER(et131x_dbginfo); - - ctrl.value = readl(&adapter->CSRAddress->rxmac.ctrl.value); - pf_ctrl.value = readl(&adapter->CSRAddress->rxmac.pf_ctrl.value); - - /* Default to disabled packet filtering. Enable it in the individual - * case statements that require the device to filter something - */ - ctrl.bits.pkt_filter_disable = 1; - - /* Set us to be in promiscuous mode so we receive everything, this - * is also true when we get a packet filter of 0 - */ - if ((filter & ET131X_PACKET_TYPE_PROMISCUOUS) || filter == 0) { - pf_ctrl.bits.filter_broad_en = 0; - pf_ctrl.bits.filter_multi_en = 0; - pf_ctrl.bits.filter_uni_en = 0; - } else { - /* - * Set us up with Multicast packet filtering. Three cases are - * possible - (1) we have a multi-cast list, (2) we receive ALL - * multicast entries or (3) we receive none. - */ - if (filter & ET131X_PACKET_TYPE_ALL_MULTICAST) { - DBG_VERBOSE(et131x_dbginfo, - "Multicast filtering OFF (Rx ALL MULTICAST)\n"); - pf_ctrl.bits.filter_multi_en = 0; - } else { - DBG_VERBOSE(et131x_dbginfo, "Multicast filtering ON\n"); - SetupDeviceForMulticast(adapter); - pf_ctrl.bits.filter_multi_en = 1; - ctrl.bits.pkt_filter_disable = 0; - } - - /* Set us up with Unicast packet filtering */ - if (filter & ET131X_PACKET_TYPE_DIRECTED) { - DBG_VERBOSE(et131x_dbginfo, "Unicast Filtering ON\n"); - SetupDeviceForUnicast(adapter); - pf_ctrl.bits.filter_uni_en = 1; - ctrl.bits.pkt_filter_disable = 0; - } - - /* Set us up with Broadcast packet filtering */ - if (filter & ET131X_PACKET_TYPE_BROADCAST) { - DBG_VERBOSE(et131x_dbginfo, "Broadcast Filtering ON\n"); - pf_ctrl.bits.filter_broad_en = 1; - ctrl.bits.pkt_filter_disable = 0; - } else { - DBG_VERBOSE(et131x_dbginfo, - "Broadcast Filtering OFF\n"); - pf_ctrl.bits.filter_broad_en = 0; - } - - /* Setup the receive mac configuration registers - Packet - * Filter control + the enable / disable for packet filter - * in the control reg. - */ - writel(pf_ctrl.value, - &adapter->CSRAddress->rxmac.pf_ctrl.value); - writel(ctrl.value, &adapter->CSRAddress->rxmac.ctrl.value); - } - - DBG_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_multicast - The handler to configure multicasting on the interface - * @netdev: a pointer to a net_device struct representing the device - */ -void et131x_multicast(struct net_device *netdev) -{ - struct et131x_adapter *adapter = netdev_priv(netdev); - uint32_t PacketFilter = 0; - uint32_t count; - unsigned long lockflags; - struct dev_mc_list *mclist = netdev->mc_list; - - DBG_ENTER(et131x_dbginfo); - - spin_lock_irqsave(&adapter->Lock, lockflags); - - /* Before we modify the platform-independent filter flags, store them - * locally. This allows us to determine if anything's changed and if - * we even need to bother the hardware - */ - PacketFilter = adapter->PacketFilter; - - /* Clear the 'multicast' flag locally; becuase we only have a single - * flag to check multicast, and multiple multicast addresses can be - * set, this is the easiest way to determine if more than one - * multicast address is being set. - */ - PacketFilter &= ~ET131X_PACKET_TYPE_MULTICAST; - - /* Check the net_device flags and set the device independent flags - * accordingly - */ - DBG_VERBOSE(et131x_dbginfo, - "MULTICAST ADDR COUNT: %d\n", netdev->mc_count); - - if (netdev->flags & IFF_PROMISC) { - DBG_VERBOSE(et131x_dbginfo, "Request: PROMISCUOUS MODE ON\n"); - adapter->PacketFilter |= ET131X_PACKET_TYPE_PROMISCUOUS; - } else { - DBG_VERBOSE(et131x_dbginfo, "Request: PROMISCUOUS MODE OFF\n"); - adapter->PacketFilter &= ~ET131X_PACKET_TYPE_PROMISCUOUS; - } - - if (netdev->flags & IFF_ALLMULTI) { - DBG_VERBOSE(et131x_dbginfo, "Request: ACCEPT ALL MULTICAST\n"); - adapter->PacketFilter |= ET131X_PACKET_TYPE_ALL_MULTICAST; - } - - if (netdev->mc_count > NIC_MAX_MCAST_LIST) { - DBG_WARNING(et131x_dbginfo, - "ACCEPT ALL MULTICAST for now, as there's more Multicast " - "addresses than the HW supports\n"); - - adapter->PacketFilter |= ET131X_PACKET_TYPE_ALL_MULTICAST; - } - - if (netdev->mc_count < 1) { - DBG_VERBOSE(et131x_dbginfo, "Request: REJECT ALL MULTICAST\n"); - adapter->PacketFilter &= ~ET131X_PACKET_TYPE_ALL_MULTICAST; - adapter->PacketFilter &= ~ET131X_PACKET_TYPE_MULTICAST; - } else { - DBG_VERBOSE(et131x_dbginfo, - "Request: SET MULTICAST FILTER(S)\n"); - adapter->PacketFilter |= ET131X_PACKET_TYPE_MULTICAST; - } - - /* Set values in the private adapter struct */ - adapter->MCAddressCount = netdev->mc_count; - - if (netdev->mc_count) { - if (mclist->dmi_addrlen != ETH_ALEN) { - DBG_WARNING(et131x_dbginfo, - "Multicast addrs are not ETH_ALEN in size\n"); - } else { - count = netdev->mc_count - 1; - memcpy(adapter->MCList[count], mclist->dmi_addr, - ETH_ALEN); - } - } - - /* Are the new flags different from the previous ones? If not, then no - * action is required - * - * NOTE - This block will always update the MCList with the hardware, - * even if the addresses aren't the same. - */ - if (PacketFilter != adapter->PacketFilter) { - /* Call the device's filter function */ - DBG_VERBOSE(et131x_dbginfo, "UPDATE REQUIRED, FLAGS changed\n"); - - et131x_set_packet_filter(adapter); - } else { - DBG_VERBOSE(et131x_dbginfo, - "NO UPDATE REQUIRED, FLAGS didn't change\n"); - } - - spin_unlock_irqrestore(&adapter->Lock, lockflags); - - DBG_LEAVE(et131x_dbginfo); -} - -/** - * et131x_tx - The handler to tx a packet on the device - * @skb: data to be Tx'd - * @netdev: device on which data is to be Tx'd - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_tx(struct sk_buff *skb, struct net_device *netdev) -{ - int status = 0; - - DBG_TX_ENTER(et131x_dbginfo); - - /* Save the timestamp for the TX timeout watchdog */ - netdev->trans_start = jiffies; - - /* Call the device-specific data Tx routine */ - status = et131x_send_packets(skb, netdev); - - /* Check status and manage the netif queue if necessary */ - if (status != 0) { - if (status == -ENOMEM) { - DBG_VERBOSE(et131x_dbginfo, - "OUT OF TCBs; STOP NETIF QUEUE\n"); - - /* Put the queue to sleep until resources are - * available - */ - netif_stop_queue(netdev); - status = 1; - } else { - DBG_WARNING(et131x_dbginfo, - "Misc error; drop packet\n"); - status = 0; - } - } - - DBG_TX_LEAVE(et131x_dbginfo); - return status; -} - -/** - * et131x_tx_timeout - Timeout handler - * @netdev: a pointer to a net_device struct representing the device - * - * The handler called when a Tx request times out. The timeout period is - * specified by the 'tx_timeo" element in the net_device structure (see - * et131x_alloc_device() to see how this value is set). - */ -void et131x_tx_timeout(struct net_device *netdev) -{ - struct et131x_adapter *pAdapter = netdev_priv(netdev); - PMP_TCB pMpTcb; - unsigned long lockflags; - - DBG_WARNING(et131x_dbginfo, "TX TIMEOUT\n"); - - /* Just skip this part if the adapter is doing link detection */ - if (MP_TEST_FLAG(pAdapter, fMP_ADAPTER_LINK_DETECTION)) { - DBG_ERROR(et131x_dbginfo, "Still doing link detection\n"); - return; - } - - /* Any nonrecoverable hardware error? - * Checks adapter->flags for any failure in phy reading - */ - if (MP_TEST_FLAG(pAdapter, fMP_ADAPTER_NON_RECOVER_ERROR)) { - DBG_WARNING(et131x_dbginfo, "Non recoverable error - remove\n"); - return; - } - - /* Hardware failure? */ - if (MP_TEST_FLAG(pAdapter, fMP_ADAPTER_HARDWARE_ERROR)) { - DBG_WARNING(et131x_dbginfo, "hardware error - reset\n"); - return; - } - - /* Is send stuck? */ - spin_lock_irqsave(&pAdapter->TCBSendQLock, lockflags); - - pMpTcb = pAdapter->TxRing.CurrSendHead; - - if (pMpTcb != NULL) { - pMpTcb->Count++; - - if (pMpTcb->Count > NIC_SEND_HANG_THRESHOLD) { -#ifdef CONFIG_ET131X_DEBUG - TX_STATUS_BLOCK_t txDmaComplete = - *(pAdapter->TxRing.pTxStatusVa); - PTX_DESC_ENTRY_t pDesc = - pAdapter->TxRing.pTxDescRingVa + - pMpTcb->WrIndex.bits.val; -#endif - TX_DESC_ENTRY_t StuckDescriptors[10]; - - if (pMpTcb->WrIndex.bits.val > 7) { - memcpy(StuckDescriptors, - pAdapter->TxRing.pTxDescRingVa + - pMpTcb->WrIndex.bits.val - 6, - sizeof(TX_DESC_ENTRY_t) * 10); - } - - spin_unlock_irqrestore(&pAdapter->TCBSendQLock, - lockflags); - - DBG_WARNING(et131x_dbginfo, - "Send stuck - reset. pMpTcb->WrIndex %x, Flags 0x%08x\n", - pMpTcb->WrIndex.bits.val, - pMpTcb->Flags); - - DBG_WARNING(et131x_dbginfo, - "pDesc 0x%08x, 0x%08x, 0x%08x, 0x%08x\n", - pDesc->DataBufferPtrHigh, - pDesc->DataBufferPtrLow, pDesc->word2.value, - pDesc->word3.value); - - DBG_WARNING(et131x_dbginfo, - "WbStatus 0x%08x\n", txDmaComplete.value); - -#ifdef CONFIG_ET131X_DEBUG - DumpDeviceBlock(DBG_WARNING_ON, pAdapter, 0); - DumpDeviceBlock(DBG_WARNING_ON, pAdapter, 1); - DumpDeviceBlock(DBG_WARNING_ON, pAdapter, 3); - DumpDeviceBlock(DBG_WARNING_ON, pAdapter, 5); -#endif - et131x_close(netdev); - et131x_open(netdev); - - return; - } - } - - spin_unlock_irqrestore(&pAdapter->TCBSendQLock, lockflags); -} - -/** - * et131x_change_mtu - The handler called to change the MTU for the device - * @netdev: device whose MTU is to be changed - * @new_mtu: the desired MTU - * - * Returns 0 on success, errno on failure (as defined in errno.h) - */ -int et131x_change_mtu(struct net_device *netdev, int new_mtu) -{ - int result = 0; - struct et131x_adapter *adapter = netdev_priv(netdev); - - DBG_ENTER(et131x_dbginfo); - - /* Make sure the requested MTU is valid */ - if (new_mtu == 0 || new_mtu > 9216) { - DBG_LEAVE(et131x_dbginfo); - return -EINVAL; - } - - /* Stop the netif queue */ - netif_stop_queue(netdev); - - /* Stop the Tx and Rx DMA engines */ - et131x_rx_dma_disable(adapter); - et131x_tx_dma_disable(adapter); - - /* Disable device interrupts */ - et131x_disable_interrupts(adapter); - et131x_handle_send_interrupt(adapter); - et131x_handle_recv_interrupt(adapter); - - /* Set the new MTU */ - netdev->mtu = new_mtu; - - /* Free Rx DMA memory */ - et131x_adapter_memory_free(adapter); - - /* Set the config parameter for Jumbo Packet support */ - adapter->RegistryJumboPacket = new_mtu + 14; - et131x_soft_reset(adapter); - - /* Alloc and init Rx DMA memory */ - result = et131x_adapter_memory_alloc(adapter); - if (result != 0) { - DBG_WARNING(et131x_dbginfo, - "Change MTU failed; couldn't re-alloc DMA memory\n"); - return result; - } - - et131x_init_send(adapter); - - et131x_setup_hardware_properties(adapter); - memcpy(netdev->dev_addr, adapter->CurrentAddress, ETH_ALEN); - - /* Init the device with the new settings */ - et131x_adapter_setup(adapter); - - /* Enable interrupts */ - if (MP_TEST_FLAG(adapter, fMP_ADAPTER_INTERRUPT_IN_USE)) { - et131x_enable_interrupts(adapter); - } - - /* Restart the Tx and Rx DMA engines */ - et131x_rx_dma_enable(adapter); - et131x_tx_dma_enable(adapter); - - /* Restart the netif queue */ - netif_wake_queue(netdev); - - DBG_LEAVE(et131x_dbginfo); - return result; -} - -/** - * et131x_set_mac_addr - handler to change the MAC address for the device - * @netdev: device whose MAC is to be changed - * @new_mac: the desired MAC address - * - * Returns 0 on success, errno on failure (as defined in errno.h) - * - * IMPLEMENTED BY : blux http://berndlux.de 22.01.2007 21:14 - */ -int et131x_set_mac_addr(struct net_device *netdev, void *new_mac) -{ - int result = 0; - struct et131x_adapter *adapter = netdev_priv(netdev); - struct sockaddr *address = new_mac; - - DBG_ENTER(et131x_dbginfo); - // begin blux - // DBG_VERBOSE( et131x_dbginfo, "Function not implemented!!\n" ); - - if (adapter == NULL) { - DBG_LEAVE(et131x_dbginfo); - return -ENODEV; - } - - /* Make sure the requested MAC is valid */ - if (!is_valid_ether_addr(address->sa_data)) { - DBG_LEAVE(et131x_dbginfo); - return -EINVAL; - } - - /* Stop the netif queue */ - netif_stop_queue(netdev); - - /* Stop the Tx and Rx DMA engines */ - et131x_rx_dma_disable(adapter); - et131x_tx_dma_disable(adapter); - - /* Disable device interrupts */ - et131x_disable_interrupts(adapter); - et131x_handle_send_interrupt(adapter); - et131x_handle_recv_interrupt(adapter); - - /* Set the new MAC */ - // netdev->set_mac_address = &new_mac; - // netdev->mtu = new_mtu; - - memcpy(netdev->dev_addr, address->sa_data, netdev->addr_len); - - printk("%s: Setting MAC address to %02x:%02x:%02x:%02x:%02x:%02x\n", - netdev->name, netdev->dev_addr[0], netdev->dev_addr[1], - netdev->dev_addr[2], netdev->dev_addr[3], netdev->dev_addr[4], - netdev->dev_addr[5]); - - /* Free Rx DMA memory */ - et131x_adapter_memory_free(adapter); - - /* Set the config parameter for Jumbo Packet support */ - // adapter->RegistryJumboPacket = new_mtu + 14; - // blux: not needet here, w'll change the MAC - - et131x_soft_reset(adapter); - - /* Alloc and init Rx DMA memory */ - result = et131x_adapter_memory_alloc(adapter); - if (result != 0) { - DBG_WARNING(et131x_dbginfo, - "Change MAC failed; couldn't re-alloc DMA memory\n"); - return result; - } - - et131x_init_send(adapter); - - et131x_setup_hardware_properties(adapter); - // memcpy( netdev->dev_addr, adapter->CurrentAddress, ETH_ALEN ); - // blux: no, do not override our nice address - - /* Init the device with the new settings */ - et131x_adapter_setup(adapter); - - /* Enable interrupts */ - if (MP_TEST_FLAG(adapter, fMP_ADAPTER_INTERRUPT_IN_USE)) { - et131x_enable_interrupts(adapter); - } - - /* Restart the Tx and Rx DMA engines */ - et131x_rx_dma_enable(adapter); - et131x_tx_dma_enable(adapter); - - /* Restart the netif queue */ - netif_wake_queue(netdev); - - DBG_LEAVE(et131x_dbginfo); - return result; -} diff --git a/src/et131x/et131x_netdev.h b/src/et131x/et131x_netdev.h deleted file mode 100644 index b8acd14..0000000 --- a/src/et131x/et131x_netdev.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_netdev.h - Defines, structs, enums, prototypes, etc. related to the - * driver's net_device support. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET131X_NETDEV_H__ -#define __ET131X_NETDEV_H__ - -struct net_device *et131x_device_alloc(void); - -#endif /* __ET131X_NETDEV_H__ */ diff --git a/src/et131x/et131x_version.h b/src/et131x/et131x_version.h deleted file mode 100644 index 2ea645e..0000000 --- a/src/et131x/et131x_version.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Agere Systems Inc. - * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * http://www.agere.com - * - *------------------------------------------------------------------------------ - * - * et131x_version.h - This file provides system and device version information. - * - *------------------------------------------------------------------------------ - * - * SOFTWARE LICENSE - * - * This software is provided subject to the following terms and conditions, - * which you should read carefully before using the software. Using this - * software indicates your acceptance of these terms and conditions. If you do - * not agree with these terms and conditions, do not use the software. - * - * Copyright © 2005 Agere Systems Inc. - * All rights reserved. - * - * Redistribution and use in source or binary forms, with or without - * modifications, are permitted provided that the following conditions are met: - * - * . Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following Disclaimer as comments in the code as - * well as in the documentation and/or other materials provided with the - * distribution. - * - * . Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following Disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * . Neither the name of Agere Systems Inc. nor the names of the contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Disclaimer - * - * THIS SOFTWARE IS PROVIDED AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY - * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN - * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - */ - -#ifndef __ET131X_VERSION_H__ -#define __ET131X_VERSION_H__ - -#define DRIVER_AUTHOR "Victor Soriano (vjsoriano@agere.com)" -#define DRIVER_LICENSE "Dual BSD/GPL" -#define DRIVER_DEVICE_STRING "ET1310" -#define DRIVER_NAME "et131x" -#define DRIVER_MAJOR_VERSION 1 -#define DRIVER_MINOR_VERSION 2 -#define DRIVER_PATCH_VERSION 3 -#define DRIVER_VERSION_STRING "1.2.3" -#define DRIVER_VENDOR "Agere Systems, http://www.agere.com" -#define DRIVER_DESC "10/100/1000 Base-T Ethernet Driver" - -#define STRUCT_MODULE "net" /* blux: missed by the kernel */ - -#define DRIVER_INFO DRIVER_DESC " for the "\ - DRIVER_DEVICE_STRING ", v" \ - DRIVER_VERSION_STRING " by " \ - DRIVER_VENDOR - -#define DRIVER_NAME_EXT "et131x.ko" - -#endif /* __ET131X_VERSION_H__ */ diff --git a/src/hwdata/pci.ids b/src/hwdata/pci.ids index 82f687c..3958fad 100644 --- a/src/hwdata/pci.ids +++ b/src/hwdata/pci.ids @@ -1,8 +1,8 @@ # # List of PCI ID's # -# Version: 2009.10.14 -# Date: 2009-10-14 03:15:02 +# Version: 2010.05.10 +# Date: 2010-05-10 03:15:02 # # Maintained by Martin Mares mj@ucw.cz and other volunteers from the # PCI ID Project at http://pciids.sf.net/. @@ -83,6 +83,9 @@ 006e MN-510 802.11b wireless USB paddle 00c2 MN-710 wireless USB paddle 0482 Kyocera +# vendor code used for (at a minimum) RSA cards +04b3 IBM Corp. + 4001 Remote System Administration device [RSA2] 04cf Myson Century, Inc 8818 CS8818 USB2.0-to-ATAPI Bridge Controller with Embedded PHY 050d Belkin @@ -111,7 +114,7 @@ 07ca AVerMedia Technologies Inc. a301 AVerTV 301 b808 AVerTV DVB-T Volar (USB 2.0) -07d0 ITT Space Systems Division +07d0 ITT Geospatial Systems 07e2 ELMEG Communication Systems GmbH 0842 NPG, Personal Grand Technology # Nee Gemplus International, SA @@ -364,6 +367,7 @@ 0057 M1064E MegaRAID SAS 8086 346c Embedded Software RAID Technology II (ESTRII) 0058 SAS1068E PCI-Express Fusion-MPT SAS + 1000 3140 SAS3081E-R 8-Port SAS/SATA Host Bus Adapter 1028 021d SAS 6/iR Integrated Workstations RAID Controller 1028 1f0e SAS 6/iR Adapter RAID Controller 1028 1f0f SAS 6/iR Integrated Blades RAID Controller @@ -413,21 +417,37 @@ 1028 1f1d PERC H200 Adapter 1028 1f1e PERC H200 Integrated 1028 1f1f PERC H200 Modular + 1028 1f20 PERC H200 Embedded 0073 MegaRAID SAS 9240 1000 9240 MegaRAID SAS 9240-4i + 1000 9241 MegaRAID SAS 9240-4i 0074 SAS2108 PCI-Express Fusion-MPT SAS-2 [Liberator] 0076 SAS2108 PCI-Express Fusion-MPT SAS-2 [Liberator] 0077 SAS2108 PCI-Express Fusion-MPT SAS-2 [Liberator] 0079 LSI MegaSAS 9260 + 1000 9251 MegaRAID SAS 9260-4ix + 1000 9256 MegaRAID SAS 9260-8ix 1000 9262 MegaRAID SAS 9262-8i 1000 9263 MegaRAID SAS 9261-8i + 1000 9264 MegaRAID SAS 9264-8i + 1000 9275 MegaRAID SAS 9280-8ex + 1000 9280 MegaRAID SAS 9280-8e 1000 9281 MegaRAID SAS 9281-8E + 1000 9282 MegaRAID SAS 9280-4i4e + 1000 9290 MegaRAID SAS 9280DE-24i4e + 1014 03b2 ServeRAID M5015 SAS/SATA Controller + 1014 03b3 ServeRAID M5025 SAS/SATA Controller 1028 1f15 PERC H800 Adapter 1028 1f16 PERC H700 Adapter 1028 1f17 PERC H700 Integrated 1028 1f18 PERC H700 Modular 1028 1f1a PERC H800 Proto Adapter 1028 1f1b PERC H700 Integrated + 1734 1176 RAID Ctrl SAS 6G 5/6 512MB (D2616) + 1734 1177 RAID Ctrl SAS 6G 0/1 (D2607) + 8086 9256 MegaRAID SAS 9260DE-8i + 8086 9260 MegaRAID SAS 9260-4i + 8086 9261 MegaRAID SAS 9260-8i 007c MegaRAID SAS 1078DE 1014 0395 ServeRAID-AR10is SAS/SATA Controller 0080 SAS2208 PCI-Express Fusion-MPT SAS-2 @@ -681,6 +701,7 @@ 1734 10b8 Realtek High Definition Audio 4380 SB600 Non-Raid-5 SATA 103c 2813 DC5750 Microtower + 1458 b003 GA-MA790FX-DS5 (rev. 1.0) 1458 b005 Gigabyte GA-MA69G-S3H Motherboard 1462 7327 K9AG Neo2 17f2 5999 KI690-AM2 Motherboard @@ -688,10 +709,12 @@ 4382 SB600 AC97 Audio 4383 SBx00 Azalia (Intel HDA) 103c 280a DC5750 Microtower + 1043 836c M4A785TD Motherboard 17f2 5000 KI690-AM2 Motherboard 4384 SBx00 PCI to PCI Bridge 4385 SBx00 SMBus Controller 103c 280a DC5750 Microtower + 1043 8389 M4A785TD Motherboard 1462 7368 K9AG Neo2 17f2 5000 KI690-AM2 Motherboard 4386 SB600 USB Controller (EHCI) @@ -729,6 +752,7 @@ 17f2 5000 KI690-AM2 Motherboard 438e SB600 AC97 Modem 4390 SB700/SB800 SATA Controller [IDE mode] + 1043 8389 M4A785TD Motherboard 1849 4390 Motherboard (one of many) 4391 SB700/SB800 SATA Controller [AHCI mode] 4392 SB700/SB800 SATA Controller [Non-RAID5 mode] @@ -762,6 +786,7 @@ 8086 464a Rage Pro Turbo AGP 2X 4744 3D Rage Pro AGP 1X 1002 4744 Rage Pro Turbo AGP + 8086 4d55 Rage 3D Pro AGP 1X [Intel MU440EX] 4747 3D Rage Pro 4749 3D Rage Pro 1002 0061 Rage Pro AIW @@ -1030,6 +1055,7 @@ 148c 2026 R200 QL [Radeon 8500 Evil Master II Multi Display Edition] 1681 0010 Radeon 8500 [3D Prophet 8500 128Mb] 174b 7149 Radeon R200 QL [Sapphire Radeon 8500 LE] + 1787 0f08 Radeon R200 QL [PowerMagic Radeon 8500] 514d Radeon R200 QM [Radeon 9100] 514e Radeon R200 QN [Radeon 8500LE] 514f Radeon R200 QO [Radeon 8500LE] @@ -1356,6 +1382,20 @@ 5e6d RV410 [Radeon X700 (PCIE)] (Secondary) 148c 2117 PowerColor Bravo X700 5f57 R423 [Radeon X800XT (PCIE)] + 6898 Radeon HD 5870 (Cypress) + 1462 8032 R5870 PM2D1G + 6899 Cypress [Radeon HD 5800 Series] + 68a1 Broadway PRO [Mobility Radeon HD 5800 Series] + 68b8 Juniper [Radeon HD 5700 Series] + 68be Juniper [Radeon HD 5750 Series] + 68c0 Madison [Mobility Radeon HD 5000 Series] + 68c1 Redwood [Radeon HD 5600 Series] + 1025 0347 Aspire 7740G + 68d8 Redwood [Radeon HD 5670] + 68d9 Redwood PRO [Radeon HD 5500 Series] + 68da Redwood PRO [Radeon HD 5500 Series] + 68e0 Manhattan [Mobility Radeon HD 5000 Series] + 68f9 Cedar PRO [Radeon HD 5450] 700f PCI Bridge [IGP 320M] 7010 PCI Bridge [IGP 340M] 7100 R520 [Radeon X1800] @@ -1522,20 +1562,24 @@ 9443 R700 [Radeon HD 4850] 944a M98L [Mobility Radeon HD 4850] 944c RV770 LE [Radeon HD 4800 Series] + 944e RV770 CE [Radeon HD 4710] 9450 RV770 [FireStream 9270] 9452 RV770 [FireStream 9250] 945a M98 XT [Mobility Radeon HD 4870] 9460 RV790 [Radeon HD 4800 Series] + 9462 RV790LE [Radeon HD 4800 Series] 9480 M96 [Mobility Radeon HD 4650] 103c 3628 ATI Mobility Radeon HD 4650 [dv6-1190en] + 9485 RV740 Pro [Radeon HD 4770] 9489 M96 XT [Mobility FireGL V5725] 9490 RV730XT [Radeon HD 4670] 174b e880 Radeon HD 4670 512MB DDR3 9491 M96 CSP [ATI RADEON E4690] - 9495 HD 4650 + 9495 RV730 Pro AGP [Radeon HD 4600 Series] 1002 9495 RV730 XT [PowerColor Radeon HD4670 AGP 1GB DDR] 1458 0028 HD4650 9498 RV730 PRO [Radeon HD 4650] + 949e RV370 [FirePro V5700] 949f RV730 [FirePro V5700] 94a0 Mobility Radeon HD 4830 [M97] 94a1 [M97 XT] Mobility Radeon HD 4860 @@ -1592,9 +1636,9 @@ 1002 95c0 Mobility Radeon HD 3470 95c4 Mobility Radeon HD 3400 Series 1002 95c4 Mobility Radeon HD 3400 - 95c5 Mobility Radeon HD 3450 - 1002 95c5 Mobility Radeon HD 3450 + 95c5 RV620 LE [Radeon HD 3450] 95c6 RV620 LE AGP [Radeon HD 3450] + 95c7 RV620 CE [Radeon HD 3430] 95c9 RV620 PCI [Radeon HD 3450] 95cc RV620 [ATI FireGL V3700] 95cd RV620 [FireMV 2450] @@ -1609,6 +1653,15 @@ 9614 Radeon HD 3300 Graphics 9615 RS780E [AMD 780E] 9616 760G [Radeon 3000] + 970f RS880 Audio Device [Radeon HD 4200] + 1043 83a2 M4A785TD Motherboard + 9710 RS880 [Radeon HD 4200] + 1043 83a2 M4A785TD Motherboard + 9712 M880G [Mobility Radeon HD 4200] + 9713 M860G [Mobility Radeon 4100] + 9714 RS880 [Radeon HD 4290] + 9715 RS880 [Radeon HD 4250] + 9723 Radeon HD 5450 aa00 R600 Audio Device [Radeon HD 2900 Series] aa08 RV630/M76 audio device [Radeon HD 2600 Series] aa10 RV610 audio device [Radeon HD 2400 PRO] @@ -1622,6 +1675,11 @@ aa38 RV710/730 103c 3628 ATI RV710/730 [dv6-1190en] 174b aa38 R700 Audio Device [Radeon HD 4000 Series] + aa50 Cypress HDMI Audio [Radeon HD 5800 Series] + aa58 Juniper HDMI Audio [Radeon HD 5700 Series] + aa60 Redwood HDMI Audio [Radeon HD 5600 Series] + 1025 0347 Aspire 7740G + aa68 Manhattan HDMI Audio [Mobility Radeon HD 5000 Series] ac00 Theater 600 Pro cab0 AGP Bridge [IGP 320M] cab2 RS200/RS200M AGP Bridge [IGP 340M] @@ -1862,7 +1920,7 @@ 1014 1010 CS4610 SoundFusion Audio Accelerator 6003 CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] 1013 4280 Crystal SoundFusion PCI Audio Accelerator - 1014 0153 ThinkPad A20m + 1014 0153 ThinkPad 600X/A20m 153b 112e DMX XFire 1024 153b 1136 SiXPack 5.1+ 1681 0050 Game Theater XP @@ -2491,14 +2549,45 @@ 1705 0002 Millennium G450 16MB SGRAM 1705 0003 Millennium G450 32MB 1705 0004 Millennium G450 16MB - 0527 MGA Parhelia AGP + 0527 Parhelia 102b 0840 Parhelia 128Mb - 102b 0850 Parhelia 256MB AGP 4X - 0528 Parhelia 8X + 102b 0850 Parhelia 256MB + 102b 0870 MED2mp-DVI + 102b 0880 P-256 Edge Overlap Controller + 0528 Parhelia 102b 1020 Parhelia 128MB 102b 1030 Parhelia 256 MB Dual DVI + 102b 1040 MED2mp-DVI + 102b 1050 Sono S20 + 102b 1060 PJ-30L + 102b 1070 PJ-40L + 102b 1421 MED5mp + 102b 1431 MED3mp-DVI + 102b 1451 MED5mp-DVI + 102b 1491 MED2mp-DVI + 102b 14b1 MED3mp-DVI + 102b 14c1 MED5mp-DVI 102b 14e1 Parhelia PCI 256MB + 102b 14f1 Parhelia Precision SGT + 102b 1501 ATC-4MP + 102b 1511 ATC-4MP + 102b 1521 TheatreVUE T30 + 102b 1531 TheatreVUE T20 + 102b 1541 MED2mp-DVI + 102b 1551 MED3mp-DVI + 102b 1561 MED5mp-DVI + 102b 1571 Parhelia DL256 PCI + 102b 1591 Parhelia Precision SDT + 102b 15a1 MED4mp-DVI + 102b 2011 Parhelia HR256 102b 2021 QID Pro + 102b 2061 PJ-40LP + 102b 2081 EWS Quad + 102b 2411 PPX-OUT8 + 102b 2421 VPX-OUT8 + 102b 2441 PPX-OUT4 + 102b 2451 VPX-OUT4 + 102b 2491 LPX-OUT4 0530 MGA G200EV 0532 MGA G200eW WPCM450 1028 0235 PowerEdge R710 MGA G200eW WPCM450 @@ -2508,14 +2597,20 @@ 1028 028c PowerEdge R410 MGA G200eW WPCM450 1028 028d PowerEdge T410 MGA G200eW WPCM450 1028 029c PowerEdge M710 MGA G200eW WPCM450 + 1028 02a4 PowerEdge T310 MGA G200eW WPCM450 0540 M91XX 102b 2080 M9140 LP PCIe x16 + 102b 20c0 Xenia + 102b 20c1 Xenia Pro 102b 2100 M9120 PCIe x16 102b 2140 M9125 PCIe x16 102b 2180 M9120 Plus LP PCIe x16 102b 21c0 M9120 Plus LP PCIe x1 + 102b 2200 VDA1164 Output Board 102b 2240 M9148 LP PCIe x16 102b 2241 M9138 LP PCIe x16 + 102b 2280 M9188 ATX PCIe x16 + 102b 22c0 M9128 LP PCIe x16 0d10 MGA Ultima/Impression 1000 MGA G100 [Productiva] 102b ff01 Productiva G100 @@ -2538,18 +2633,51 @@ 2537 Millenium P650/P750 102b 1820 Millennium P750 64MB 102b 1830 Millennium P650 64MB + 102b 1850 RAD2mp + 102b 1860 RAD3mp + 102b 1880 Sono S10 102b 1c10 QID 128MB 102b 2811 Millennium P650 Low-profile PCI 64MB + 102b 2821 Millenium P650 Low-profile PCI + 102b 2841 RAD PCI + 102b 2851 Spectrum PCI + 102b 2871 EpicA TC2 102b 2c11 QID Low-profile PCI + 102b 2c21 QID LP PCI LW + 102b 2c31 QID LP PCI + 102b 2c41 EpicA TC4 + 102b 3001 Extio F1400 + 102b 3011 Extio F1220 + 102b 3041 RG-200DL + 102b 3051 RG-400SL + 102b 3061 Extio F1420 + 102b 3081 Extio F1240 2538 Millenium P650 PCIe + 102b 0847 RAD PCIe 102b 08c7 Millennium P650 PCIe 128MB 102b 0907 Millennium P650 PCIe 64MB 102b 0947 Parhelia APVe + 102b 0987 ATC PCIe 4MP 102b 1047 Millennium P650 LP PCIe 128MB 102b 1087 Millennium P650 LP PCIe 64MB + 102b 1801 Millenium P650 PCIe x1 102b 2538 Parhelia APVe 102b 3007 QID Low-profile PCIe + 102b 3087 Aurora VX3mp + 102b 30c7 QID LP PCIe 2539 Millennium P690 + 102b 0040 Millenium P690 PCIe x16 + 102b 0042 ONYX + 102b 0043 SPECTRA + 102b 0080 Millenium P690 Plus LP PCIe x16 + 102b 0081 Millenium P690 LP PCIe x16 + 102b 0082 RAD LPX PCIe x16 + 102b 00c0 Millenium P690 Plus LP PCI + 102b 00c2 Millenium P690 LP PCI + 102b 00c3 RAD LPX PCI + 102b 0101 Millenium P690 PCI + 102b 0140 Millenium P690 LP PCIe x1 + 102b 0180 Display Wall IP Decode 128 MB 4536 VIA Framegrabber 4cdc Morphis Vision System Jpeg2000 4fc5 Morphis Vision System @@ -2673,6 +2801,7 @@ 010c VR7701 0125 uPD720400 PCI Express - PCI/PCI-X Bridge 013a Dual Tuner/MPEG Encoder + 0194 uPD720200 USB 3.0 Host Controller 1034 Framatome Connectors USA Inc. 1035 Comp. & Comm. Research Lab 1036 Future Domain Corp. @@ -2934,6 +3063,8 @@ 103c 3237 E500 SAS Controller 103c 323d P700m SAS Controller 3238 Smart Array E200i (SAS Controller) + 103c 3211 Smart Array E200i + 103c 3212 Smart Array E200 323a Smart Array G6 controllers 103c 3241 Smart Array P212 103c 3243 Smart Array P410 @@ -2942,8 +3073,7 @@ 103c 3249 Smart Array P812 103c 324a HP Smart Array 712m (Mezzanine RAID controller) 103c 324b Smart Array P711m (Mezzanine RAID controller) -# Will present virtual install media as mass storage, keyboard/mouse from console session, etc. - 3300 Proliant iLO2 virtual USB controller + 3300 Proliant iLO2/iLO3 virtual USB controller 3301 iLO3 Serial Port # Virtual serial port which is presented on a Java applet 3302 Proliant iLO2 virtual UART @@ -2991,8 +3121,12 @@ # Found on ASUS M2V motherboard 81e7 Realtek ALC-660 6-channel CODEC 81f4 EN7300TC512/TD/128M/A(C262G) [Graphics Card EN7300TC512] + 8233 EEE-PC 701 Netbook 82ca G96 GeForce 9500 GT 82e8 M3N72-D +# wrong vendor ID (should have been AMD) + 9602 RS880 PCI to PCI bridge (int gfx) + 1043 83a2 M4A785TD Motherboard 1044 Adaptec (formerly DPT) 1012 Domino RAID Engine a400 SmartCache/Raid I-IV Controller @@ -3230,10 +3364,15 @@ 1028 0139 Latitude D400 1028 014e Latitude D800 8231 XIO2000(A)/XIO2200(A) PCI Express-to-PCI Bridge + 5678 1234 DC-1394 PCIe + 8232 XIO3130 PCI Express Switch (Upstream) + 8233 XIO3130 PCI Express Switch (Downstream) 8235 XIO2200(A) IEEE-1394a-2000 Controller (PHY/Link) - 823e XIO2213A PCI Express to PCI Bridge - 823f XIO2213A 1394b OHCI with 3-Port PHY + 5678 1234 DC-1394 PCIe + 823e XIO2213A/B/XIO2221 PCI Express to PCI Bridge + 823f XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller 1546 803c FWB-PCIE1X11B + 8240 XIO2001 PCI Express-to-PCI Bridge 8400 ACX 100 22Mbps Wireless Interface 1186 3b00 DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus] 1186 3b01 DWL-520+ 22Mbps PCI Wireless Adapter @@ -3271,7 +3410,7 @@ ac1a PCI1210 ac1b PCI1450 0e11 b113 Armada M700 - 1014 0130 ThinkPad A21m/T20/T22 + 1014 0130 ThinkPad 600X/A21m/T20/T22 ac1c PCI1225 0e11 b121 Armada E500 1028 0088 Latitude CPi A400XT @@ -3349,6 +3488,7 @@ 8039 CXD3222 i.LINK Controller 8056 Rockwell HCF 56K modem 808a Memory Stick Controller + 81ce SxS Pro memory card 104e Oak Technology, Inc 0017 OTI-64017 0107 OTI-107 [Spitfire] @@ -3391,6 +3531,8 @@ 3017 Unassigned Hitachi Shared FC Device 3017 301d PCIe-to-PCIe Bridge with Virtualization IO Assist Feature 3020 FIVE-EX based Fibre Channel to PCIe HBA + 302c M001 PCI Express Switch Upstream Port + 302d M001 PCI Express Switch Downstream Port 3505 SH7751 PCI Controller (PCIC) 350e SH7751R PCI Controller (PCIC) 1055 Efar Microsystems @@ -3778,6 +3920,7 @@ 000a DS1L Audio 1073 0004 DS-XG PCI Audio CODEC 1073 000a DS-XG PCI Audio CODEC + 8086 4d55 DS-XG PCI Audio CODEC [Intel MU440EX] 000c YMF-740C [DS-1L Audio Controller] 107a 000c DS-XG PCI Audio CODEC 000d YMF-724F [DS-1 Audio Controller] @@ -3832,6 +3975,14 @@ 7322 IBA7322 QDR InfiniBand HCA 8000 10GbE Converged Network Adapter (TCP/IP Networking) 8001 10GbE Converged Network Adapter (FCoE) + 8020 cLOM8214 1/10GbE Controller + 1077 0203 8200 Series Single Port 10GbE Converged Network Adapter (TCP/IP Networking) + 1077 0207 8200 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking) + 1077 020b 3200 Series Dual Port 10Gb Intelligent Ethernet Adapter + 1077 020c 3200 Series Quad Port 1Gb Intelligent Ethernet Adapter + 1077 020f 3200 Series Single Port 10Gb Intelligent Ethernet Adapter + 8021 8200 Series 10GbE Converged Network Adapter (FCoE) + 8022 8200 Series 10GbE Converged Network Adapter (iSCSI) 8432 ISP2432M-based 10GbE Converged Network Adapter (CNA) 1078 Cyrix Corporation 0000 5510 [Grappa] @@ -3857,6 +4008,7 @@ 2971 [GeForce FX 5900] WinFast A350 TDH MyViVo 6609 Winfast TV 2000 XP RM 6654 Conexant CX23883 [WinFast DTV1800 H] + 6f34 WinFast DVR3100 H 107e Interphase Corporation 0001 5515 ATM Adapter [Flipper] 0002 100 VG AnyLan Controller @@ -4347,7 +4499,9 @@ 8533 PEX 8533 32-lane, 6-port PCI Express Switch 8547 PEX 8547 48-lane, 3-port PCI Express Switch 8548 PEX 8548 48-lane, 9-port PCI Express Switch + 8624 PEX 8624 24-lane, 6-Port PCI Express Gen 2 (5.0 GT/s) Switch [ExpressLane] 8647 PEX 8647 48-Lane, 3-Port PCI Express Gen 2 (5.0 GT/s) Switch + 9016 PLX 9016 8-port serial controller 9030 PCI9030 32-bit 33MHz PCI <-> IOBus Bridge 10b5 2695 Hilscher CIF50-PB Profibus Master Board 10b5 2862 Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board @@ -4439,6 +4593,7 @@ 16df 0016 PIKA InLine MM 9056 PCI9056 32-bit 66MHz PCI <-> IOBus Bridge 10b5 2979 CellinkBlade 11 - CPCI board VoATM AAL1 + 10b5 3268 IXXAT iPC-I XC16/PCIe CAN Board 10b5 3352 Alpermann+Velte PCL PCIe HD: Timecode Reader Board 10b5 3353 Alpermann+Velte PCL PCIe D: Timecode Reader Board 10b5 3354 Alpermann+Velte PCL PCIe LV: Timecode Reader Board @@ -4816,6 +4971,7 @@ 1014 00dd ThinkPad 570 1028 0088 Latitude CPi A 0006 NM2360 [MagicMedia 256ZX] + 1014 0152 ThinkPad 600X 0016 NM2380 [MagicMedia 256XL+] 10c8 0016 MagicMedia 256XL+ 0025 NM2230 [MagicGraph 256AV+] @@ -5201,6 +5357,7 @@ 105b 0c43 Winfast NF3250K8AA 1462 7030 K8N Neo-FSR v2.0 147b 1c0b NF8 Mainboard + 1849 00e5 Motherboard (one of many) f849 00e5 Motherboard (one of many) 00e6 CK8S Ethernet Controller 00e7 CK8S USB Controller @@ -5401,6 +5558,7 @@ 01d0 G72 [GeForce 7350 LE] 01d1 G72 [GeForce 7300 LE] 1462 0345 7300LE PCI Express Graphics Adapter + 01d2 G72 [GeForce 7550 LE] 01d3 G72 [GeForce 7300 SE/7200 GS] 01d6 G72M [GeForce Go 7200] 01d7 G72M [Quadro NVS 110M/GeForce Go 7300] @@ -5520,7 +5678,7 @@ 026c MCP51 High Definition Audio 103c 30b5 Presario V3242AU 103c 30b7 Presario V6133CL - 10de cb84 A8N-VM CSM Mainboard + 10de cb84 ASUSTeK Computer Inc. A8N-VM CSM Mainboard 1462 7207 K8NGM2 series 026d MCP51 USB Controller 103c 30b7 Presario V6133CL @@ -5748,6 +5906,7 @@ 037f MCP55 SATA Controller 1028 0221 PowerEdge R805 MCP55 SATA Controller 147b 12c4 KN9-Ultra Mainboard + 038b G73 [GeForce 7650 GS] 0390 G73 [GeForce 7650 GS] 0391 G73 [GeForce 7600 GT] 1458 3427 GV-NX76T128D-RH @@ -5845,16 +6004,18 @@ 0404 G84 [GeForce 8400 GS] 1462 1230 NX8400GS-TD256E 0405 G84 [GeForce 9500M GS] + 0406 G84 [GeForce 8300 GS] 0407 G84 [GeForce 8600M GT] 0408 G84 [GeForce 9650M GS] 0409 G84 [GeForce 8700M GT] 040a G84 [Quadro FX 370] - 040b Quadro NVS 320M - 040c Quadro FX 570M + 040b G84M [Quadro NVS 320M] + 040c G84M [Quadro FX 570M] 17aa 20d9 ThinkPad T61p - 040d Quadro FX 1600M + 040d G84 [Quadro FX 1600M] 040e G84 [Quadro FX 570] 040f G84 [Quadro FX 1700] + 0410 G92 [GeForce GT 330] 0420 G86 [GeForce 8400 SE] 0421 G86 [GeForce 8500 GT] 1462 0960 NX8500GT-TD512EH/M2 @@ -5866,12 +6027,12 @@ 0426 G86 [GeForce 8400M GT] 0427 G86 [GeForce 8400M GS] 0428 G86 [GeForce 8400M G] - 0429 Quadro NVS 140M + 0429 G84M [Quadro NVS 140M] 17aa 20d8 ThinkPad T61 - 042a Quadro NVS 130M - 042b Quadro NVS 135M + 042a G86M [Quadro NVS 130M] + 042b G86M [Quadro NVS 135M] 042c G86 [GeForce 9400 GT] - 042d Quadro FX 360M + 042d G86M [Quadro FX 360M] 042e G86 [GeForce 9300M G] 042f G86 [Quadro NVS 290] 0440 MCP65 LPC Bridge @@ -5960,8 +6121,9 @@ 056d MCP73 PCI Express bridge 056e MCP73 PCI Express bridge 056f MCP73 PCI Express bridge - 05b8 PCI express bridge for GTX 295 - 05be PCI express bridge for Quadro Plex S4 / Tesla S870 / Tesla S1070 + 05b1 NF200 PCIe 2.0 switch for mainboards + 05b8 NF200 PCIe 2.0 switch for GTX 295 + 05be NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 05e0 GT200b [GeForce GTX 295] 05e1 GT200 [GeForce GTX 280] # GT200 [GTX 260] or GT200 [GTX 260-216] or GT200b [GTX 260-216] @@ -5970,23 +6132,29 @@ 05e6 GT200b [GeForce GTX 275] # Found in GPU server Tesla S1070 05e7 GT200 [Tesla C1060] + 05ea GT200 [GeForce GTX 260] + 05eb GT200 [GeForce GTX 295] 05ed GT200GL [Quadro Plex 2200 D2] 05f8 GT200GL [Quadro Plex 2200 S4] 05f9 GT200GL [Quadro CX] 05fd GT200GL [Quadro FX 5800] 05fe GT200GL [Quadro FX 4800] + 05ff GT200GL [NVIDIA Quadro FX 3800] 0600 G92 [GeForce 8800 GTS 512] 0601 G92 [GeForce 9800 GT] 0602 G92 [GeForce 8800 GT] + 0603 G92 [GeForce GT 230] 0604 G92 [GeForce 9800 GX2] 0605 G92 [GeForce 9800 GT] 0606 G92 [GeForce 8800 GS] + 0607 G92 [GeForce GTS 240] 0608 G92 [GeForce 9800M GTX] 0609 G92 [GeForce 8800M GTS] 060a GT200 [GeForce GTX 280M] 060b G92 [GeForce 9800M GT] 060c G92 [GeForce 8800M GTX] 060d G92 [GeForce 8800 GS] + 060f G92 [GeForce GTX 285M] 0610 G92 [GeForce 9600 GSO] 1682 2385 GeForce 9600 GSO 768mb 0611 G92 [GeForce 8800 GT] @@ -6004,12 +6172,13 @@ # Overclocked 3842 1156 GeForce GTS 250 P/N 01G-P3-1156-TR 0617 G92 [GeForce 9800M GTX] - 0618 GT200 [GeForce GTX 260M] + 0618 G92 [GeForce GTX 260M] 0619 G92GL [Quadro FX 4700 X2] 061a G92 [Quadro FX 3700] 061b G92GL [Quadro VX 200] 061c G92M [Quadro FX 3600M] 061d G92 [Quadro FX 2800M] + 061e G92 [Quadro FX 3700M] 061f G92 [Quadro FX 3800M] 0622 G94 [GeForce 9600 GT] 107d 2ac1 WinFast PX9600GT 1024MB @@ -6022,8 +6191,12 @@ 062a G94 [GeForce 9700M GTS] 062b G94 [GeForce 9800M GS] 062c G94 [GeForce 9800M GTS] + 062d G94 [GeForce 9600 GT] + 062e G94 [GeForce 9600 GT] 0631 G94M [GeForce GTS 160M] 0632 G94M [GeForce GTS 150M] + 0635 G94 [GeForce 9600 GSO] + 0637 G94 [GeForce 9600 GT] 0638 G94 [Quadro FX 1800] 063a G94M [Quadro FX 2700M] 0640 G96 [GeForce 9500 GT] @@ -6041,10 +6214,16 @@ 0651 G96 [GeForce G 110M] 0652 G96 [GeForce GT 130M] 0653 G96M [GeForce GT 120M] + 0654 G96 [GeForce GT 220M] + 0656 G96 [GeForce 9650 S] 0658 G96 [Quadro FX 380] 0659 G96 [Quadro FX 580] + 065a G96 [Quadro FX 1700M] 065b G96 [GeForce 9400 GT] 065c G96M [Quadro FX 770M] + 06c0 GF100 [GeForce GTX 480] + 06cd GF100 [GeForce GTX 470] + 06d1 GF100 [Tesla C2050] 06e0 G98 [GeForce 9300 GE] 06e1 G98 [GeForce 9300 GS] 06e2 G98 [GeForce 8400] @@ -6061,9 +6240,13 @@ 06eb G98M [Quadro NVS 160M] 06ec G98M [GeForce G 105M] 06ef G98M [GeForce G 103M] + 06f1 G98 [GeForce G105M] 06f8 G98 [Quadro NVS 420] 06f9 G98 [Quadro FX 370 LP] 06fa G98 [Quadro NVS 450] + 06fb G98 [Quadro FX 370M] + 06fd G98 [Quadro NVS 295] + 06ff G98 [HICx16 + Graphics] 0751 MCP78S [GeForce 8200] Memory Controller 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH @@ -6094,7 +6277,7 @@ 075c MCP78S [GeForce 8200] LPC Bridge 1462 7508 K9N2GM-FIH 1849 075c K10N78FullHD-hSLI R3.0 LPC Bridge - 075d nForce 750a LPC Bridge + 075d MCP78S [GeForce 8200] LPC Bridge 1043 82e8 M3N72-D 0760 MCP77 Ethernet 1043 82e8 M3N72-D @@ -6172,7 +6355,7 @@ 07e0 C73 [GeForce 7150 / nForce 630i] 1afa 7150 JW-IN7150-HD 07e1 C73 [GeForce 7100 / nForce 630i] - 07e2 GeForce 7050 / nForce 630i + 07e2 C73 [GeForce 7050 / nForce 630i] 07e3 C73 [GeForce 7050 / nForce 610i] 07e5 C73 [GeForce 7100 / nForce 620i] 07f0 MCP73 IDE @@ -6184,6 +6367,7 @@ 1afa 7150 JW-IN7150-HD 0844 C77 [GeForce 9100M G] 0845 C77 [GeForce 8200M G] + 0846 C77 [GeForce 9200] 0847 C78 [GeForce 9100] 0848 C77 [GeForce 8300] 0849 C77 [GeForce 8200] @@ -6213,12 +6397,43 @@ 0871 C79 [GeForce 9200] 0872 C79 [GeForce G102M] 0873 C79 [GeForce G102M] - 087a C79 [Quadro FX 470] + 0874 C79 [ION] + 0876 ION VGA [GeForce 9400M] + 087a C79 [GeForce 9400] 087d ION VGA - 087f C79 [Quadro FX 470M] - 0a20 GT200 [GeForce GT 220] - 0a60 GT200 [GeForce G210] - 0a65 GT200 [GeForce 210] + 087e ION LE VGA + 087f ION LE VGA + 0a20 GT216 [GeForce GT 220] + 0a23 GT218 [GeForce 210] + 0a28 GT216 [GeForce GT 230M] + 0a29 GT216 [GeForce GT 330M] + 0a2a GT216 [GeForce GT 230M] + 0a2b GT216 [GeForce GT 330M] + 0a2c GT216 [NVS 5100M] + 0a2d GT216 [GeForce GT 320M] + 0a34 GT216 [GeForce GT 240M] + 0a35 GT216 [GeForce GT 325M] + 0a3c GT216 [Quadro FX 880M] + 0a60 GT218 [GeForce G210] + 0a62 GT218 [GeForce 205] + 0a63 GT218 [GeForce 310] + 0a64 GT218 [ION] + 0a65 GT218 [GeForce 210] + 0a66 GT218 [GeForce 310] + 0a68 G98M [GeForce G105M] + 0a69 G98M [GeForce G105M] + 0a6a GT218 [NVS 2100M] + 0a6c GT218 [NVS 3100M] + 0a6e GT218 [GeForce 305M] + 0a6f GT218 [ION] + 0a70 GT218 [GeForce 310M] + 0a71 GT218 [GeForce 305M] + 0a72 GT218 [GeForce 310M] + 0a73 GT218 [GeForce 305M] + 0a74 GT218 [GeForce G210M] + 0a75 GT218 [GeForce 310M] + 0a78 GT218GL [Quadro FX 380 LP] + 0a7c GT218 [Quadro FX 380M] 0a80 MCP79 Host Bridge 0a81 MCP79 Host Bridge 0a82 MCP79 Host Bridge @@ -6276,6 +6491,35 @@ 1043 82e8 M3N72-D 1849 0ad4 K10N78FullHD-hSLI R3.0 AHCI Controller 0ad8 MCP78S [GeForce 8200] SATA Controller (RAID mode) + 0be2 High Definition Audio Controller + 0be3 High Definition Audio Controller + 0be4 High Definition Audio Controller + 0ca0 GT215 [GeForce GT 330] + 0ca2 GT215 [GeForce GT 320] + 0ca3 GT215 [GeForce GT 240] + 0ca4 GT215 [GeForce GT 340] + 0ca7 GT215 [GeForce GT 330] + 0ca8 GT215 [GeForce GTS 260M] + 0ca9 GT215 [GeForce GTS 250M] + 0caf GT215 [GeForce GT 335M] + 0cb0 GT215 [GeForce GTS 350M] + 0cb1 GT215 [GeForce GTS 360M] + 0cbc GT215 [Quadro FX 1800M] + 0d60 MCP89 HOST Bridge + 0d68 MCP89 Memory Controller + 0d69 MCP89 Memory Controller + 0d76 MCP89 PCI Express Bridge + 0d79 MCP89 SMBus + 0d7a MCP89 Co-Processor + 0d7b MCP89 Memory Controller + 0d7d MCP89 Ethernet + 0d80 MCP89 LPC Bridge + 0d85 MCP89 SATA Controller + 0d89 MCP89 SATA Controller (AHCI mode) + 0d8d MCP89 SATA Controller (RAID mode) + 0d94 MCP89 High Definition Audio + 0d9c MCP89 OHCI USB 1.1 Controller + 0d9d MCP89 EHCI USB 2.0 Controller 10df Emulex Corporation 1ae5 LP6000 Fibre Channel Host Adapter e100 Proteus-X: LightPulse IOV Fibre Channel Host Adapter @@ -6296,6 +6540,7 @@ f100 Saturn-X: LightPulse Fibre Channel Host Adapter f111 Saturn-X LightPulse Fibre Channel Host Adapter f112 Saturn-X LightPulse Fibre Channel Host Adapter + f180 LPSe12002 EmulexSecure Fibre Channel Adapter f700 LP7000 Fibre Channel Host Adapter f701 LP7000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2) f800 LP8000 Fibre Channel Host Adapter @@ -6401,6 +6646,7 @@ 0260 Realtek 260 High Definition Audio 0261 Realtek 261 High Definition Audio 0262 Realtek 262 High Definition Audio + 0269 Realtek ALC269 High Definition Audio (82801G) 0280 Realtek 280 High Definition Audio 0660 Realtek 660 High Definition Audio 0662 Realtek 662 High Definition Audio @@ -6480,6 +6726,7 @@ 1043 11f5 A6J-Q008 1043 16d5 U6V laptop 1043 81aa P5B + 1043 83a3 M4A785TD Motherboard 1458 e000 GA-EP45-DS5 Motherboard 1462 238c Onboard RTL8111b on MSI P965 Platinum Mainboard 1462 368c K9AG Neo2 @@ -6499,8 +6746,14 @@ 16ec 011f USR997903 1734 1091 D2030-A1 a0a0 0449 AK86-L motherboard + 8171 RTL8191SEvA Wireless LAN Controller + 8172 RTL8191SEvB Wireless LAN Controller + 8174 RTL8192SE Wireless LAN Controller 8180 RTL8180L 802.11b MAC + 1385 4700 MA521 802.11b Wireless PC Card + 1737 0019 WPC11v4 802.11b Wireless-B Notebook Adapter 8185 RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller + 8192 RTL8192E Wireless LAN Controller 8197 SmartLAN56 56K Modem 8199 RTL8187SE Wireless LAN Controller 10ed Ascii Corporation @@ -6508,6 +6761,7 @@ 10ee Xilinx Corporation 0001 EUROCOM for PCI (ECOMP) 0002 Octal E1/T1 for PCI ETP Card + 0007 Zomojo Z1 0205 Wildcard TE205P 0210 Wildcard TE210P 0314 Wildcard TE405P/TE410P (1st Gen) @@ -6856,10 +7110,11 @@ 10bd 0000 VT86C100A Fast Ethernet Adapter 1106 0100 VT86C100A Fast Ethernet Adapter 1186 1400 DFE-530TX rev A - 3044 VT6306 Fire II IEEE 1394 OHCI Link Layer Controller + 3044 VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller 0010 0001 IEEE 1394 4port DCST 1394-3+1B 1025 005a TravelMate 290 1043 808a A8V/A8N/P4P800 series motherboard + 1043 81fe M4A series motherboard 1458 1000 GA-7VT600-1394 Motherboard 1462 207d K8NGM2 series motherboard 1462 217d Aspire L250 @@ -7059,6 +7314,7 @@ 3372 VT8237S PCI to ISA Bridge 337a VT8237A PCI to PCI Bridge 337b VT8237A Host Bridge + 3403 VT6315 Series Firewire Controller 3409 VX855/VX875 DRAM Bus Control 4149 VIA VT6420 (ATA133) Controller 4204 K8M800 Host Bridge @@ -7080,6 +7336,7 @@ 4351 VT3351 Host Bridge 4353 VX800/VX820 Power Management Control 4364 CN896/VN896/P4M900 Host Bridge + 4397 VT1708B/1702S/1708S HD audio codec 4409 VX855/VX875 Power Management Control 5030 VT82C596 ACPI [Apollo PRO] 5122 VX855/VX875 Chrome 9 HCM Integrated Graphics @@ -7362,6 +7619,7 @@ 111a 0a09 ENI-3060 ADSL (VPI=<0..15>) 0007 SpeedStream ADSL 111a 1001 ENI-3061 ADSL [ASIC] + 1020 SpeedStream PCI 10/100 Network Card 1203 SpeedStream 1023 Wireless PCI Adapter 111b Teledyne Electronic Systems 111c Tricord Systems Inc. @@ -7595,7 +7853,8 @@ 153b 1157 Cinergy 1200 DVB-T 1894 0020 KNC One DVB-C V1.0 1894 0023 TVStation DVB-C plus - 7162 Pinnacle PCTV 3010iX Dual Analog + DVB-T (VT8251 Ultra VLINK Controller) + 7162 SAA7162 + 11bd 0101 Pinnacle PCTV 7010iX TV Card 9730 SAA9730 Integrated Multimedia and Peripheral Controller 1131 0000 Integrated Multimedia and Peripheral Controller 1132 Mitel Corp. @@ -7702,9 +7961,16 @@ 0023 81 VIC PCIe Upstream Port 0040 VIC PCIe Upstream Port 0041 VIC PCIe Downstream Port + 0042 VIC Management Controller + 1137 0047 P81E PCIe 0043 VIC Ethernet NIC + 1137 0047 P81E PCIe + 1137 0048 M81KR Mezzanine + 0044 VIC Ethernet NIC Dynamic + 1137 0047 P81E PCIe 1137 0048 M81KR Mezzanine 0045 VIC FCoE HBA + 1137 0047 P81E PCIe 1137 0048 M81KR Mezzanine 1138 Ziatech Corporation 8905 8905 [STD 32 Bridge] @@ -7851,6 +8117,7 @@ 0017 AccelePort C/X 001a DataFirePRIme E1 (1-port) 001b AccelePort C/X (IBM) + 001c AccelePort Xr (SAIP) 001d DataFire RAS T1/E1/PRI 114f 0050 DataFire RAS E1 Adapter 114f 0051 DataFire RAS Dual E1 Adapter @@ -8315,6 +8582,7 @@ 010c CompuScope 82G 8bit 2GS/s Analog Input Card 1198 Lambda Systems Inc 1199 Attachmate Corporation + 6832 Sierra Wireless MC8780 Device 119a Mind Share, Inc. 119b Omega Micro Inc. 1221 82C092G @@ -8347,8 +8615,13 @@ 1faa 88w8335 [Libertas] 802.11b/g Wireless 1385 4e00 WG511v2 54 Mbps Wireless PC Card 1385 6b00 WG311v3 802.11g Wireless PCI Adapter + 2211 88SB2211 PCI Express to PCI Bridge 2a01 88W8335 [Libertas] 802.11b/g Wireless 2a02 88W8361 [TopDog] 802.11n Wireless + 2a0c 88W8363 [TopDog] 802.11n Wireless + 2a30 88W8687 [TopDog] 802.11b/g Wireless + 2a40 88W8366 [TopDog] 802.11n Wireless + 2a43 88W8366 [TopDog] 802.11n Wireless 4101 OLPC Cafe Controller Secure Digital Controller 4320 88E8001 Gigabit Ethernet Controller 1019 0f38 Marvell 88E8001 Gigabit Ethernet Controller (ECS) @@ -8481,9 +8754,13 @@ 4367 88EC032 Ethernet Controller 4368 88EC034 Ethernet Controller 4369 88EC042 Ethernet Controller - 436a Marvell Yukon 88E8058 PCI-E Gigabit Ethernet Controller + 436a 88E8058 PCI-E Gigabit Ethernet Controller 436b 88E8071 PCI-E Gigabit Ethernet Controller + 436c 88E8072 PCI-E Gigabit Ethernet Controller + 436d 88E8055 PCI-E Gigabit Ethernet Controller 4370 88E8075 PCI-E Gigabit Ethernet Controller + 4380 88E8057 PCI-E Gigabit Ethernet Controller + 4381 88E8059 PCI-E Gigabit Ethernet Controller 4611 GT-64115 System Controller 4620 GT-64120/64120A/64121A System Controller 4801 GT-48001 @@ -8499,11 +8776,16 @@ 6042 88SX6042 PCI-X 4-Port SATA-II 6081 MV88SX6081 8-port SATA II PCI-X Controller 6101 88SE6101 single-port PATA133 interface - 6102 88SE6102 single-port PATA133(IDE) interface 6111 88SE6111 1-port PATA133(IDE) and 1-port SATA II Controllers 6121 88SE6121 SATA II Controller 6141 88SE614x SATA II PCI-E controller 6145 88SE6145 SATA II PCI-E controller + 6180 88F6180 [Kirkwood] ARM SoC + 6192 88F6190/6192 [Kirkwood] ARM SoC + 6281 88F6281 [Kirkwood] ARM SoC +# This device ID was used for earlier chips. + 6381 MV78xx0 [Discovery Innovation] ARM SoC + 6440 88SE6440 SAS/SATA PCIe controller 6450 64560 System Controller 6460 MV64360/64361/64362 System Controller 6480 MV64460/64461/64462 System Controller @@ -8511,6 +8793,8 @@ 6485 MV64460/64461/64462 System Controller, Revision B 7042 88SX7042 PCI-e 4-port SATA-II 16b8 434b Tempo SATA E4P + 7810 MV78100 [Discovery Innovation] ARM SoC + 7820 MV78200 [Discovery Innovation] ARM SoC f003 GT-64010 Primary Image Piranha Image Generator 11ac Canon Information Systems Research Aust. 11ad Lite-On Communications Inc @@ -8631,8 +8915,9 @@ 13e0 0040 LT WinModem 56k Data+Fax+Voice+Dsvd # Actiontech eth+modem card as used by Dell &c. 1668 2400 LT WinModem 56k (MiniPCI Ethernet+Modem) - 0449 WinModem 56k + 0449 L56xM+S [Mars-2] WinModem 56k 0e11 b14d 56k V.90 Modem + 1014 018c ThinkPad 600X 13e0 0020 LT WinModem 56k Data+Fax 13e0 0041 TelePath Internet 56k WinModem 1436 0440 Lucent Win Modem @@ -8814,6 +9099,7 @@ 9881 RL100TX Fast Ethernet 11f7 Scientific Atlanta 11f8 PMC-Sierra Inc. + 5220 BR522x [PMC-Sierra maxRAID SAS Controller] 7364 PM7364 [FREEDM - 32 Frame Engine & Datalink Mgr] 7375 PM7375 [LASAR-155 ATM SAR] 7384 PM7384 [FREEDM - 84P672 Frm Engine & Datalink Mgr] @@ -8916,6 +9202,7 @@ 1025 1016 Travelmate 612 TX 6972 OZ601/6912/711E0 CardBus/SmartCardBus Controller 1014 020c ThinkPad R30 + 1028 0152 Latitude D500 1179 0001 Magnia Z310 7110 OZ711Mx 4-in-1 MemoryCardBus Accelerator 103c 088c NC8000 laptop @@ -9212,8 +9499,8 @@ 1113 ee08 SMC2835W V3 EU Wireless Cardbus Adapter 1186 3202 DWL-G650 A1 Wireless Adapter 1259 c104 CG-WLCB54GT Wireless Adapter - 1260 0000 WG511 Wireless Adapter - 1385 4800 WG511 Wireless Adapter + 1260 0000 WG511 v1 54 Mbps Wireless PC Card + 1385 4800 WG511 v2/v3 54 Mbps Wireless PC Card 16a5 1605 ALLNET ALL0271 Wireless PCI Adapter 17cf 0014 XG-600 and clones Wireless Adapter 17cf 0020 XG-900 and clones Wireless Adapter @@ -9898,8 +10185,8 @@ 2850 HSP MicroModem 56 5120 ADM5120 OpenGate System-on-Chip 8201 ADM8211 802.11b Wireless Interface - 10b8 2635 SMC2635W 802.11b (11Mbps) wireless lan pcmcia (cardbus) card - 1317 8201 SMC2635W 802.11b (11mbps) wireless lan pcmcia (cardbus) card + 10b8 2635 SMC2635W v1 802.11b Wireless Cardbus Adapter + 1317 8201 SMC2635W v2 802.11b Wireless Cardbus Adapter 8211 ADM8211 802.11b Wireless Interface 9511 21x4x DEC-Tulip compatible 10/100 Ethernet 1318 Packet Engines Inc. @@ -10169,13 +10456,11 @@ 4600 WAG511 802.11a/b/g Dual Band Wireless PC Card 4601 WAG511 802.11a/b/g Dual Band Wireless PC Card 4610 WAG511 802.11a/b/g Dual Band Wireless PC Card - 4800 WG511(v1) 54 Mbps Wireless PC Card 4900 WG311v1 54 Mbps Wireless PCI Adapter 4a00 WAG311 802.11a/g Wireless PCI Adapter 4b00 WG511T 108 Mbps Wireless PC Card 4c00 WG311v2 54 Mbps Wireless-G PCI Adapter 4d00 WG311T 108 Mbps Wireless PCI Adapter - 4e00 WG511v2 54 Mbps Wireless PC Card 4f00 WG511U Double 108 Mbps Wireless PC Card 5200 GA511 Gigabit PC Card 620a GA620 Gigabit Ethernet @@ -10280,7 +10565,19 @@ 0020 7955 Security Processor 0026 8155 Security Processor 002e 9630 Compression Processor - 0037 DS4100 Secure Multi-Gigabit Server Adapter with Compression + 002f 9725 Compression and Security Processor + 13a3 1600 DR1600 Acceleration Card + 13a3 1605 DR1605 Acceleration Card + 13a3 1610 DR1610 Acceleration Card + 13a3 1615 DR1615 Acceleration Card + 13a3 1620 DR1620 Acceleration Card + 13a3 1625 DR1625 Acceleration Card + 0033 8201 Compression and Security Processor + 13a3 0036 DX1710 Acceleration Card + 0034 8202 Compression and Security Processor + 13a3 0036 DX1720 Acceleration Card + 0035 8203 Compression and Security Processor + 13a3 0036 DX1730 Acceleration Card 13a4 Rascom Inc 13a5 Audio Digital Imaging Inc 13a6 Videonics Inc @@ -10331,6 +10628,7 @@ 1003 9550SX SATA-II RAID PCI-X 1004 9650SE SATA-II RAID PCIe 1005 9690SA SAS/SATA-II RAID PCIe + 1010 9750 SAS2/SATA-II RAID PCIe 13c2 Technotrend Systemtechnik GmbH 000e Technotrend/Hauppauge DVB card rev2.3 1019 TTechnoTrend-budget DVB S2-3200 @@ -10721,6 +11019,10 @@ 0031 T320 10GbE Dual Port Adapter 0032 T302 1GbE Dual Port Adapter 0033 T304 1GbE Quad Port Adapter + 0034 B320 10GbE Dual Port Adapter + 0035 S310-CR 10GbE Single Port Adapter + 0036 S320-LP-CR 10GbE Dual Port Adapter + 0037 N320-G2-CR 10GbE Dual Port Adapter 1426 Storage Technology Corp. 1427 Better On-Line Solutions 1428 Edec Co Ltd @@ -11059,6 +11361,7 @@ 0811 Sentry5 External Interface Core 0816 BCM3302 Sentry5 MIPS32 CPU 1600 NetXtreme BCM5752 Gigabit Ethernet PCI Express + 1028 01c1 Precision 490 1028 01c2 Latitude D620 103c 3015 PCIe LAN on Motherboard 107b 5048 E4500 Onboard @@ -11183,6 +11486,8 @@ 0e11 00e3 NC7761 Gigabit Server Adapter 103c 3100 NC1020 ProLiant Gigabit Server Adapter 32 PCI 103c 3226 NC150T 4-port Gigabit Combo Switch & Adapter + 1655 NetXtreme BCM5717 Gigabit Ethernet PCIe + 1656 NetXtreme BCM5718 Gigabit Ethernet PCIe 1658 NetXtreme BCM5720 Gigabit Ethernet 1659 NetXtreme BCM5721 Gigabit Ethernet PCI Express 1014 02c6 eServer xSeries server mainboard @@ -11202,6 +11507,7 @@ 103c 7052 NC105T PCIe Gigabit Server Adapter 165b NetXtreme BCM5723 Gigabit Ethernet PCIe 103c 705d NC107i Integrated PCI Express Gigabit Server Adapter + 165c NetXtreme BCM5724 Gigabit Ethernet PCIe 165d NetXtreme BCM5705M Gigabit Ethernet 1028 865d Latitude D400 14e4 165d Dell Latitude D600 @@ -11210,6 +11516,7 @@ 103c 0890 NC6000 laptop 103c 099c NX6110/NC6120 10cf 1279 LifeBook E8010D + 1662 NetXtreme II BCM57712 10 Gigabit Ethernet 1668 NetXtreme BCM5714 Gigabit Ethernet 103c 7039 NC324i PCIe Dual Port Gigabit Server Adapter 1669 NetXtreme 5714S Gigabit Ethernet @@ -11255,9 +11562,14 @@ 1680 NetXtreme BCM5761e Gigabit Ethernet PCIe 1681 NetXtreme BCM5761 Gigabit Ethernet PCIe 1684 NetXtreme BCM5764M Gigabit Ethernet PCIe + 1685 NetXtreme II BCM57500S Gigabit Ethernet + 168a NetXtreme II BCM57800S 10 Gigabit Ethernet + 168d NetXtreme II BCM57840S 20 Gigabit Ethernet + 168e NetXtreme II BCM57810S 10 Gigabit Ethernet 1690 NetXtreme BCM57760 Gigabit Ethernet PCIe 1691 NetLink BCM57788 Gigabit Ethernet PCIe 1692 NetLink BCM57780 Gigabit Ethernet PCIe + 1025 033d Aspire 7740G 1693 NetLink BCM5787M Gigabit Ethernet PCI Express 1025 0121 Aspire 5920G 103c 30c0 6710b @@ -11304,6 +11616,12 @@ 103c 7038 NC373i PCI Express Multifunction Gigabit Server Adapter 103c 703b NC373i Integrated Multifunction Gigabit Server Adapter 103c 703d NC373F PCI Express Multifunction Gigabit Server Adapter + 16b0 NetXtreme BCM57761 Gigabit Ethernet PCIe + 16b1 NetLink BCM57781 Gigabit Ethernet PCIe + 16b2 NetLink BCM57791 Gigabit Ethernet PCIe + 16b4 NetXtreme BCM57765 Gigabit Ethernet PCIe + 16b5 NetLink BCM57785 Gigabit Ethernet PCIe + 16b6 NetLink BCM57795 Gigabit Ethernet PCIe 16c6 NetXtreme BCM5702A3 Gigabit Ethernet 10b7 1100 3C1000B-T 10/100/1000 PCI 14e4 000c BCM5702 1000Base-T @@ -11383,8 +11701,8 @@ 103c 1373 Broadcom 802.11a/b/g WLAN 103c 30b5 Presario V3242AU 1371 103c Broadcom 802.11 Multiband-netwerkadapter(6715s) - 4313 BCM4310 Ethernet Controller - 4315 BCM4312 802.11b/g + 4313 BCM4311 802.11a + 4315 BCM4312 802.11b/g LP-PHY 1028 000b Wireless 1395 WLAN Mini-Card 1028 000c Wireless 1397 WLAN Mini-Card 103c 137c BCM4312 802.11b/g Wireless LAN Controller @@ -11446,7 +11764,7 @@ 1414 0003 Wireless Notebook Adapter MN-720 1414 0004 Wireless PCI Adapter MN-730 4326 BCM4307 Chipcommon I/O Controller? - 4328 BCM4328 802.11a/b/g/n + 4328 BCM4321 802.11a/b/g/n 1028 0009 Wireless 1500 Draft 802.11n WLAN Mini-Card 1028 000a Wireless 1500 Draft 802.11n WLAN Mini-card 103c 1366 BCM4321 802.11a/b/g/n Wireless LAN Controller @@ -11454,10 +11772,16 @@ 103c 1368 BCM4321 802.11a/b/g/n Wireless LAN Controller 103c 1369 BCM4321 802.11a/b/g/n Wireless LAN Controller 14e4 4328 BCM4328 802.11a/b/g/n - 4329 BCM43XG + 4329 BCM4321 802.11b/g/n + 1737 0058 WPC300N v1 Wireless-N Notebook Adapter + 432a BCM4321 432b BCM4322 802.11a/b/g/n Wireless LAN Controller 1028 000d Wireless 1510 Wireless-N WLAN Mini-Card + 432c BCM4322 802.11b/g/n + 432d BCM4322 802.11a/b/g/n 4344 EDGE/GPRS data and 802.11b/g combo cardbus [GC89] + 4353 BCM43224 802.11a/b/g/n + 4357 BCM43225 802.11b/g/n 4401 BCM4401 100Base-T 1025 0035 TravelMate 660 103c 08b0 tc1100 tablet @@ -11491,6 +11815,7 @@ 4718 Sentry5 Crypto Accelerator 4719 BCM47xx/53xx RoboSwitch Core 4720 BCM4712 MIPS CPU + 4727 BCM4313 802.11b/g LP-PHY 5365 BCM5365P Sentry5 Host Bridge 5600 BCM5600 StrataSwitch 24+2 Ethernet Switch Controller 5605 BCM5605 StrataSwitch 24+2 Ethernet Switch Controller @@ -12130,11 +12455,13 @@ 6372 MT25408 [ConnectX EN 10GigE 10GBaseT, PCIe 2.0 2.5GT/s] 6732 MT26418 [ConnectX VPI PCIe 2.0 5GT/s - IB DDR / 10GigE] 673c MT26428 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE] - 6746 MT25408 [ConnectX EN 40GigE PCIe 2.0 5GT/s] + 6746 MT26438 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE Virtualization+] 6750 MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] 675a MT25408 [ConnectX EN 10GigE 10GBaseT, PCIe Gen2 5GT/s] - 6764 MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] + 6764 MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s Virtualization+] + 103c 3313 HP NC542m Dual Port Flex-10 10GbE BLc Adapter 676e MT26478 [ConnectX EN 40GigE, PCIe 2.0 5GT/s] + 6778 MT26488 [ConnectX VPI PCIe 2.0 5GT/s - IB DDR / 10GigE Virtualization+] 15b4 CCI/TRIAD 15b5 Cimetrics Inc 15b6 Texas Memory Systems Inc @@ -12290,11 +12617,22 @@ 5449 SmartPCI561 Modem 1641 MKNet Corp. 1657 Brocade Communications Systems, Inc. - 0013 425 4Gb/825 8Gb PCIe Dual port FC HBA - 0014 BR-1020 FC/FCOE 10GB Eth / FC over Eth - 0017 415 4Gb/815 8Gb PCIe FC HBA + 0013 425/825/42B/82B 4Gbps/8Gbps PCIe dual port FC HBA + 103c 1742 HP 82B 8Gbps dual port FC HBA + 103c 1744 HP 42B 4Gbps dual port FC HBA + 1657 0014 425/825 4Gbps/8Gbps PCIe dual port FC HBA + 0014 1010/1020/1007 10Gbps CNA + 1657 0014 1010/1020/1007 10Gbps CNA - FCOE + 1657 0015 1010/1020/1007 10Gbps CNA - LL + 0017 415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA + 103c 1741 HP 41B 4Gbps single port FC HBA + 103c 1743 HP 81B 8Gbps single port FC HBA + 1657 0014 415/815 4Gbps/8Gbps single port PCIe FC HBA + 0021 804/807 8Gbps FC HBA + 103c 1779 804 8Gbps FC HBA for HP Bladsystem c-class + 1657 0014 8Gbps FC HBA # Same Device_ID used for 410 (1port) and 420 (2 port) HBAs. - 0646 Brocade 400 4Gb PCIe FC HBA + 0646 400 4Gbps PCIe FC HBA 165a Epix Inc c100 PIXCI(R) CL1 Camera Link Video Capture Board [custom QL5232] d200 PIXCI(R) D2X Digital Video Capture Board [custom QL5232] @@ -12355,6 +12693,7 @@ 1458 e911 Gigabyte GN-WIAG02 1468 0408 ThinkPad 11b/g Wireless LAN Mini PCI Adapter 14b7 0a60 8482-WD ORiNOCO 11a/b/g Wireless PCI Adapter + 14b9 cb21 CB21 802.11a/b/g Cardbus Adapter 1668 1026 IBM HighRate 11 a/b/g Wireless CardBus Adapter 168c 0013 AirPlus XtremeG DWL-G650 Wireless PCMCIA Adapter 168c 1025 DWL-G650B2 Wireless CardBus Adapter @@ -12410,14 +12749,23 @@ 001d AR5007G Wireless Network Adapter # the name AR5005VL is used for some AR5513 based designs 0020 AR5513 802.11abg Wireless NIC + 1186 3a67 DWL-G650M Super G MIMO Wireless Notebook Adapter 0023 AR5008 Wireless Network Adapter + 1186 3a6a DWA-642 802.11n RangeBooster N CardBus Adapter + 1186 3a6d DWA-552 802.11n Xtreme N Desktop Adapter (rev A1) + 1737 0059 WPC300N v2 Wireless-N Notebook Adapter 0024 AR5008 Wireless Network Adapter 0027 AR9160 802.11abgn Wireless PCI Adapter 0029 AR922X Wireless Network Adapter + 1186 3a7a DWA-552 802.11n Xtreme N Desktop Adapter (rev A2) 002a AR928X Wireless Network Adapter (PCI-Express) 002b AR9285 Wireless Network Adapter (PCI-Express) + 002c AR2427 Wireless Network Adapter (PCI-Express) + 002d AR9287 Wireless Network Adapter + 002e AR9287 Wireless Network Adapter 0033 11a/b/g/n Wireless LAN Mini-PCI Express Adapter 0207 AR5210 + 0300 AR9300 Wireless LAN adaptor 1014 AR5212 802.11abg NIC 1014 058a ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6) 3b08 D-Link AirPlus G DWL-G630 @@ -12499,12 +12847,14 @@ 16da Advantech Co., Ltd. 0011 INES GPIB-PCI 16df PIKA Technologies Inc. +16e2 Geotest-MTS 16e3 European Space Agency 1e0f LEON2FT Processor 16e5 Intellon Corp. 6000 INT6000 Ethernet-to-Powerline Bridge [HomePlug AV] 6300 INT6300 Ethernet-to-Powerline Bridge [HomePlug AV] 16ec U.S. Robotics + 00ed USR997900 0116 USR997902 10/100/1000 Mbps PCI Network Card 2f00 USR5660A (USR265660A, USR5660A-BP) 56K PCI Faxmodem 3685 Wireless Access PCI Adapter Model 022415 @@ -12576,6 +12926,7 @@ 0050 Octeon CN57XX Network Processor (CN54XX/CN55XX/CN56XX) 0070 Octeon CN50XX Network Processor 0080 Octeon CN52XX Network Processor + 0090 Octeon II CN63XX Network Processor 1787 Hightech Information System Ltd. 1789 Ennyah Technologies Corp. # also used by Struck Innovative Systeme for joint developments @@ -12650,6 +13001,8 @@ 1230 ARC-1230 12-Port PCI-Express to SATA RAID Controller 1260 ARC-1260 16-Port PCI-Express to SATA RAID Controller 1280 ARC-1231 12-Port PCI-Express to SATA RAID Controller + 17d3 1221 ARC-1221 8-Port PCI-Express to SATA RAID Controller + 1300 ARC-1300ix-16 16-Port PCI-Express to SAS Non-RAID Host Adapter 1680 ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller # Nee S2io Inc. 17d5 Neterion Inc. @@ -12741,6 +13094,7 @@ 1186 3c08 DWL-G630 Rev E 1186 3c09 DWL-G510 Rev C 13d1 abe3 miniPCI Pluscom 802.11 a/b/g + 1458 e933 GN-WI01GS 1458 e934 GN-WP01GS 1737 0055 WMP54G ver 4.1 1814 2561 EW-7108PCg @@ -12936,6 +13290,11 @@ 0015 SuperFSCC-104 0016 Fastcom FSCC-232 0017 SuperFSCC-104-NOUART + 0018 SuperFSCC/4 + 0019 SuperFSCC-104 + 001a SuperFSCC-104-LVDS + 001b FSCC/4 + 001c SuperFSCC/4-LVDS 18fb Resilience Corporation 1904 Hangzhou Silan Microelectronics Co., Ltd. 2031 SC92031 PCI Fast Ethernet Adapter @@ -12949,7 +13308,6 @@ 0100 A104d QUAD T1/E1 AFT card 0300 A101 single-port T1/E1 0400 A104u Quad T1/E1 AFT -# nee Level 5 Networks 1924 Solarflare Communications 0703 SFC4000 rev A net [Solarstorm] 10b8 0102 SMC10GPCIe-10BT (A2) [TigerCard] @@ -12980,8 +13338,18 @@ 1924 5105 SFN4111T-R5 1924 5201 SFN4112F-R1 1924 5202 SFN4112F-R2 - 0803 SFL9021 [Solarstorm] + 0803 SFC9020 [Solarstorm] 1924 6200 SFN5122F-R0 + 1924 6201 SFN5122F-R1 + 1924 6202 SFN5122F-R2 + 1924 6203 SFN5122F-R3 + 1924 6204 SFN5122F-R4 + 1924 6205 SFN5122F-R5 + 1924 6a05 SFN5112F-R5 + 0813 SFL9021 [Solarstorm] + 1924 6100 SFN5121T-R0 + 1924 6102 SFN5121T-R2 + 1924 6902 SFN5111T-R2 6703 SFC4000 rev A iSCSI/Onload [Solarstorm] 10b8 0102 SMC10GPCIe-10BT (A2) [TigerCard] 10b8 0103 SMC10GPCIe-10BT (A3) [TigerCard] @@ -13044,6 +13412,8 @@ 0061 MPC8569E 0070 P2020E 0071 P2020 + 0078 P2010E + 0079 P2010 0080 MPC8349E 0081 MPC8349 0082 MPC8347E TBGA @@ -13052,6 +13422,23 @@ 0085 MPC8347 PBGA 0086 MPC8343E 0087 MPC8343 + 00b4 MPC8315E + 0100 P1020E + 0101 P1020 + 0102 P1021E + 0103 P1021 + 0108 P1011E + 0109 P1011 + 010a P1012E + 010b P1012 + 0110 P1022E + 0111 P1022 + 0118 P1013E + 0119 P1013 + 0400 P4080E + 0401 P4080 + 0408 P4040E + 0409 P4040 7010 MPC8641 PCI Host Bridge 7011 MPC8641D PCI Host Bridge 7018 MPC8610 @@ -13073,15 +13460,20 @@ a00d PWRficient PCI-Express Internal Endpoint 1966 Orad Hi-Tec Systems 1975 DVG64 family -1969 Attansic Technology Corp. - 1026 Atheros AR8121/AR8113/AR8114 PCI-E Ethernet Controller +# nee Attansic Technology Corp. +1969 Atheros Communications + 1026 AR8121/AR8113/AR8114 Gigabit or Fast Ethernet 1043 8304 P5KPL-CM Motherboard - 1048 L1 Gigabit Ethernet Adapter + 1048 L1 Gigabit Ethernet 1043 8226 P5KPL-VM Motherboard - 1062 Atheros AR8132 / L1c Gigabit Ethernet Adapter - 1066 L2c Gigabit Ethernet Adapter - 1067 L1c Gigabit Ethernet Adapter - 2048 L2 100 Mbit Ethernet Adapter + 1062 AR8132 Fast Ethernet + 1063 AR8131 Gigabit Ethernet + 1066 L2c Gigabit Ethernet + 1067 L1c Gigabit Ethernet + 1073 AR8151 v1.0 Gigabit Ethernet + 2048 L2 Fast Ethernet + 2060 AR8152 v1.1 Fast Ethernet + 2062 AR8152 v2.0 Fast Ethernet 196a Sensory Networks Inc. 0101 NodalCore C-1000 Content Classification Accelerator 0102 NodalCore C-2000 Content Classification Accelerator @@ -13098,7 +13490,7 @@ 2360 JMB360 AHCI Controller 2361 JMB361 AHCI/IDE 1462 7235 P965 Neo MS-7235 mainboard - 2363 JMB362/JMB363 AHCI Controller + 2363 JMB362/JMB363 Serial ATA Controller 1043 81e4 P5B [JMB363] 1458 b000 GA-EP45-DS5 Motherboard 1849 2363 Motherboard (one of many) @@ -13114,6 +13506,10 @@ 2387 SD/MMC Host Controller 2388 MS Host Controller 2389 xD Host Controller + 2391 Standard SD Host Controller + 2392 SD/MMC Host Controller + 2393 MS Host Controller + 2394 xD Host Controller 1982 Distant Early Warning Communications Inc 1600 OX16C954 HOST-A 16ff OX16C954 HOST-B @@ -13124,6 +13520,8 @@ 1993 Innominate Security Technologies AG 199a Pulse-LINK, Inc. 199d Xsigo Systems + 8209 Virtual NIC Device + 890a Virtual HBA Device 199f Auvitek 8501 AU85X1 PCI REV1.1 19a2 ServerEngines Corp. @@ -13131,6 +13529,8 @@ 0201 BladeEngine 10Gb PCIe Network Adapter 0211 BladeEngine2 10Gb Gen2 PCIe Network Adapter 0212 BladeEngine2 10Gb Gen2 PCIe iSCSI Adapter + 0221 BladeEngine3 10Gb Gen2 PCIe Network Adapter + 0222 BladeEngine3 10Gb Gen2 PCIe iSCSI Adapter 0700 Emulex OneConnect 10Gb NIC 0702 Emulex OneConnect 10Gb iSCSI Initiator 0704 Emulex OneConnect 10Gb FCoE Initiator @@ -13151,7 +13551,9 @@ 19de Pico Computing 19e2 Vector Informatik GmbH 19e3 DDRdrive LLC - dd52 DDRdrive X1 + 5801 DDRdrive X1 + 5808 DDRdrive X8 + dd52 DDRdrive X1-30 19e7 NET (Network Equipment Technologies) 1001 STIX DSP Card 1002 STIX - 1 Port T1/E1 Card @@ -13159,6 +13561,7 @@ 1004 STIX - 4 Port T1/E1 Card 1005 STIX - 4 Port FXS Card 19ee Netronome Systems, Inc. +19ff Eclipse Electronic Systems, Inc. 1a03 ASPEED Technology, Inc. 2000 ASPEED Graphics Family 1a07 Kvaser AB @@ -13213,6 +13616,9 @@ 1ab6 CalDigit, Inc. 6201 RAID Card 1ab9 Espia Srl +1ad7 Spectracom Corporation + 8000 TSync-PCIe Time Code Processor + 9100 TPRO-PCI-66U Timecode Reader/Generator 1ade Spin Master Ltd. 1501 Swipetech barcode scanner 1ae0 Google, Inc. @@ -13223,8 +13629,10 @@ 0e44 microEnable IV-GigE x4 1aec Wolfson Microelectronics 1aed Fusion-io - 1003 ioDrive (NAND Flash Storage) - 1005 ioDIMM3 320GB + 1003 ioDimm3 (v1.2) + 1005 ioDimm3 + 1006 ioXtreme + 1007 ioXtreme Pro 1aee Caustic Graphics Inc. 1af4 Qumranet, Inc. 1000 Virtio network device @@ -13244,6 +13652,18 @@ 1b40 Schooner Information Technology, Inc. 1b55 NetUP Inc. 2a2c Dual DVB-S2-CI card + e2e4 Dual DVB-T/C-CI RF card +1bad ReFLEX CES +1bb3 Bluecherry + 4304 BC-04120A MPEG4 4 port video encoder / decoder + 4309 BC-08240A MPEG4 4 port video encoder / decoder + 4310 BC-16480A MPEG4 16 port video encoder / decoder + 4e04 BC-04120A 4 port MPEG4 video encoder / decoder + 4e09 BC-08240A 8 port MPEG4 video encoder / decoder + 4e10 BC-16480A 16 port MPEG4 video encoder / decoder + 5304 BC-H04120A 4 port H.264 video and audio encoder / decoder + 5308 BC-H08240A 8 port H.264 video and audio encoder / decoder + 5310 BC-H16480A 16 port H.264 video and audio encoder / decoder 1c1c Symphony 0001 82C101 1d44 DPT @@ -13402,6 +13822,7 @@ 0025 XG Mgmt 0100 NX3031 Multifunction 1/10-Gigabit Server Adapter 103c 171b NC522m Dual Port 10GbE Multifunction BL-c Adapter + 103c 1740 NC375T PCI Express Quad Port Gigabit Server Adapter 103c 3251 NC375i 1G w/NC524SFP 10G Module 103c 705a NC375i Integrated Quad Port Multifunction Gigabit Server Adapter 103c 705b NC522SFP Dual Port 10GbE Server Adapter @@ -13732,6 +14153,7 @@ 8d02 VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK) 8d03 VT8751 [ProSavageDDR P4M266] 8d04 VT8375 [ProSavage8 KM266/KL266] + 8e40 2300E Graphics Processor 8e48 Chrome S27 PCIE 5333 0130 Chrome S27 256M DDR2 9102 86C410 Savage 2000 @@ -13806,26 +14228,53 @@ 0042 Core Processor Integrated Graphics Controller 0043 Core Processor Secondary PCI Express Root Port 0044 Core Processor DRAM Controller + 1025 0347 Aspire 7740G 0045 Core Processor PCI Express x16 Root Port 0046 Core Processor Integrated Graphics Controller 0047 Core Processor Secondary PCI Express Root Port 0048 Core Processor DRAM Controller + 0049 Core Processor PCI Express x16 Root Port + 004a Core Processor Integrated Graphics Controller + 004b Core Processor Secondary PCI Express Root Port 0050 Core Processor Thermal Management Controller - 0082 WiFi Link 6000 Series - 0083 WiFi Link 100 Series - 0084 WiFi Link 100 Series - 0085 WiFi Link 6000 Series - 0086 WiMAX/WiFi Link 6050 Series - 0087 WiMAX/WiFi Link 6050 Series - 0088 WiMAX/WiFi Link 6050 Series - 0089 WiMAX/WiFi Link 6050 Series + 0082 6000 Series Gen2 + 0083 Centrino Wireless-N 1000 + 8086 1205 Centrino Wireless-N 1000 BGN + 8086 1206 Centrino Wireless-N 1000 BG + 8086 1225 Centrino Wireless-N 1000 BGN + 8086 1226 Centrino Wireless-N 1000 BG + 8086 1305 Centrino Wireless-N 1000 BGN + 8086 1306 Centrino Wireless-N 1000 BG + 8086 1325 Centrino Wireless-N 1000 BGN + 8086 1326 Centrino Wireless-N 1000 BG + 0084 Centrino Wireless-N 1000 + 8086 1215 Centrino Wireless-N 1000 BGN + 8086 1216 Centrino Wireless-N 1000 BG + 8086 1315 Centrino Wireless-N 1000 BGN + 8086 1316 Centrino Wireless-N 1000 BG + 0085 6000 Series Gen2 + 0087 Centrino Advanced-N + WiMAX 6250 + 8086 1301 Centrino Advanced-N + WiMAX 6250 2x2 AGN + 8086 1306 Centrino Advanced-N + WiMAX 6250 2x2 ABG + 8086 1321 Centrino Advanced-N + WiMAX 6250 2x2 AGN + 8086 1326 Centrino Advanced-N + WiMAX 6250 2x2 ABG + 0089 Centrino Advanced-N + WiMAX 6250 + 8086 1311 Centrino Advanced-N + WiMAX 6250 2x2 AGN + 8086 1316 Centrino Advanced-N + WiMAX 6250 2x2 ABG + 008f 6000 Series Gen3 + 0090 6000 Series Gen3 + 0100 Sandy Bridge DRAM Controller + 0101 Sandy Bridge PCI Express Root Port 0102 Sandy Bridge Integrated Graphics Controller 0103 Sandy Bridge Thermal Management Controller + 0104 Sandy Bridge DRAM Controller 0105 Sandy Bridge PCI Express Root Port 0106 Sandy Bridge Integrated Graphics Controller + 0108 Sandy Bridge DRAM Controller 0109 Sandy Bridge PCI Express Root Port 010a Sandy Bridge Integrated Graphics Controller 010b Sandy Bridge Integrated Graphics Controller + 010c Sandy Bridge DRAM Controller 010d Sandy Bridge PCI Express Root Port 010e Sandy Bridge Integrated Graphics Controller 0122 82437FX @@ -13888,6 +14337,28 @@ 8086 01f7 SCRU32 # uninitialized SRCU32 RAID Controller 061f 80303 I/O Processor + 0800 Moorestown SPI Ctrl 0 + 0801 Moorestown SPI Ctrl 1 + 0802 Moorestown I2C 0 + 0803 Moorestown I2C 1 + 0804 Moorestown I2C 2 + 0805 Moorestown Keyboard Ctrl + 0806 Moorestown USB Ctrl + 0807 Moorestown SD Host Ctrl 0 + 0808 Moorestown SD Host Ctrl 1 + 0809 Moorestown NAND Ctrl + 080a Moorestown Audio Ctrl + 080b Moorestown ISP + 080c Moorestown Security Controller + 080d Moorestown External Displays + 080e Moorestown SCU IPC + 080f Moorestown GPIO Controller + 0810 Moorestown Power Management Unit + 0811 Moorestown OTG Ctrl + 0812 Moorestown SPI Ctrl 2 + 0813 Moorestown SC DMA + 0814 Moorestown LPE DMA + 0815 Moorestown SSP0 0960 80960RP (i960RP) Microprocessor/Bridge 0962 80960RM (i960RM) Bridge 0964 80960RP (i960RP) Microprocessor/Bridge @@ -13990,7 +14461,7 @@ 1019 82547EI Gigabit Ethernet Controller 1458 1019 GA-8IPE1000 Pro2 motherboard (865PE) 1458 e000 Intel Gigabit Ethernet (Kenai II) - 8086 1019 ASUS PC-DL Deluxe mainboard (Socket 603) + 8086 1019 PRO/1000 CT Desktop Connection 8086 301f D865PERL mainboard 8086 3025 D875PBZ motherboard 8086 302c Intel 82865G Mainboard (D865GBF) @@ -14046,6 +14517,7 @@ 103c 82801DB PRO/100 VM (CNR) Ethernet Controller 103d 82801DB PRO/100 VE (MOB) Ethernet Controller 1014 0522 ThinkPad R40 + 1028 2002 Latitude D500 8086 103d 82562EZ 10/100 Ethernet Controller 103e 82801DB PRO/100 VM (MOB) Ethernet Controller 1040 536EP Data Fax Modem @@ -14234,7 +14706,6 @@ 8086 11bc PRO/1000 PT Quad Port LP Server Adapter 10bd 82566DM-2 Gigabit Network Connection 1028 0211 OptiPlex 755 - 10be 82567 Gigabit Network Connection 10bf 82567LF Gigabit Network Connection 10c0 82562V-2 10/100 Network Connection 10c2 82562G-2 10/100 Network Connection @@ -14261,6 +14732,7 @@ 13a3 0037 DS4100 Secure Multi-Gigabit Server Adapter with Compression 8086 a01c Gigabit ET Dual Port Server Adapter 8086 a03c Gigabit ET Dual Port Server Adapter + 8086 a04c Gigabit ET Dual Port Server Adapter 10ca 82576 Virtual Function 10cb 82567V Gigabit Network Connection 10cc 82567LM-2 Gigabit Network Connection @@ -14300,6 +14772,7 @@ 10ec 82598EB 10-Gigabit AT CX4 Network Connection 8086 a01f 10-Gigabit CX4 Dual Port Server Adapter 8086 a11f 10-Gigabit CX4 Dual Port Server Adapter + 10ed 82559 Ethernet Controller Virtual Function 10ef 82578DM Gigabit Network Connection 10f0 82578DC Gigabit Network Connection 10f1 82598EB 10-Gigabit AF Dual Port Network Connection @@ -14313,6 +14786,7 @@ 10f7 82599EB 10-Gigabit KX4 Network Connection 8086 000d Ethernet Mezzanine Adapter X520-KX4-2 10f8 82599EB 10 Gigabit Dual Port Backplane Connection + 8086 000c Ethernet X520 10GbE Dual Port KX4-KR Mezz 10f9 82599EB 10 Gigabit CX4 Dual Port Network Connection 10fb 82599EB 10-Gigabit Network Connection 108e 7b11 Ethernet Server Adapter X520-2 @@ -14542,6 +15016,7 @@ 15d9 3480 P4DP6 4c53 1090 Cx9/Vx9 mainboard 1462 82870P2 P64H2 Hot Plug Controller + 1501 82567V-3 Gigabit Network Connection 1507 82599EB 10 Gigabit Network Connection 1508 82598EB Gigabit BX Network Connection 150a 82576NS Gigabit Network Connection @@ -14552,9 +15027,25 @@ 150c 82583V Gigabit Network Connection 150d 82576 Gigabit Backplane Connection 8086 a10c Gigabit ET Quad Port Mezzanine Card + 150e 82580 Gigabit Network Connection + 8086 12a1 Ethernet Server Adapter I340-T4 + 8086 12a2 Ethernet Server Adapter I340-T4 + 150f 82580 Gigabit Fiber Network Connection + 1510 82580 Gigabit Backplane Connection + 1511 82580 Gigabit SFP Connection 1514 10 Gigabit KX4 Network Connection 8086 000b Ethernet X520 10GbE Dual Port KX4 Mezz + 1516 82580 Gigabit Network Connection + 8086 12b1 Ethernet Server Adapter I340-T2 + 8086 12b2 Ethernet Server Adapter I340-T2 + 1517 82599ES 10 Gigabit Network Connection + 1137 006a UCS CNA M61KR-I Intel Converged Network Adapter 1518 82576NS SerDes Gigabit Network Connection + 151c 82599EB 10 Gigabit TN Network Connection + 1525 82567V-4 Gigabit Network Connection + 1526 82576 Gigabit Network Connection + 8086 a05c Gigabit ET2 Quad Port Server Adapter + 8086 a06c Gigabit ET2 Quad Port Server Adapter 1960 80960RP (i960RP) Microprocessor 101e 0431 MegaRAID 431 RAID Controller 101e 0438 MegaRAID 438 Ultra2 LVD RAID Controller @@ -14598,6 +15089,74 @@ 1b48 82597EX 10GbE Ethernet Controller 8086 a01f PRO/10GbE LR Server Adapter 8086 a11f PRO/10GbE LR Server Adapter + 1c00 Cougar Point 4 port SATA IDE Controller + 1c01 Cougar Point 4 port SATA IDE Controller + 1c02 Cougar Point 6 port SATA AHCI Controller + 1c03 Cougar Point 6 port SATA AHCI Controller + 1c04 Cougar Point SATA RAID Controller + 1c05 Cougar Point SATA RAID Controller + 1c06 Cougar Point SATA Premium RAID Controller + 1c07 Cougar Point SATA Premium RAID Controller + 1c08 Cougar Point 2 port SATA IDE Controller + 1c09 Cougar Point 2 port SATA IDE Controller + 1c10 Cougar Point PCI Express Root Port 1 + 1c12 Cougar Point PCI Express Root Port 2 + 1c14 Cougar Point PCI Express Root Port 3 + 1c16 Cougar Point PCI Express Root Port 4 + 1c18 Cougar Point PCI Express Root Port 5 + 1c1a Cougar Point PCI Express Root Port 6 + 1c1c Cougar Point PCI Express Root Port 7 + 1c1e Cougar Point PCI Express Root Port 8 + 1c20 Cougar Point High Definition Audio Controller + 1c22 Cougar Point SMBus Controller + 1c24 Cougar Point Thermal Management Controller + 1c25 Cougar Point DMI to PCI Bridge + 1c26 Cougar Point USB Enhanced Host Controller #1 + 1c27 Cougar Point USB Universal Host Controller #1 + 1c28 Cougar Point USB Universal Host Controller #2 + 1c29 Cougar Point USB Universal Host Controller #3 + 1c2a Cougar Point USB Universal Host Controller #4 + 1c2b Cougar Point USB Universal Host Controller #8 + 1c2c Cougar Point USB Universal Host Controller #5 + 1c2d Cougar Point USB Enhanced Host Controller #2 + 1c2e Cougar Point USB Universal Host Controller #6 + 1c2f Cougar Point USB Universal Host Controller #7 + 1c30 Cougar Point USB Universal Host Controller #9 + 1c33 Cougar Point LAN Controller + 1c35 Cougar Point VECI Controller + 1c3a Cougar Point HECI Controller #1 + 1c3b Cougar Point HECI Controller #2 + 1c3c Cougar Point IDE-r Controller + 1c3d Cougar Point KT Controller + 1c42 Cougar Point LPC Controller + 1c43 Cougar Point LPC Controller + 1c44 Cougar Point LPC Controller + 1c45 Cougar Point LPC Controller + 1c46 Cougar Point LPC Controller + 1c47 Cougar Point LPC Controller + 1c48 Cougar Point LPC Controller + 1c49 Cougar Point LPC Controller + 1c4a Cougar Point LPC Controller + 1c4b Cougar Point LPC Controller + 1c4c Cougar Point LPC Controller + 1c4d Cougar Point LPC Controller + 1c4e Cougar Point LPC Controller + 1c4f Cougar Point LPC Controller + 1c50 Cougar Point LPC Controller + 1c51 Cougar Point LPC Controller + 1c52 Cougar Point LPC Controller + 1c53 Cougar Point LPC Controller + 1c54 Cougar Point LPC Controller + 1c55 Cougar Point LPC Controller + 1c56 Cougar Point LPC Controller + 1c57 Cougar Point LPC Controller + 1c58 Cougar Point LPC Controller + 1c59 Cougar Point LPC Controller + 1c5a Cougar Point LPC Controller + 1c5b Cougar Point LPC Controller + 1c5c Cougar Point LPC Controller + 1c5d Cougar Point LPC Controller + 1c5f Cougar Point LPC Controller 2410 82801AA ISA Bridge (LPC) 2411 82801AA IDE Controller 2412 82801AA USB Controller @@ -14826,7 +15385,7 @@ 1734 1055 Amilo M1420 4c53 1090 Cx9 / Vx9 mainboard 8086 24c2 Latitude X300 - 8086 4541 Latitude D400 + 8086 4541 Latitude D400/D500 e4bf 0cc9 CC9-SAMBA e4bf 0cd2 CD2-BEBOP 24c3 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller @@ -14869,7 +15428,7 @@ 1734 1004 D1451 Mainboard (SCENIC N300, i845GV) 4c53 1090 Cx9 / Vx9 mainboard 8086 24c2 Latitude X300 - 8086 4541 Latitude D400 + 8086 4541 Latitude D400/D500 e4bf 0cc9 CC9-SAMBA e4bf 0cd2 CD2-BEBOP 24c5 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller @@ -14880,6 +15439,7 @@ 1025 005a TravelMate 290 1028 0139 Latitude D400 1028 014f Latitude X300 + 1028 0152 Latitude D500 1028 0163 Latitude D505 1028 018d Inspiron 700m/710m [SigmaTel STAC9750,51] 1028 0196 Inspiron 5160 @@ -14909,6 +15469,7 @@ 103c 08b0 tc1100 tablet 1043 1826 M6800N 1071 8160 MIM2000 + 134d 4c21 Latitude D500 144d 2115 X10 Laptop 144d c00c P30/P35 notebook # Conexant HSF Softmodem (CXT22) @@ -14932,7 +15493,7 @@ 1734 1004 D1451 Mainboard (SCENIC N300, i845GV) 4c53 1090 Cx9 / Vx9 mainboard 8086 24c2 Latitude X300 - 8086 4541 Latitude D400 + 8086 4541 Latitude D400/D500 e4bf 0cc9 CC9-SAMBA e4bf 0cd2 CD2-BEBOP 24ca 82801DBM (ICH4-M) IDE Controller @@ -14949,7 +15510,7 @@ 144d c005 X10 Laptop 144d c00c P30/P35 notebook 1734 1055 Amilo M1420 - 8086 4541 Latitude D400 + 8086 4541 Latitude D400/D500 24cb 82801DB (ICH4) IDE Controller 1014 0267 NetVista A30p 1028 0126 Optiplex GX260 @@ -14971,6 +15532,7 @@ 1028 011d Latitude D600 1028 0126 Optiplex GX260 1028 0139 Latitude D400 + 1028 0152 Latitude D500 1028 0163 Latitude D505 1028 018d Inspiron 700m/710m 1028 0196 Inspiron 5160 @@ -15603,6 +16165,7 @@ 15d9 8680 X7DVL-E-O motherboard 2770 82945G/GZ/P/PL Memory Controller Hub 1028 01ad OptiPlex GX620 + 1043 817a P5LD2-VM Mainboard 107b 5048 E4500 8086 544e DeskTop Board D945GTP 2771 82945G/GZ/P/PL PCI Express Root Port @@ -15669,10 +16232,10 @@ 103c 30a3 Compaq nw8440 10f7 8338 Panasonic CF-Y5 laptop 17aa 2009 ThinkPad T60/R60 series - 27bc Tigerpoint LPC Controller + 27bc NM10 Family LPC Controller 27bd 82801GHM (ICH7-M DH) LPC Interface Bridge 1025 006c 9814 WKMI - 27c0 82801GB/GR/GH (ICH7 Family) SATA IDE Controller + 27c0 N10/ICH7 Family SATA IDE Controller 1028 01ad OptiPlex GX620 1028 01df PowerEdge SC440 1028 01e6 PowerEdge 860 @@ -15682,7 +16245,7 @@ 1462 7236 945P Neo3-F Rev. 2.2 motherboard 1775 11cc CC11/CL11 8086 544e DeskTop Board D945GTP - 27c1 82801GR/GH (ICH7 Family) SATA AHCI Controller + 27c1 N10/ICH7 Family SATA AHCI Controller 1028 01df PowerEdge SC440 1775 11cc CC11/CL11 8086 5842 DeskTop Board D975XBX @@ -15698,7 +16261,7 @@ 103c 30a3 Compaq nw8440 17aa 200d ThinkPad T60/R60 series 27c6 82801GHM (ICH7-M DH) SATA RAID Controller - 27c8 82801G (ICH7 Family) USB UHCI Controller #1 + 27c8 N10/ICH7 Family USB UHCI Controller #1 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -15708,12 +16271,12 @@ 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 - 1043 8179 P5KPL-VM Motherboard + 1043 8179 P5KPL-VM,P5LD2-VM Mainboard 107b 5048 E4500 1775 11cc CC11/CL11 17aa 200a ThinkPad T60/R60 series 8086 544e DeskTop Board D945GTP - 27c9 82801G (ICH7 Family) USB UHCI Controller #2 + 27c9 N10/ICH 7 Family USB UHCI Controller #2 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -15723,12 +16286,12 @@ 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 - 1043 8179 P5KPL-VM Motherboard + 1043 8179 P5KPL-VM,P5LD2-VM Mainboard 107b 5048 E4500 1775 11cc CC11/CL11 17aa 200a ThinkPad T60/R60 series 8086 544e DeskTop Board D945GTP - 27ca 82801G (ICH7 Family) USB UHCI Controller #3 + 27ca N10/ICH 7 Family USB UHCI Controller #3 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -15738,12 +16301,12 @@ 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 - 1043 8179 P5KPL-VM Motherboard + 1043 8179 P5KPL-VM,P5LD2-VM Mainboard 107b 5048 E4500 1775 11cc CC11/CL11 17aa 200a ThinkPad T60/R60 series 8086 544e DeskTop Board D945GTP - 27cb 82801G (ICH7 Family) USB UHCI Controller #4 + 27cb N10/ICH 7 Family USB UHCI Controller #4 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -15752,12 +16315,12 @@ 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 - 1043 8179 P5KPL-VM Motherboard + 1043 8179 P5KPL-VM,P5LD2-VM Mainboard 107b 5048 E4500 1775 11cc CC11/CL11 17aa 200a ThinkPad T60/R60 series 8086 544e DeskTop Board D945GTP - 27cc 82801G (ICH7 Family) USB2 EHCI Controller + 27cc N10/ICH 7 Family USB2 EHCI Controller 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -15767,24 +16330,24 @@ 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 - 1043 8179 P5KPL-VM Motherboard + 1043 8179 P5KPL-VM,P5LD2-VM Mainboard 1775 11cc CC11/CL11 17aa 200b ThinkPad T60/R60 series 8086 544e DeskTop Board D945GTP - 27d0 82801G (ICH7 Family) PCI Express Port 1 + 27d0 N10/ICH 7 Family PCI Express Port 1 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 1775 11cc CC11/CL11 - 27d2 82801G (ICH7 Family) PCI Express Port 2 + 27d2 N10/ICH 7 Family PCI Express Port 2 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 1775 11cc CC11/CL11 - 27d4 82801G (ICH7 Family) PCI Express Port 3 + 27d4 N10/ICH 7 Family PCI Express Port 3 1775 11cc CC11/CL11 - 27d6 82801G (ICH7 Family) PCI Express Port 4 + 27d6 N10/ICH 7 Family PCI Express Port 4 103c 30a3 Compaq nw8440 1775 11cc CC11/CL11 - 27d8 82801G (ICH7 Family) High Definition Audio Controller + 27d8 N10/ICH 7 Family High Definition Audio Controller 1025 006c 9814 WKMI 1028 01d7 XPS M1210 103c 309f Compaq nx9420 Notebook @@ -15792,12 +16355,14 @@ 103c 30a3 Compaq nw8440 1043 1123 A6J-Q008 1043 13c4 Asus G2P + 1043 817f P5LD2-VM Mainboard (Realtek ALC 882 codec) 1043 8290 P5KPL-VM Motherboard 1043 82ea P5KPL-CM Motherboard 107b 5048 E4500 10f7 8338 Panasonic CF-Y5 laptop 1179 ff10 Toshiba Satellite A100-796 audio (Realtek ALC861) 1179 ff31 AC97 Data Fax SoftModem with SmartCP + 1447 1043 Asus A8JP (Analog Devices AD1986A) 1458 a102 GA-8I945PG-RH Mainboard 152d 0753 Softmodem 1734 10ad Conexant softmodem SmartCP @@ -15805,7 +16370,7 @@ 17aa 3802 Lenovo 3000 C200 audio [Realtek ALC861VD] 8086 1112 DeskTop Board D945GTP 8086 27d8 DeskTop Board D945GTP - 27da 82801G (ICH7 Family) SMBus Controller + 27da N10/ICH 7 Family SMBus Controller 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -15818,7 +16383,7 @@ 17aa 200f ThinkPad T60/R60 series 8086 544e DeskTop Board D945GTP 8086 5842 DeskTop Board D975XBX - 27dc 82801G (ICH7 Family) LAN Controller + 27dc N10/ICH 7 Family LAN Controller 8086 308d DeskTop Board D945GTP 27dd 82801G (ICH7 Family) AC'97 Modem Controller 27de 82801G (ICH7 Family) AC'97 Audio Controller @@ -15842,6 +16407,7 @@ 1775 11cc CC11/CL11 27e2 82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 1775 11cc CC11/CL11 + 2802 82GL40 [Cantiga] High Definition Audio HDMI Service 2810 82801HB/HR (ICH8/R) LPC Interface Controller 1043 81ec P5B 2811 82801HBM (ICH8M-E) LPC Interface Controller @@ -15877,6 +16443,7 @@ 103c 30d9 Presario C700 104d 9005 Vaio VGN-FZ260E 17aa 20a7 ThinkPad T61 + e4bf cc47 CCG-RUMBA 282a Mobile 82801 SATA RAID Controller 2830 82801H (ICH8 Family) USB UHCI Controller #1 1025 0121 Acer Aspire 5920G @@ -15964,6 +16531,7 @@ 103c 30d9 Presario C700 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E + 104d 9008 Vaio VGN-SZ79SN_C 1462 7235 P965 Neo MS-7235 mainboard 17aa 20a9 ThinkPad T61 e4bf cc47 CCG-RUMBA @@ -15998,10 +16566,12 @@ 1043 1339 Asus M51S series 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E + 104d 9008 Vaio VGN-SZ79SN_C 104d 9016 Sony VAIO VGN-AR51M 14f1 5051 Presario C700 17aa 20ac ThinkPad T61 8384 7616 Dell Vostro 1400 + e4bf cc47 CCG-RUMBA 284f 82801H (ICH8 Family) Thermal Reporting Device 2850 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller 1025 0121 Aspire 5920G @@ -16017,6 +16587,7 @@ 1028 0211 Optiplex 755 2916 82801IR (ICH9R) LPC Interface Controller 2917 ICH9M-E LPC Interface Controller + e4bf cc4d CCM-BOOGIE 2918 82801IB (ICH9) LPC Interface Controller 1028 0236 PowerEdge R610 82801IB (ICH9) LPC Interface Controller 2919 ICH9M LPC Interface Controller @@ -16041,12 +16612,15 @@ 2928 ICH9M/M-E 2 port SATA IDE Controller 2929 ICH9M/M-E SATA AHCI Controller 103c 3628 dv6-1190en + e4bf cc4d CCM-BOOGIE 292c ICH9M-E SATA RAID Controller 292d ICH9M/M-E 2 port SATA IDE Controller + e4bf cc4d CCM-BOOGIE 292e ICH9M SATA IDE Controller 2930 82801I (ICH9 Family) SMBus Controller 1028 0211 Optiplex 755 103c 3628 dv6-1190en + e4bf cc4d CCM-BOOGIE 2932 82801I (ICH9 Family) Thermal Subsystem 103c 3628 dv6-1190en 2934 82801I (ICH9 Family) USB UHCI Controller #1 @@ -16060,6 +16634,7 @@ 1028 0287 PowerEdge M610 onboard UHCI 1028 029c PowerEdge M710 USB UHCI Controller 1028 2011 Optiplex 755 + e4bf cc4d CCM-BOOGIE 2935 82801I (ICH9 Family) USB UHCI Controller #2 1028 020f PowerEdge R300 onboard UHCI 1028 0210 PowerEdge T300 onboard UHCI @@ -16070,6 +16645,7 @@ 1028 023c PowerEdge R200 onboard UHCI 1028 0287 PowerEdge M610 onboard UHCI 1028 029c PowerEdge M710 USB UHCI Controller + e4bf cc4d CCM-BOOGIE 2936 82801I (ICH9 Family) USB UHCI Controller #3 1028 020f PowerEdge R300 onboard UHCI 1028 0210 PowerEdge T300 onboard UHCI @@ -16078,6 +16654,7 @@ 1028 023c PowerEdge R200 onboard UHCI 1028 0287 PowerEdge M610 onboard UHCI 1028 029c PowerEdge M710 USB UHCI Controller + e4bf cc4d CCM-BOOGIE 2937 82801I (ICH9 Family) USB UHCI Controller #4 1028 0211 Optiplex 755 1028 0235 PowerEdge R710 USB UHCI Controller @@ -16088,6 +16665,7 @@ 1028 2011 Optiplex 755 8086 2937 Optiplex 755 8086 2942 828011 (ICH9 Family ) USB UHCI Controller + e4bf cc4d CCM-BOOGIE 2938 82801I (ICH9 Family) USB UHCI Controller #5 1028 0211 Optiplex 755 1028 0235 PowerEdge R710 USB UHCI Controller @@ -16096,9 +16674,11 @@ 1028 0287 PowerEdge M610 onboard UHCI 1028 029c PowerEdge M710 USB UHCI Controller 8086 2938 Optiplex 755 + e4bf cc4d CCM-BOOGIE 2939 82801I (ICH9 Family) USB UHCI Controller #6 1028 0210 PowerEdge T300 onboard UHCI 1028 0237 PowerEdge T610 USB UHCI Controller + e4bf cc4d CCM-BOOGIE 293a 82801I (ICH9 Family) USB2 EHCI Controller #1 1028 020f PowerEdge R300 onboard EHCI 1028 0210 PowerEdge T300 onboard EHCI @@ -16109,6 +16689,7 @@ 1028 023c PowerEdge R200 onboard EHCI 1028 0287 PowerEdge M610 onboard EHCI 1028 029c PowerEdge M710 USB EHCI Controller + e4bf cc4d CCM-BOOGIE 293c 82801I (ICH9 Family) USB2 EHCI Controller #2 1028 0211 Optiplex 755 1028 0235 PowerEdge R710 USB EHCI Controller @@ -16117,11 +16698,13 @@ 1028 0287 PowerEdge M610 onboard EHCI 1028 029c PowerEdge M710 USB EHCI Controller 8086 293c Optiplex 755 + e4bf cc4d CCM-BOOGIE 293e 82801I (ICH9 Family) HD Audio Controller 1028 0211 Optiplex 755 103c 3628 dv6-1190en 8086 293e Optiplex 755 8086 2940 Optiplex 755 + e4bf cc4d CCM-BOOGIE 2940 82801I (ICH9 Family) PCI Express Port 1 1028 0211 Optiplex 755 8086 2940 Optiplex 755 @@ -16257,9 +16840,13 @@ 2a16 Mobile GME965/GLE960 PT IDER Controller 2a17 Mobile GME965/GLE960 KT Controller 2a40 Mobile 4 Series Chipset Memory Controller Hub + e4bf cc4d CCM-BOOGIE 2a41 Mobile 4 Series Chipset PCI Express Graphics Port + e4bf cc4d CCM-BOOGIE 2a42 Mobile 4 Series Chipset Integrated Graphics Controller + e4bf cc4d CCM-BOOGIE 2a43 Mobile 4 Series Chipset Integrated Graphics Controller + e4bf cc4d CCM-BOOGIE 2a44 Mobile 4 Series Chipset MEI Controller 2a45 Mobile 4 Series Chipset MEI Controller 2a46 Mobile 4 Series Chipset PT IDER Controller @@ -16268,47 +16855,47 @@ 2a51 Cantiga MEI Controller 2a52 Cantiga PT IDER Controller 2a53 Cantiga AMT SOL Redirection - 2b00 Nehalem-EX System Configuration Controller 1 - 2b02 Nehalem-EX System Configuration Controller 2 - 2b04 Nehalem-EX Power Controller - 2b08 Nehalem-EX Caching Agent 0 - 2b0c Nehalem-EX Caching Agent 1 - 2b10 Nehalem-EX QPI Home Agent 0 - 2b13 Nehalem-EX Memory Controller 0c - 2b14 Nehalem-EX Memory Controller 0a - 2b16 Nehalem-EX Memory Controller 0b - 2b18 Nehalem-EX QPI Home Agent 1 - 2b1b Nehalem-EX Memory Controller 1c - 2b1c Nehalem-EX Memory Controller 1a - 2b1e Nehalem-EX Memory Controller 1b - 2b20 Nehalem-EX Last Level Cache Coherence Engine 0 - 2b24 Nehalem-EX Last Level Cache Coherence Engine 1 - 2b28 Nehalem-EX Last Level Cache Coherence Engine 2 - 2b2c Nehalem-EX Last Level Cache Coherence Engine 3 - 2b30 Nehalem-EX Last Level Cache Coherence Engine 4 - 2b34 Nehalem-EX Last Level Cache Coherence Engine 5 - 2b38 Nehalem-EX Last Level Cache Coherence Engine 6 - 2b3c Nehalem-EX Last Level Cache Coherence Engine 7 - 2b40 Nehalem-EX QPI Router Port 0-1 - 2b42 Nehalem-EX QPI Router Port 2-3 - 2b44 Nehalem-EX QPI Router Port 4-5 - 2b46 Nehalem-EX QPI Router Port 6-7 - 2b48 Nehalem-EX Test and Debug 0 - 2b4c Nehalem-EX Test and Debug 1 - 2b50 Nehalem-EX QPI Physical Port 0: REUT control/status - 2b52 Nehalem-EX QPI Physical Port 0: Misc. control/status - 2b54 Nehalem-EX QPI Physical Port 1: REUT control/status - 2b56 Nehalem-EX QPI Physical Port 1: Misc. control/status - 2b58 Nehalem-EX QPI Physical Port 2: REUT control/status - 2b5a Nehalem-EX QPI Physical Port 2: Misc. control/status - 2b5c Nehalem-EX QPI Physical Port 3: REUT control/status - 2b5e Nehalem-EX QPI Physical Port 3: Misc. control/status - 2b60 Nehalem-EX SMI Physical Port 0: REUT control/status - 2b62 Nehalem-EX SMI Physical Port 0: Misc control/status - 2b64 Nehalem-EX SMI Physical Port 0: REUT control/status - 2b66 Nehalem-EX SMI Physical Port 1: Misc control/status - 2b68 Nehalem-EX System Configuration Controller 3 - 2b6a Nehalem-EX System Configuration Controller 4 + 2b00 Xeon 7500 System Configuration Controller 1 + 2b02 Xeon 7500 System Configuration Controller 2 + 2b04 Xeon 7500 Power Controller + 2b08 Xeon 7500 Caching Agent 0 + 2b0c Xeon 7500 Caching Agent 1 + 2b10 Xeon 7500 QPI Home Agent 0 + 2b13 Xeon 7500 Memory Controller 0c + 2b14 Xeon 7500 Memory Controller 0a + 2b16 Xeon 7500 Memory Controller 0b + 2b18 Xeon 7500 QPI Home Agent 1 + 2b1b Xeon 7500 Memory Controller 1c + 2b1c Xeon 7500 Memory Controller 1a + 2b1e Xeon 7500 Memory Controller 1b + 2b20 Xeon 7500 Last Level Cache Coherence Engine 0 + 2b22 Xeon 7500 System Configuration Controller 3 + 2b24 Xeon 7500 Last Level Cache Coherence Engine 1 + 2b28 Xeon 7500 Last Level Cache Coherence Engine 2 + 2b2a Xeon 7500 System Configuration Controller 4 + 2b2c Xeon 7500 Last Level Cache Coherence Engine 3 + 2b30 Xeon 7500 Last Level Cache Coherence Engine 4 + 2b34 Xeon 7500 Last Level Cache Coherence Engine 5 + 2b38 Xeon 7500 Last Level Cache Coherence Engine 6 + 2b3c Xeon 7500 Last Level Cache Coherence Engine 7 + 2b40 Xeon 7500 QPI Router Port 0-1 + 2b42 Xeon 7500 QPI Router Port 2-3 + 2b44 Xeon 7500 QPI Router Port 4-5 + 2b46 Xeon 7500 QPI Router Port 6-7 + 2b48 Xeon 7500 Test and Debug 0 + 2b4c Xeon 7500 Test and Debug 1 + 2b50 Xeon 7500 QPI Physical Port 0: REUT control/status + 2b52 Xeon 7500 QPI Physical Port 0: Misc. control/status + 2b54 Xeon 7500 QPI Physical Port 1: REUT control/status + 2b56 Xeon 7500 QPI Physical Port 1: Misc. control/status + 2b58 Xeon 7500 QPI Physical Port 2: REUT control/status + 2b5a Xeon 7500 QPI Physical Port 2: Misc. control/status + 2b5c Xeon 7500 QPI Physical Port 3: REUT control/status + 2b5e Xeon 7500 QPI Physical Port 3: Misc. control/status + 2b60 Xeon 7500 SMI Physical Port 0: REUT control/status + 2b62 Xeon 7500 SMI Physical Port 0: Misc control/status + 2b64 Xeon 7500 SMI Physical Port 0: REUT control/status + 2b66 Xeon 7500 SMI Physical Port 1: Misc control/status 2c01 Xeon 5500/Core i7 QuickPath Architecture System Address Decoder 2c10 Xeon 5500/Core i7 QPI Link 0 2c11 Xeon 5500/Core i7 QPI Physical 0 @@ -16340,16 +16927,17 @@ 2c55 Core Processor QuickPath Architecture Generic Non-Core Registers 2c56 Core Processor QuickPath Architecture Generic Non-Core Registers 2c57 Core Processor QuickPath Architecture Generic Non-Core Registers - 2c58 Jasper Forest QPI Generic Non-core Registers - 2c59 Jasper Forest QPI Generic Non-core Registers - 2c5a Jasper Forest QPI Generic Non-core Registers - 2c5b Jasper Forest QPI Generic Non-core Registers - 2c5c Jasper Forest QPI Generic Non-core Registers - 2c5d Jasper Forest QPI Generic Non-core Registers - 2c5e Jasper Forest QPI Generic Non-core Registers - 2c5f Jasper Forest QPI Generic Non-core Registers - 2c62 QuickPath Architecture Generic Non-core Registers - 2c70 QuickPath Architecture Generic Non-core Registers + 2c58 Xeon C5500/C3500 QPI Generic Non-core Registers + 2c59 Xeon C5500/C3500 QPI Generic Non-core Registers + 2c5a Xeon C5500/C3500 QPI Generic Non-core Registers + 2c5b Xeon C5500/C3500 QPI Generic Non-core Registers + 2c5c Xeon C5500/C3500 QPI Generic Non-core Registers + 2c5d Xeon C5500/C3500 QPI Generic Non-core Registers + 2c5e Xeon C5500/C3500 QPI Generic Non-core Registers + 2c5f Xeon C5500/C3500 QPI Generic Non-core Registers + 2c61 Core Processor QuickPath Architecture Generic Non-core Registers + 2c62 Core Processor QuickPath Architecture Generic Non-core Registers + 2c70 Xeon 5600 Series QuickPath Architecture Generic Non-core Registers 2c81 Core Processor QuickPath Architecture System Address Decoder 2c90 Core Processor QPI Link 0 2c91 Core Processor QPI Physical 0 @@ -16364,53 +16952,55 @@ 2ca9 Core Processor Integrated Memory Controller Channel 1 Address Registers 2caa Core Processor Integrated Memory Controller Channel 1 Rank Registers 2cab Core Processor Integrated Memory Controller Channel 1 Thermal Control Registers - 2cc1 Jasper Forest QPI System Address Decoder - 2cd0 Jasper Forest QPI Link 0 - 2cd1 Jasper Forest QPI Physical 0 - 2cd4 Jasper Forest QPI Link 1 - 2cd5 Jasper Forest QPI Physical 1 - 2cd8 Jasper Forest Integrated Memory Controller Registers - 2cd9 Jasper Forest Integrated Memory Controller Target Address Decoder - 2cda Jasper Forest Integrated Memory Controller RAS Registers - 2cdc Jasper Forest Integrated Memory Controller Test Registers - 2ce0 Jasper Forest Integrated Memory Controller Channel 0 Control - 2ce1 Jasper Forest Integrated Memory Controller Channel 0 Address - 2ce2 Jasper Forest Integrated Memory Controller Channel 0 Rank - 2ce3 Jasper Forest Integrated Memory Controller Channel 0 Thermal Control - 2ce8 Jasper Forest Integrated Memory Controller Channel 1 Control - 2ce9 Jasper Forest Integrated Memory Controller Channel 1 Address - 2cea Jasper Forest Integrated Memory Controller Channel 1 Rank - 2ceb Jasper Forest Integrated Memory Controller Channel 1 Thermal Control - 2cf0 Jasper Forest Integrated Memory Controller Channel 2 Control - 2cf1 Jasper Forest Integrated Memory Controller Channel 2 Address - 2cf2 Jasper Forest Integrated Memory Controller Channel 2 Rank - 2cf3 Jasper Forest Integrated Memory Controller Channel 2 Thermal Control - 2d01 QuickPath Architecture System Address Decoder - 2d10 QPI Link 0 - 2d11 QPI Physical 0 - 2d81 QuickPath Architecture System Address Decoder - 2d90 QPI Link 0 - 2d91 QPI Physical 0 - 2d92 Mirror Port Link 0 - 2d93 Mirror Port Link 1 - 2d94 QPI Link 1 - 2d95 QPI Physical 1 - 2d98 Integrated Memory Controller Registers - 2d99 Integrated Memory Controller Target Address Decoder - 2d9a Integrated Memory Controller RAS Registers - 2d9c Integrated Memory Controller Test Registers - 2da0 Integrated Memory Controller Channel 0 Control - 2da1 Integrated Memory Controller Channel 0 Address - 2da2 Integrated Memory Controller Channel 0 Rank - 2da3 Integrated Memory Controller Channel 0 Thermal Control - 2da8 Integrated Memory Controller Channel 1 Control - 2da9 Integrated Memory Controller Channel 1 Address - 2daa Integrated Memory Controller Channel 1 Rank - 2dab Integrated Memory Controller Channel 1 Thermal Control - 2db0 Integrated Memory Controller Channel 2 Control - 2db1 Integrated Memory Controller Channel 2 Address - 2db2 Integrated Memory Controller Channel 2 Rank - 2db3 Integrated Memory Controller Channel 2 Thermal Control + 2cc1 Xeon C5500/C3500 QPI System Address Decoder + 2cd0 Xeon C5500/C3500 QPI Link 0 + 2cd1 Xeon C5500/C3500 QPI Physical 0 + 2cd4 Xeon C5500/C3500 QPI Link 1 + 2cd5 Xeon C5500/C3500 QPI Physical 1 + 2cd8 Xeon C5500/C3500 Integrated Memory Controller Registers + 2cd9 Xeon C5500/C3500 Integrated Memory Controller Target Address Decoder + 2cda Xeon C5500/C3500 Integrated Memory Controller RAS Registers + 2cdc Xeon C5500/C3500 Integrated Memory Controller Test Registers + 2ce0 Xeon C5500/C3500 Integrated Memory Controller Channel 0 Control + 2ce1 Xeon C5500/C3500 Integrated Memory Controller Channel 0 Address + 2ce2 Xeon C5500/C3500 Integrated Memory Controller Channel 0 Rank + 2ce3 Xeon C5500/C3500 Integrated Memory Controller Channel 0 Thermal Control + 2ce8 Xeon C5500/C3500 Integrated Memory Controller Channel 1 Control + 2ce9 Xeon C5500/C3500 Integrated Memory Controller Channel 1 Address + 2cea Xeon C5500/C3500 Integrated Memory Controller Channel 1 Rank + 2ceb Xeon C5500/C3500 Integrated Memory Controller Channel 1 Thermal Control + 2cf0 Xeon C5500/C3500 Integrated Memory Controller Channel 2 Control + 2cf1 Xeon C5500/C3500 Integrated Memory Controller Channel 2 Address + 2cf2 Xeon C5500/C3500 Integrated Memory Controller Channel 2 Rank + 2cf3 Xeon C5500/C3500 Integrated Memory Controller Channel 2 Thermal Control + 2d01 Core Processor QuickPath Architecture System Address Decoder + 2d10 Core Processor QPI Link 0 + 2d11 Core Processor QPI Physical 0 + 2d12 Core Processor Reserved + 2d13 Core Processor Reserved + 2d81 Xeon 5600 Series QuickPath Architecture System Address Decoder + 2d90 Xeon 5600 Series QPI Link 0 + 2d91 Xeon 5600 Series QPI Physical 0 + 2d92 Xeon 5600 Series Mirror Port Link 0 + 2d93 Xeon 5600 Series Mirror Port Link 1 + 2d94 Xeon 5600 Series QPI Link 1 + 2d95 Xeon 5600 Series QPI Physical 1 + 2d98 Xeon 5600 Series Integrated Memory Controller Registers + 2d99 Xeon 5600 Series Integrated Memory Controller Target Address Decoder + 2d9a Xeon 5600 Series Integrated Memory Controller RAS Registers + 2d9c Xeon 5600 Series Integrated Memory Controller Test Registers + 2da0 Xeon 5600 Series Integrated Memory Controller Channel 0 Control + 2da1 Xeon 5600 Series Integrated Memory Controller Channel 0 Address + 2da2 Xeon 5600 Series Integrated Memory Controller Channel 0 Rank + 2da3 Xeon 5600 Series Integrated Memory Controller Channel 0 Thermal Control + 2da8 Xeon 5600 Series Integrated Memory Controller Channel 1 Control + 2da9 Xeon 5600 Series Integrated Memory Controller Channel 1 Address + 2daa Xeon 5600 Series Integrated Memory Controller Channel 1 Rank + 2dab Xeon 5600 Series Integrated Memory Controller Channel 1 Thermal Control + 2db0 Xeon 5600 Series Integrated Memory Controller Channel 2 Control + 2db1 Xeon 5600 Series Integrated Memory Controller Channel 2 Address + 2db2 Xeon 5600 Series Integrated Memory Controller Channel 2 Rank + 2db3 Xeon 5600 Series Integrated Memory Controller Channel 2 Thermal Control 2e00 4 Series Chipset DRAM Controller 2e01 4 Series Chipset PCI Express Root Port 2e02 4 Series Chipset Integrated Graphics Controller @@ -16454,6 +17044,7 @@ 2e45 4 Series Chipset HECI Controller 2e46 4 Series Chipset PT IDER Controller 2e47 4 Series Chipset Serial KT Controller + 2e90 4 Series Chipset DRAM Controller 2e91 4 Series Chipset PCI Express Root Port 2e92 4 Series Chipset Integrated Graphics Controller 2e93 4 Series Chipset Integrated Graphics Controller @@ -16489,7 +17080,7 @@ 1028 028c PowerEdge R410 I/O Hub to ESI Port 1028 028d PowerEdge T410 I/O Hub to ESI Port 3404 5520/5500/X58 I/O Hub to ESI Port - 3405 X58 I/O Hub to ESI Port + 3405 5520/5500/X58 I/O Hub to ESI Port 3406 5520 I/O Hub to ESI Port 3407 5520/5500/X58 I/O Hub to ESI Port 3408 5520/5500/X58 I/O Hub PCI Express Root Port 1 @@ -16548,6 +17139,7 @@ 1014 055c ThinkPad R50e 1028 0139 Latitude D400 1028 014f Latitude X300 + 1028 0152 Latitude D500 1028 0163 Latitude D505 1028 018d Inspiron 700m/710m 1028 0196 Inspiron 5160 @@ -16565,6 +17157,7 @@ 1014 0562 ThinkPad R50e 1028 0139 Latitude D400 1028 014f Latitude X300 + 1028 0152 Latitude D500 1028 0163 Latitude D505 1028 018d Inspiron 700m/710m 114a 0582 PC8 integrated graphics @@ -16578,6 +17171,7 @@ 1014 055d ThinkPad R50e 1028 0139 Latitude D400 1028 014f Latitude X300 + 1028 0152 Latitude D500 1028 0163 Latitude D505 1028 018d Inspiron 700m/710m 1028 0196 Inspiron 5160 @@ -16591,6 +17185,7 @@ 1014 055e ThinkPad R50e 1028 0139 Latitude D400 1028 014f Latitude X300 + 1028 0152 Latitude D500 1028 0163 Latitude D505 1028 018d Inspiron 700m/710m 1028 0196 Inspiron 5160 @@ -16654,48 +17249,49 @@ 360e 7300 Chipset Debug and Miscellaneous Registers 360f 7300 Chipset FBD Branch 0 Registers 3610 7300 Chipset FBD Branch 1 Registers - 3700 Jasper Forest DMI - 3701 Jasper Forest DMI - 3702 Jasper Forest DMI - 3703 Jasper Forest DMI - 3704 Jasper Forest DMI - 3705 Jasper Forest DMI - 3706 Jasper Forest DMI - 3707 Jasper Forest DMI - 3708 Jasper Forest DMI - 3709 Jasper Forest DMI - 370a Jasper Forest DMI - 370b Jasper Forest DMI - 370c Jasper Forest DMI - 370d Jasper Forest DMI - 370e Jasper Forest DMI - 370f Jasper Forest DMI - 3710 Jasper Forest CB3 DMA - 3711 Jasper Forest CB3 DMA - 3712 Jasper Forest CB3 DMA - 3713 Jasper Forest CB3 DMA - 3714 Jasper Forest CB3 DMA - 3715 Jasper Forest CB3 DMA - 3716 Jasper Forest CB3 DMA - 3717 Jasper Forest CB3 DMA - 3718 Jasper Forest CB3 DMA - 3719 Jasper Forest CB3 DMA - 371a Jasper Forest QPI Link - 371b Jasper Forest QPI Routing and Protocol - 371d Jasper Forest QPI Routing and Protocol - 3721 Jasper Forest PCI Express Root Port 1 - 3722 Jasper Forest PCI Express Root Port 2 - 3723 Jasper Forest PCI Express Root Port 3 - 3724 Jasper Forest PCI Express Root Port 4 - 3725 Jasper Forest NTB Primary - 3726 Jasper Forest NTB Primary - 3727 Jasper Forest NTB Secondary - 3728 Jasper Forest Core - 3729 Jasper Forest Core - 372a Jasper Forest Core - 372b Jasper Forest Core - 372c Jasper Forest Reserved - 373f Jasper Forest IOxAPIC + 3700 Xeon C5500/C3500 DMI + 3701 Xeon C5500/C3500 DMI + 3702 Xeon C5500/C3500 DMI + 3703 Xeon C5500/C3500 DMI + 3704 Xeon C5500/C3500 DMI + 3705 Xeon C5500/C3500 DMI + 3706 Xeon C5500/C3500 DMI + 3707 Xeon C5500/C3500 DMI + 3708 Xeon C5500/C3500 DMI + 3709 Xeon C5500/C3500 DMI + 370a Xeon C5500/C3500 DMI + 370b Xeon C5500/C3500 DMI + 370c Xeon C5500/C3500 DMI + 370d Xeon C5500/C3500 DMI + 370e Xeon C5500/C3500 DMI + 370f Xeon C5500/C3500 DMI + 3710 Xeon C5500/C3500 CB3 DMA + 3711 Xeon C5500/C3500 CB3 DMA + 3712 Xeon C5500/C3500 CB3 DMA + 3713 Xeon C5500/C3500 CB3 DMA + 3714 Xeon C5500/C3500 CB3 DMA + 3715 Xeon C5500/C3500 CB3 DMA + 3716 Xeon C5500/C3500 CB3 DMA + 3717 Xeon C5500/C3500 CB3 DMA + 3718 Xeon C5500/C3500 CB3 DMA + 3719 Xeon C5500/C3500 CB3 DMA + 371a Xeon C5500/C3500 QPI Link + 371b Xeon C5500/C3500 QPI Routing and Protocol + 371d Xeon C5500/C3500 QPI Routing and Protocol + 3720 Xeon C5500/C3500 PCI Express Root Port 0 + 3721 Xeon C5500/C3500 PCI Express Root Port 1 + 3722 Xeon C5500/C3500 PCI Express Root Port 2 + 3723 Xeon C5500/C3500 PCI Express Root Port 3 + 3724 Xeon C5500/C3500 PCI Express Root Port 4 + 3725 Xeon C5500/C3500 NTB Primary + 3726 Xeon C5500/C3500 NTB Primary + 3727 Xeon C5500/C3500 NTB Secondary + 3728 Xeon C5500/C3500 Core + 3729 Xeon C5500/C3500 Core + 372a Xeon C5500/C3500 Core + 372b Xeon C5500/C3500 Core + 372c Xeon C5500/C3500 Reserved + 373f Xeon C5500/C3500 IOxAPIC 3a00 82801JD/DO (ICH10 Family) 4-port SATA IDE Controller 3a02 82801JD/DO (ICH10 Family) SATA AHCI Controller 3a05 82801JD/DO (ICH10 Family) SATA RAID Controller @@ -16707,7 +17303,7 @@ 1458 5001 GA-EP45-DS5 Motherboard 3a18 82801JIB (ICH10) LPC Interface Controller 3a1a 82801JD (ICH10D) LPC Interface Controller - 3a20 82801JI (ICH10 Family) 4 port SATA IDE Controller + 3a20 82801JI (ICH10 Family) 4 port SATA IDE Controller #1 1028 028c PowerEdge R410 SATA IDE Controller 1028 028d PowerEdge T410 SATA IDE Controller 3a22 82801JI (ICH10 Family) SATA AHCI Controller @@ -16717,7 +17313,7 @@ 1028 028c PERC S100 Controller (PE R410) 1028 028d PERC S100 Controller (PE T410) 1028 02f1 PERC S100 Controller (PE R510) - 3a26 82801JI (ICH10 Family) 2 port SATA IDE Controller + 3a26 82801JI (ICH10 Family) 2 port SATA IDE Controller #2 1028 028c PowerEdge R410 SATA IDE Controller 1028 028d PowerEdge T410 SATA IDE Controller 3a30 82801JI (ICH10 Family) SMBus Controller @@ -16757,17 +17353,22 @@ 1458 5006 GA-EP45-DS5 Motherboard 3a3e 82801JI (ICH10 Family) HD Audio Controller 1458 a102 GA-EP45-DS5 Motherboard - 3a40 82801JI (ICH10 Family) PCI Express Port 1 + 3a40 82801JI (ICH10 Family) PCI Express Root Port 1 1028 028c PowerEdge R410 PCI Express Port 1 1028 028d PowerEdge T410 PCI Express Port 1 + 1043 82ea P6T DeLuxe Motherboard 1458 5001 GA-EP45-DS5 Motherboard 3a42 82801JI (ICH10 Family) PCI Express Port 2 - 3a44 82801JI (ICH10 Family) PCI Express Port 3 - 3a46 82801JI (ICH10 Family) PCI Express Port 4 + 3a44 82801JI (ICH10 Family) PCI Express Root Port 3 + 1043 82ea P6T DeLuxe Motherboard + 3a46 82801JI (ICH10 Family) PCI Express Root Port 4 + 1043 82ea P6T DeLuxe Motherboard 1458 5001 GA-EP45-DS5 Motherboard - 3a48 82801JI (ICH10 Family) PCI Express Port 5 + 3a48 82801JI (ICH10 Family) PCI Express Root Port 5 + 1043 82ea P6T Deluxe Motherboard 1458 5001 GA-EP45-DS5 Motherboard - 3a4a 82801JI (ICH10 Family) PCI Express Port 6 + 3a4a 82801JI (ICH10 Family) PCI Express Root Port 6 + 1043 82ea P6T DeLuxe Motherboard 1458 5001 GA-EP45-DS5 Motherboard 3a4c 82801JI (ICH10 Family) Gigabit Ethernet Controller 3a51 82801JDO (ICH10DO) VECI Controller @@ -16800,6 +17401,7 @@ 3b07 Mobile 5 Series Chipset LPC Interface Controller 3b08 5 Series Chipset LPC Interface Controller 3b09 Mobile 5 Series Chipset LPC Interface Controller + 1025 0347 Aspire 7740G 3b0a 5 Series Chipset LPC Interface Controller 3b0b Mobile 5 Series Chipset LPC Interface Controller 3b0c 5 Series Chipset LPC Interface Controller @@ -16830,13 +17432,17 @@ 3b26 5 Series/3400 Series Chipset 2 port SATA IDE Controller 3b28 5 Series/3400 Series Chipset 4 port SATA IDE Controller 3b29 5 Series/3400 Series Chipset 4 port SATA AHCI Controller + 1025 0347 Aspire 7740G 3b2c 5 Series/3400 Series Chipset SATA RAID Controller 3b2d 5 Series/3400 Series Chipset 2 port SATA IDE Controller 3b2e 5 Series/3400 Series Chipset 4 port SATA IDE Controller 3b2f 5 Series/3400 Series Chipset 6 port SATA AHCI Controller 3b30 5 Series/3400 Series Chipset SMBus Controller + 1025 0347 Aspire 7740G 3b32 5 Series/3400 Series Chipset Thermal Subsystem + 1025 0347 Aspire 7740G 3b34 5 Series/3400 Series Chipset USB2 Enhanced Host Controller + 1025 0347 Aspire 7740G 3b36 5 Series/3400 Series Chipset USB Universal Host Controller 3b37 5 Series/3400 Series Chipset USB Universal Host Controller 3b38 5 Series/3400 Series Chipset USB Universal Host Controller @@ -16844,6 +17450,7 @@ 3b3a 5 Series/3400 Series Chipset USB Universal Host Controller 3b3b 5 Series/3400 Series Chipset USB Universal Host Controller 3b3c 5 Series/3400 Series Chipset USB2 Enhanced Host Controller + 1025 0347 Aspire 7740G 3b3e 5 Series/3400 Series Chipset USB Universal Host Controller 3b3f 5 Series/3400 Series Chipset USB Universal Host Controller 3b40 5 Series/3400 Series Chipset USB Universal Host Controller @@ -16858,7 +17465,9 @@ 3b50 5 Series/3400 Series Chipset PCI Express Root Port 8 3b53 5 Series/3400 Series Chipset VECI Controller 3b56 5 Series/3400 Series Chipset High Definition Audio + 1025 0347 Aspire 7740G 3b64 5 Series/3400 Series Chipset HECI Controller + 1025 0347 Aspire 7740G 3b65 5 Series/3400 Series Chipset HECI Controller 3b66 5 Series/3400 Series Chipset PT IDER Controller 3b67 5 Series/3400 Series Chipset KT Controller @@ -16882,6 +17491,19 @@ 4032 5400 Chipset IOxAPIC 4035 5400 Chipset FBD Registers 4036 5400 Chipset FBD Registers + 4100 Moorestown Graphics and Video + 4108 Tunnel Creek Integrated Graphics Controller + 4109 Tunnel Creek Integrated Graphics Controller + 410a Tunnel Creek Integrated Graphics Controller + 410b Tunnel Creek Integrated Graphics Controller + 410c Tunnel Creek Integrated Graphics Controller + 410d Tunnel Creek Integrated Graphics Controller + 410e Tunnel Creek Integrated Graphics Controller + 410f Tunnel Creek Integrated Graphics Controller + 4114 Tunnel Creek PCI Host Bridge #1 + 4115 Tunnel Creek PCI Host Bridge #2 + 4116 Tunnel Creek PCI Host Bridge #3 + 4117 Tunnel Creek PCI Host Bridge #4 4220 PRO/Wireless 2200BG [Calexico2] Network Connection 103c 0934 Compaq nw8240/nx8220 103c 12f6 Compaq nw8240/nx8220 @@ -16908,26 +17530,66 @@ 8086 1011 ThinkPad R60e/X60s 8086 1014 PRO/Wireless 3945BG Network Connection 4229 PRO/Wireless 4965 AG or AGN [Kedron] Network Connection - 422b WiFi Link 6000 Series + 8086 1100 Vaio VGN-SZ79SN_C + 422b Centrino Ultimate-N 6300 + 8086 1101 Centrino Ultimate-N 6300 3x3 AGN + 8086 1121 Centrino Ultimate-N 6300 3x3 AGN + 422c Centrino Advanced-N 6200 + 8086 1301 Centrino Advanced-N 6200 2x2 AGN + 8086 1306 Centrino Advanced-N 6200 2x2 ABG + 8086 1307 Centrino Advanced-N 6200 2x2 BG + 8086 1321 Centrino Advanced-N 6200 2x2 AGN + 8086 1326 Centrino Advanced-N 6200 2x2 ABG 4230 PRO/Wireless 4965 AG or AGN [Kedron] Network Connection 8086 1110 Lenovo ThinkPad T51 8086 1111 Lenovo ThinkPad T61 - 4232 Wireless WiFi Link 5100 - 8086 1205 PRO/Wireless 5100BG Network Connection - 8086 1206 PRO/Wireless 5100ABG Network Connection - 8086 1216 PRO/Wireless 5100ABG Network Connection - 8086 1305 PRO/Wireless 5100BG Network Connection - 8086 1306 PRO/Wireless 5100ABG Network Connection - 8086 1321 Wireless WiFi Link 5100 - 8086 1326 PRO/Wireless 5100ABG Network Connection - 4235 PRO/Wireless 5300 AGN [Shiloh] Network Connection - 4236 Wireless WiFi Link 5300 + 4232 WiFi Link 5100 + 8086 1201 WiFi Link 5100 AGN + 8086 1204 WiFi Link 5100 AGN + 8086 1205 WiFi Link 5100 BGN + 8086 1206 WiFi Link 5100 ABG + 8086 1221 WiFi Link 5100 AGN + 8086 1224 WiFi Link 5100 AGN + 8086 1225 WiFi Link 5100 BGN + 8086 1226 WiFi Link 5100 ABG + 8086 1301 WiFi Link 5100 AGN + 8086 1304 WiFi Link 5100 AGN + 8086 1305 WiFi Link 5100 BGN + 8086 1306 WiFi Link 5100 ABG + 8086 1321 WiFi Link 5100 AGN + 8086 1324 WiFi Link 5100 AGN + 8086 1325 WiFi Link 5100 BGN + 8086 1326 WiFi Link 5100 ABG + 4235 Ultimate N WiFi Link 5300 + 4236 Ultimate N WiFi Link 5300 4237 PRO/Wireless 5100 AGN [Shiloh] Network Connection - 4238 WiFi Link 6000 Series + 8086 1211 WiFi Link 5100 AGN + 8086 1214 WiFi Link 5100 AGN + 8086 1215 WiFi Link 5100 BGN + 8086 1216 WiFi Link 5100 ABG + 8086 1311 WiFi Link 5100 AGN + 8086 1314 WiFi Link 5100 AGN + 8086 1315 WiFi Link 5100 BGN + 8086 1316 WiFi Link 5100 ABG + 4238 Centrino Ultimate-N 6300 + 8086 1111 Centrino Ultimate-N 6300 3x3 AGN + 4239 Centrino Advanced-N 6200 + 8086 1311 Centrino Advanced-N 6200 2x2 AGN + 8086 1316 Centrino Advanced-N 6200 2x2 ABG 423a PRO/Wireless 5350 AGN [Echo Peak] Network Connection 423b PRO/Wireless 5350 AGN [Echo Peak] Network Connection - 423c WiMAX/WiFi Link 5050 Series - 423d WiMAX/WiFi Link 5050 Series + 423c WiMAX/WiFi Link 5150 + 8086 1201 WiMAX/WiFi Link 5150 AGN + 8086 1206 WiMAX/WiFi Link 5150 ABG + 8086 1221 WiMAX/WiFi Link 5150 AGN + 8086 1301 WiMAX/WiFi Link 5150 AGN + 8086 1306 WiMAX/WiFi Link 5150 ABG + 8086 1321 WiMAX/WiFi Link 5150 AGN + 423d WiMAX/WiFi Link 5150 + 8086 1211 WiMAX/WiFi Link 5150 AGN + 8086 1216 WiMAX/WiFi Link 5150 ABG + 8086 1311 WiMAX/WiFi Link 5150 AGN + 8086 1316 WiMAX/WiFi Link 5150 ABG 444e Turbo Memory Controller 5001 LE80578 5002 LE80578 Graphics Processor Unit @@ -17101,6 +17763,13 @@ 811c System Controller Hub (SCH Poulsbo) SDIO Controller #1 811d System Controller Hub (SCH Poulsbo) SDIO Controller #2 811e System Controller Hub (SCH Poulsbo) SDIO Controller #3 + 8180 Tunnel Creek PCI Express Port 3 + 8181 Tunnel Creek PCI Express Port 4 + 8182 Tunnel Creek Integrated Graphics Controller + 8183 Tunnel Creek Configuration Unit + 8184 Tunnel Creek PCI Express Port 1 + 8185 Tunnel Creek PCI Express Port 2 + 8186 Tunnel Creek LPC Bridge 84c4 450KX/GX [Orion] - 82454KX/GX PCI bridge 84c5 450KX/GX [Orion] - 82453KX/GX Memory controller 84ca 450NX - 82451NX Memory & I/O Controller @@ -17116,6 +17785,32 @@ 1993 0ded mGuard-PCI AV#2 1993 0dee mGuard-PCI AV#1 1993 0def mGuard-PCI AV#0 + 8800 Topcliff PCI Express Port + 8801 Topcliff Packet Hub + 8802 Topcliff Gigabit Ethernet Controller + 8803 Topcliff General Purpose IO Controller + 8804 Topcliff USB OHCI Controller #4 + 8805 Topcliff USB OHCI Controller #5 + 8806 Topcliff USB OHCI Controller #6 + 8807 Topcliff USB2 EHCI Controller #2 + 8808 Topcliff USB Client Controller + 8809 Topcliff SDIO Controller #1 + 880a Topcliff SDIO Controller #2 + 880b Topcliff SATA AHCI Controller + 880c Topcliff USB OHCI Controller #1 + 880d Topcliff USB OHCI Controller #2 + 880e Topcliff USB OHCI Controller #3 + 880f Topcliff USB2 EHCI Controller #1 + 8810 Topcliff DMA Controller #1 + 8811 Topcliff UART Controller 0 + 8812 Topcliff UART Controller 1 + 8813 Topcliff UART Controller 2 + 8814 Topcliff UART Controller 3 + 8815 Topcliff DMA Controller #2 + 8816 Topcliff Serial Peripheral Interface Bus + 8817 Topcliff I2C Controller + 8818 Topcliff Controller Area Network (CAN) Controller + 8819 Topcliff IEEE 1588 Hardware Assist 9000 IXP2000 Family Network Processor 9001 IXP2400 Network Processor 9002 IXP2300 Network Processor @@ -17124,14 +17819,14 @@ 9622 Integrated RAID 9641 Integrated RAID 96a1 Integrated RAID - a000 Pineview DMI Bridge - a001 Pineview Integrated Graphics Controller - a002 Pineview Integrated Graphics Controller - a003 Pineview CHAPS counter - a010 Pineview DMI Bridge - a011 Pineview Integrated Graphics Controller - a012 Pineview Integrated Graphics Controller - a013 Pineview CHAPS counter + a000 N10 Family DMI Bridge + a001 N10 Family Integrated Graphics Controller + a002 N10 Family Integrated Graphics Controller + a003 N10 Family CHAPS counter + a010 N10 Family DMI Bridge + a011 N10 Family Integrated Graphics Controller + a012 N10 Family Integrated Graphics Controller + a013 N10 Family CHAPS counter a620 6400/6402 Advanced Memory Buffer (AMB) b152 21152 PCI-to-PCI Bridge 8086 b152 21152 PCI-to-PCI Bridge @@ -17169,11 +17864,14 @@ 8384 SigmaTel 7618 High Definition Audio Codec 7634 9250 HD Audio Codec + 7662 High Definition Audio Codec + 104d 1e00 High Definition Audio Codec [STAC9872AK] 7664 High Definition Audio Codec 7670 9770 High Definition Audio 7672 9772 High Definition Audio 7682 IDT High Definition Audio Codec 7690 9200 HD Audio Codec + 1028 01c1 Precision 490 8401 TRENDware International Inc. 8686 ScaleMP 1010 vSMPowered system controller [vSMP CTL] @@ -17587,6 +18285,7 @@ aecb Adrienne Electronics Corporation 6250 VITC/LTC Timecode Reader card [PCI-VLTC/RDR] affe Sirrix AG security technologies 02e1 PCI2E1 2-port ISDN E1 interface + 450e PCI4S0EC 4-port ISDN S0 interface dead Sirrix.PCI4S0 4-port ISDN S0 interface # Not registered officially b10b Uakron PCI Project @@ -17626,8 +18325,11 @@ d161 Digium, Inc. 8001 Wildcard TE122 single-span T1/E1/J1 card 8002 Wildcard AEX800 8-port analog card (PCI-Express) 8003 Wildcard AEX2400 24-port analog card (PCI-Express) + 8004 Wildcard TCE400P transcoder base card 8005 Wildcard TDM410 4-port analog card 8006 Wildcard AEX410 4-port analog card (PCI-Express) + 8007 Hx8 Series 8-port Base Card + 8008 Hx8 Series 8-port Base Card (PCI-Express) b410 Wildcard B410 quad-BRI card d4d4 Dy4 Systems Inc 0601 PCI Mezzanine Card @@ -17704,12 +18406,18 @@ eace Endace Measurement Systems, Ltd 6100 DAG 6.1SE 10G Ethernet/OC-192 6200 DAG 6.2SE 10G Ethernet/OC-192 7100 DAG 7.1S OC-3/OC-12 + 7400 DAG 7.4S OC-3/OC-12 + 7401 DAG 7.4S48 OC-48 + 752e DAG 7.5G2 Gig Ethernet + 754e DAG 7.5G4 Gig Ethernet 8100 DAG 8.1X 10G Ethernet 8101 DAG 8.1SX 10G Ethernet/OC-192 8102 DAG 8.1X 10G Ethernet 820e DAG 8.2X 10G Ethernet 820f DAG 8.2X 10G Ethernet (2nd bus) 8400 DAG 8.4I Infiniband x4 SDR + 8500 DAG 8.5IF Infiniband x4 DDR + 920e DAG 9.2X2 10G Ethernet ec80 Belkin Corporation ec00 F5D6000 ecc0 Echo Digital Audio Corporation diff --git a/src/hwdata/usb.ids b/src/hwdata/usb.ids index 6d632b1..887cb83 100644 --- a/src/hwdata/usb.ids +++ b/src/hwdata/usb.ids @@ -9,8 +9,8 @@ # The latest version can be obtained from # http://www.linux-usb.org/usb.ids # -# Version: 2009.10.12 -# Date: 2009-10-12 20:34:03 +# Version: 2010.05.16 +# Date: 2010-05-16 20:34:19 #
# Vendors, devices and interfaces. Please keep sorted. @@ -21,6 +21,7 @@ # interface interface_name <-- two tabs
0001 Fry's Electronics + 142b Arbiter Systems, Inc. 0002 Ingram 0003 Club Mac 0004 Nebraska Furniture Mart @@ -35,6 +36,8 @@ 0204 Chipsbank Microelectronics Co., Ltd 6025 CBM2080 Flash drive controller 6026 CBM1180 Flash drive controller +0218 Hangzhou Worlde + 0301 MIDI Port 02ad HUMAX Co., Ltd. 138c PVR Mass Storage 0324 OCZ Technology Inc @@ -44,6 +47,8 @@ ac02 ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive 0386 LTS 0001 PSX for USB Converter +03da Bernd Walter Computer Technology + 0002 HD44780 LCD interface 03e8 EndPoints, Inc. 0004 SE401 Webcam 0008 101 Ethernet [klsi] @@ -61,6 +66,26 @@ 201c at90usbkey sample firmware (HID mouse) 201d at90usbkey sample firmware (HID generic) 2022 at90usbkey sample firmware (composite device) + 2040 LUFA Test PID + 2041 LUFA Mouse Demo Application + 2042 LUFA Keyboard Demo Application + 2043 LUFA Joystick Demo Application + 2044 LUFA CDC Demo Application + 2045 LUFA Mass Storage Demo Application + 2046 LUFA Audio Output Demo Application + 2047 LUFA Audio Input Demo Application + 2048 LUFA MIDI Demo Application + 2049 Stripe Snoop Magnetic Stripe Reader + 204a LUFA CDC Class Bootloader + 204b LUFA USB to Serial Adapter Project + 204c LUFA RNDIS Demo Application + 204d LUFA Combined Mouse and Keyboard Demo Application + 204e LUFA Dual CDC Demo Application + 204f LUFA Generic HID Demo Application + 2060 Benito Programmer Project + 2061 LUFA Combined Mas Storage and Keyboard Demo Application + 2062 LUFA Combined CDC and Mouse Demo Application + 2063 LUFA Datalogger Device 2103 JTAG ICE mkII 2104 AVR ISP mkII 2106 STK600 development board @@ -129,6 +154,7 @@ 0312 Color Inkjet CP1700 0314 designjet 30/130 series 0317 LaserJet 1200 + 0324 SK-2885 keyboard 0401 ScanJet 5200c 0404 DeskJet 830c/832c 0405 ScanJet 3400cse @@ -190,7 +216,7 @@ 1024 Smart Card Keyboard 1102 PhotoSmart 240 series 1104 DeskJet 959c - 1105 ScanJet 5470c + 1105 ScanJet 5470c/5490c 1111 OfficeJet v60 1116 Jornada 568 Pocket PC 1117 LaserJet 1300n @@ -210,6 +236,7 @@ 1424 f2105 Monitor Hub 1502 PhotoSmart 420 series 1504 DeskJet 920c + 150c Mood Lighting (Microchip Technology Inc.) 1511 PSC 750xi 1512 Printing Support 1517 color LaserJet 3500 @@ -264,6 +291,7 @@ 2102 PhotoSmart 7345 2104 DeskJet 630c 2112 OfficeJet Pro L7500 + 211d Sierra MC5725 [ev2210] 2202 PhotoSmart 7600 series 2205 ScanJet 3500c 2212 OfficeJet Pro L7600 @@ -279,6 +307,7 @@ 2417 LaserJet 4250 2424 LP1965 19" Monitor Hub 2502 PhotoSmart 7700 series + 2504 DeskJet F4200 series 2505 ScanJet 3770 2512 OfficeJet Pro L7300 2517 LaserJet 2410 @@ -301,7 +330,7 @@ 2b11 PSC 2170 series 2b17 LaserJet 1020 2c12 Officejet J4680 - 2c17 Printing Support + 2c17 LaserJet 1022 2c24 Logitech M-UAL-96 Mouse 2d11 OfficeJet 6110 2d17 Printing Support @@ -335,7 +364,7 @@ 3517 LaserJet 3390 3602 PhotoSmart 1315 3611 PSC 2410 PhotoSmart - 3617 EWS 2605 + 3617 Color LaserJet 2605 3711 PSC 2500 3717 EWS UPD 3724 Webcam @@ -353,16 +382,17 @@ 3c17 EWS UPD 3d02 PhotoSmart 7350~ 3d11 OfficeJet 4215 + 3d17 LaserJet P1005 3e02 PhotoSmart 7550 3e17 LaserJet P1006 3f02 PhotoSmart 7550~ 3f11 PSC-1315/PSC-1317 - 4002 PhotoSmart 720 / PhotoSmart 935 (storage) + 4002 PhotoSmart 635/715/720/735/935 (storage) 4004 cp1160 4102 PhotoSmart 618 4105 ScanJet 4370 4111 OfficeJet 7200 series - 4117 Printing Support + 4117 LaserJet 1018 4202 PhotoSmart 812 4205 ScanJet G3010 4211 OfficeJet 7300 series @@ -447,12 +477,14 @@ 7217 LaserJet M5035 MFP 7302 PhotoSmart M307 (PTP mode) 7304 DeskJet 35xx + 7311 Photosmart Premium C309 7317 LaserJet P3005 7404 Printing Support 7417 LaserJet M4345 MFP 7504 Printing Support 7517 LaserJet M3035 MFP 7604 DeskJet 3940 + 7611 DeskJet F2492 All-in-One 7617 LaserJet P3004 7702 PhotoSmart R817 (PTP mode) 7704 DeskJet D4100 @@ -461,6 +493,7 @@ 7817 Color LaserJet CP3505 7917 LaserJet M5025 MFP 7a02 PhotoSmart M415 (PTP mode) + 7a04 DeskJet D2460 7a17 LaserJet M3027 MFP 7b02 PhotoSmart M23 (PTP mode) 7b17 Color LaserJet CP4005 @@ -553,6 +586,7 @@ 03fd Xilinx, Inc. 03fe Farallon Comunications 0400 National Semiconductor Corp. + 05dc Rigol Technologies DS1000USB Oscilloscope 0807 Bluetooth Dongle 080a Bluetooth Device 1000 Mustek BearPaw 1200 Scanner @@ -560,28 +594,32 @@ 1237 Hub a000 Smart Display Reference Device c35b Printing Support + c55d Rigol Technologies DS5000USB Oscilloscope 0401 National Registry, Inc. 0402 ALi Corp. 5462 M5462 IDE Controller - 5602 Video Camera Controller - 5603 USB 2.0 Q-tec Webcam 300 - 5606 USB 2.0 Camera - 5621 USB 2.0 Storage Device - 5623 VistaScan Astra 3600 + 5602 M5602 Video Camera Controller + 5603 M5603 Video Camera Controller + 5606 M5606 Video Camera Controller [UVC] + 5621 M5621 High-Speed IDE Controller + 5623 M5623 Scanner Controller 5627 Welland ME-740PS USB2 3.5" Power Saving Enclosure - 5632 USB 2.0 Host-to-Host Link - 5635 USB 2.0 Flash Card Reader + 5632 M5632 Host-to-Host Link + 5635 M5635 Flash Card Reader 5636 USB 2.0 Storage Device 5637 M5637 IDE Controller - 5667 Music player + 5661 M5661 MP3 player + 5667 M5667 MP3 player 0403 Future Technology Devices International, Ltd 0000 H4SMK 7 Port Hub 0232 Serial Converter + 1060 JTAG adapter 6001 FT232 USB-Serial (UART) IC 6007 Serial Converter 6008 Serial Converter 6009 Serial Converter 6010 FT2232C Dual USB-UART/FIFO IC + 6011 FT4232H 8040 4 Port Hub 8070 7 Port Hub 8370 7 Port Hub @@ -606,6 +644,7 @@ d012 SCS DRAGON 1 d013 SCS DRAGON 1 d6f8 UNI Black BOX + e0d0 Total Phase Aardvark I2C/SPI analyzer e700 Elster Unicom III Optical Probe e888 Expert ISDN Control USB e889 USB-RS232 OptoBridge @@ -628,8 +667,9 @@ fc0b Crystalfontz CFA-633 USB LCD fc0c Crystalfontz CFA-631 USB LCD fc0d Crystalfontz CFA-635 USB LCD - fc82 SEMC DSS-20 SyncStation + fc82 SEMC DSS-20/DSS-25 SyncStation fd48 ShipModul MiniPlex-4xUSB NMEA Multiplexer + fd49 ShipModul MiniPlex-4xUSB-AIS NMEA Multiplexer ff08 ToolHouse LoopBack Adapter ff18 Logbook Bus ff19 Logbook Bus @@ -660,6 +700,7 @@ 0407 Fujitsu Personal Systems, Inc. 0408 Quanta Computer, Inc. 030c HP Webcam + 3000 Optical dual-touch panel 0409 NEC Corp. 0011 PC98 Series Layout Keyboard Mouse 0012 ATerm IT75DSU ISDN TA @@ -834,6 +875,7 @@ 040b Weltrend Semiconductor 6510 Weltrend Bar Code Reader 6520 XBOX Xploder + 6533 Speed-Link Competition Pro 040c VTech Computers, Ltd 040d VIA Technologies, Inc. 3184 VNT VT6656 USB-802.11 Wireless LAN Adapter @@ -855,6 +897,7 @@ 0027 WLI-USB-KS11G 802.11b Adapter 003d LUA-U2-KTX Ethernet 0044 WLI-USB-KB11 Wireless LAN Adapter + 004b WLI-USB-G54 802.11g Adapter [Broadcom 4320 USB] 004d WLI-USB-B11 Wireless LAN Adapter 0050 WLI2-USB2-G54 Wireless LAN Adapter 005e WLI-U2-KG54-YB WLAN @@ -869,12 +912,18 @@ 00a9 WLI-U2-AMG54HP Wireless LAN Adapter 00aa WLI-U2-AMG54HP Bootloader 00b3 PC-OP-RS1 RemoteStation + 00bc WLI-U2-KG125S 802.11g Adapter [Broadcom 4320 USB] 00ca 802.11n Network Adapter 00cb WLI-U2-G300N 802.11n Adapter 00d8 WLI-U2-SG54HP 00d9 WLI-U2-G54HP - 00da WLI-U2-KG54L 802.11bg + 00da WLI-U2-KG54L 802.11bg [ZyDAS ZD1211B] + 00e8 Buffalo WLI-UC-G300N Wireless LAN Adapter + 012e Buffalo WLI-UC-AG300N Wireless LAN Adapter + 0148 Buffalo WLI-UC-G300HP Wireless LAN Adapter + 0150 Buffalo WLP-UC-AG300 Wireless LAN Adapter 0157 Buffalo External Hard Drive HD-PEU2 + 015d Buffalo WLI-UC-GN Wireless LAN Adapter [Ralink RT2870] 0412 Award Software International 0413 Leadtek Research, Inc. 1310 WinFast TV - NTSC + FM @@ -911,6 +960,7 @@ 6024 WinFast PalmTop/Novo TV Video 6025 WinFast DTV Dongle (cold state) 6026 WinFast DTV Dongle (warm state) + 6029 WinFast DTV Dongle Gold 6125 WinFast DTV Dongle 6126 WinFast DTV Dongle BDA Driver 6f00 WinFast DTV Dongle (STK7700P based) @@ -938,7 +988,7 @@ 0417 Symbios Logic 0418 AST Research 0419 Samsung Info. Systems America, Inc. - 0001 IrDA Remote Controller + 0001 IrDA Remote Controller / Creative Cordless Mouse 3001 Xerox P1202 Laser Printer 3003 Olivetti PG L12L 3201 Docuprint P8ex @@ -950,6 +1000,7 @@ 4602 Remote NDIS Network Device 8001 Hub 8002 SyncMaster 757DFX HID Device + aa03 SDAS-3 MP3 Player 041a Phoenix Technologies, Ltd 041b d'TV 041d S3, Inc. @@ -958,6 +1009,7 @@ 1003 Blaster GamePad Cobra 1050 GamePad Cobra 1053 Mouse Gamer HD7600L + 200c MuVo V100 3000 SoundBlaster Extigy 3002 SB External Composite Device 3010 SoundBlaster MP3+ @@ -1060,6 +1112,7 @@ 4150 Zen V (MTP) 4151 Zen Vision:M (mtp) 4152 Zen V Plus + 4153 Zen Vision W 4155 Zen Stone plus 4157 Zen (MTP) 500f Broadband Blaster 8012U-V @@ -1076,7 +1129,13 @@ 0024 5610 XpressMusic (Storage mode) 0025 5610 XpressMusic (PC Suite mode) 0028 5610 XpressMusic (Imaging mode) + 002d 6120 Phone (Mass storage mode) + 002e 6120 Phone (Media-Player mode) + 002f 6120 Phone (PC-Suite mode) 0042 E51 (PC Suite mode) + 0064 3109c GSM Phone + 006b 5310 Xpress Music (PC Suite mode) + 006c 5310 Xpress music (Storage mode) 006d N95 (Storage mode) 006e N95 (Multimedia mode) 006f N95 (Printing mode) @@ -1089,6 +1148,10 @@ 0104 ADL Re-Flashing Engine Parent 0105 Nokia Firmware Upgrade Mode 0106 ROM Parent + 0154 5800 XpressMusic (PC Suite mode) + 0155 5800 XpressMusic (Multimedia mode) + 0156 5800 XpressMusic (Storage mode) + 0157 5800 XpressMusic (Imaging mode) 01c7 N900 (Storage Mode) 01c8 N900 (PC-Suite Mode) 0400 7600 Phone Parent @@ -1142,12 +1205,15 @@ 045d 6282 Phone Parent 046e 6110 Navigator 0485 MTP Device + 04b9 5300 04c3 N800 Internet Tablet 04ce E90 Communicator (PC Suite mode) 04cf E90 Communicator (Storage mode) 04f9 6300 (PC Suite mode) 0508 E65 (PC Suite mode) + 0509 E65 (Storage mode) 0600 Digital Pen SU-1B + 0610 CS-15 (Internet Stick 3G modem) 0800 Connectivity Cable DKU-5 0801 Data Cable DKU-6 0802 CA-42 Phone Parent @@ -1177,6 +1243,7 @@ 2503 USB 2.0 Hub 2504 USB 2.0 Hub 2512 USB 2.0 Hub + 2514 USB 2.0 Hub 2524 USB MultiSwitch Hub 2602 USB 2.0 Hub 0425 Motorola Semiconductors HK, Ltd @@ -1204,6 +1271,7 @@ 0082 109 Japanese Keyboard 0083 109 Japanese Keyboard 0100 3-button Mouse + 100e 24.1" LCD Monitor v4 36ba Bus Powered Hub 0431 Itac Systems, Inc. 0100 Mouse-Trak 3-button Track Ball @@ -1312,6 +1380,7 @@ 0065 X5130 0069 X74/X75 Printer 006d X125 + 006e C510 0072 X6170 Printer 0073 InkJet Color Printer 0078 InkJet Color Printer @@ -1348,6 +1417,7 @@ 00c8 Printing Support 00c9 Printing Support 00cb Printing Support + 00cc E120(n) 00d0 9300 series 00d3 X340 Scanner 00d4 X342n Scanner @@ -1415,10 +1485,12 @@ a0a1 Top Gun Joystick (rev2) a0a3 Fusion Digital GamePad a201 PK-GP201 PlayStick + b10a T.16000M Joystick b203 360 Modena Pro Wheel b300 Firestorm Dual Power b304 Firestorm Dual Power b307 vibrating Upad + b30b Wireless VibrationPad b603 force feedback Wheel b605 force feedback Racing Wheel b700 Tacticalboard @@ -1427,10 +1499,12 @@ 1234 Bluetooth Device 1428 Hub 1446 TUSB2040/2070 Hub + 16a6 BM-USBD1 BlueRobin RF heart rate sensor receiver 2036 TUSB2036 Hub 2046 TUSB2046 Hub 2077 TUSB2077 Hub 3410 TUSB3410 Microcontroller + 3f00 OMAP1610 3f02 SMC WSKP100 Wi-Fi Phone 5409 Frontier Labs NEX IA+ Digital Audio Player 6000 AU5 ADSL Modem (pre-reenum) @@ -1443,6 +1517,7 @@ e004 TI-89 Titanium Calculator e008 TI-84 Plus Silver Calculator f430 MSP-FET430UIF JTAG Tool + f432 eZ430 Development Tool ffff Bluetooth Device 0452 Mitsubishi Electronics America, Inc. 0021 HID Monitor Controls @@ -1471,6 +1546,8 @@ 0013 TACOMA Fingerprint Mouse V1.06.01 001a Genius WebScroll+ 0036 Pocket Mouse LE + 0039 NetScroll+ Superior + 003a NetScroll+ Mini Traveler 004c Slimstar Pro Keyboard 0056 Ergo 300 Mouse 0057 Enhanced Gaming Device @@ -1480,9 +1557,11 @@ 005c Enhanced Laser Gaming Device 005d Enhanced Device 0061 Bluetooth Dongle + 0072 Navigator 335 0083 Bluetooth Dongle 0100 EasyPen Tablet 0101 CueCat + 011b NetScroll T220 1001 Joystick 1002 Game Pad 1003 Genius VideoCam @@ -1511,7 +1590,13 @@ 201f ColorPage-Vivid 1200 XE 2020 ColorPage-Slim 1200 USB2 2021 ColorPage-SF600 + 3017 SPEED WHEEL 3 Vibration + 3018 Wireless 2.4Ghz Game Pad + 3019 10-Button USB Joystick with Vibration + 301a MaxFire G-12U Vibration 301d Genius MaxFire MiniPad + 400f Genius TVGo DVB-T02Q MCE + 4012 TVGo DVB-T03 6001 GF3000F Ethernet Adapter 7004 VideoCAM Express V2 7006 Dsc 1.3 Smart Camera Device @@ -1524,10 +1609,14 @@ 7014 VideoCAM Live V3 701c G-Shot G512 Still Camera 7020 Sim 321C - 7025 Eye 311Q Camera Device + 7025 Eye 311Q Camera + 7029 Genius Look 320s (SN9C201 + HV7131R) 702f Genius Slim 322 + 7035 i-Look 325T Camera 7045 Genius Look 1320 V2 704c Genius i-Look 1321 + 704d Slim 1322AF + 7055 Slim 2020AF camera 705a Asus USB2.0 Webcam 705c Genius iSlim 1300AF 0459 Adobe Systems, Inc. @@ -1604,6 +1693,7 @@ 0071 Wireless MultiMedia Keyboard (106/109) 0072 Wireless Natural MultiMedia Keyboard 0073 Wireless Natural MultiMedia Keyboard (106/109) + 0079 IXI Ogo CT-17 handheld device 007a 10/100 USB NIC 007d Notebook Optical Mouse 007e Wireless Transceiver for Bluetooth @@ -1623,11 +1713,13 @@ 00bd Fingerprint Reader 00c2 Wireless Adapter MN-710 00c9 MTP Device + 00ca Fingerprint Reader 00cb Basic Optical Mouse v2.0 00ce Generic PPC Flash device 00d1 Optical Mouse with Tilt Wheel 00da eHome Infrared Receiver 00db Natural Ergonomic Keyboard 4000 V1.0 + 00dd Comfort Curve Keyboard 2000 V1.0 00e1 Wireless Laser Mouse 6000 Reciever 00f4 LifeCam VX-6000 (SN9C20x + OV9650) 00f5 LifeCam VX-3000 @@ -1649,6 +1741,7 @@ 029c Xbox360 HD-DVD Drive 029d Xbox360 HD-DVD Drive 029e Xbox360 HD-DVD Memory Unit + 02a0 Xbox360 Big Button IR 0400 Windows Powered Pocket PC 2002 0401 Windows Powered Pocket PC 2002 0402 Windows Powered Pocket PC 2002 @@ -1774,11 +1867,14 @@ 04e8 Windows Powered Smartphone 2003 04e9 Windows Powered Smartphone 2003 04ea Windows Powered Smartphone 2003 + 0707 Wireless Laser Mouse 8000 0708 Transceiver v 3.0 for Bluetooth 070a Charon Bluetooth Dongle (DFU) + 0719 Xbox 360 Wireless Adapter 0721 LifeCam NX-3000 (UVC-compliant) 0723 LifeCam VX-7000 (UVC-compliant) 0734 Wireless Optical Desktop 700 + 075d LifeCam Cinema 930a ISOUSB.SYS Intel 82930 Isochronous IO Test Board fff8 Keyboard 0460 Ace Cad Enterprise Co., Ltd @@ -1846,6 +1942,7 @@ 0005 XX33 SmartCard Reader Keyboard 0010 SmartBoard XX44 0011 G83 (RS 6000) Keyboard + 0021 CyMotion Expert Combo 0023 CyMotion Master Linux Keyboard 0027 CyMotion Master Solar Keyboard 002a Wireless Mouse & Keyboard @@ -1867,6 +1964,14 @@ 040f Logitech/Storm PageScan 0430 Mic (Cordless) 0801 QuickCam Home + 0802 Webcam C200 + 0804 Webcam C250 + 0805 Webcam C300 + 0807 Webcam B500 + 0808 Webcam C600 + 0809 Webcam Pro 9000 + 080a Portable Webcam C905 + 080f Webcam C120 0810 QuickCam Pro 0820 QuickCam VC 0830 QuickClip @@ -1955,6 +2060,7 @@ 09a1 QuickCam Communicate MP/S5500 09a2 QuickCam Communicate Deluxe/S7500 09a4 QuickCam E 3500 + 09a5 Quickcam 3000 For Business 09a6 QuickCam Vision Pro 09b0 Acer OrbiCam 09b2 Fujitsu Webcam @@ -1964,6 +2070,8 @@ 0a02 Premium Stereo USB Headset 350 0a03 Logitech USB Microphone 0a04 V20 portable speakers (USB powered) + 0a0b ClearChat Pro USB + 0a0c Clear Chat Comfort USB Headset 0a13 Z-5 Speakers 0b02 BT Mini-Receiver (HID proxy mode) 8801 Video Camera @@ -1984,7 +2092,7 @@ c012 Mouseman Dual Optical c014 Corded Workstation Mouse c015 Corded Workstation Mouse - c016 M-UV69a/HP M-UV96 Optical Wheel Mouse + c016 Optical Wheel Mouse c018 Optical Wheel Mouse c019 Optical Tilt Wheel Mouse c01a M-BQ85 Optical Wheel Mouse @@ -2004,10 +2112,11 @@ c037 Mouse c038 Mouse c03d M-BT96a Pilot Optical Mouse - c03e Premium Optical Wheel Mouse + c03e Premium Optical Wheel Mouse (M-BT58) c03f UltraX Optical Mouse c040 Corded Tilt-Wheel Mouse c041 G5 Laser Mouse + c042 G3 Laser Mouse c043 MX320/MX400 Laser Mouse c044 LX3 Optical Mouse c045 Optical Mouse @@ -2017,7 +2126,10 @@ c050 RX 250 Optical Mouse c051 G3 (MX518) Optical Mouse c053 Laser Mouse + c061 RX1500 Laser Mouse + c068 G500 Laser Mouse c101 UltraX Media Remote + c122 Harmony 700 Remote c201 WingMan Extreme Joystick with Throttle c202 WingMan Formula c207 WingMan Extreme Digital 3D @@ -2038,9 +2150,12 @@ c219 Cordless RumblePad 2 c21a Precision Gamepad c21c G13 Advanced Gameboard - c221 G15 Keyboard / Keyboard + c221 G11/G15 Keyboard / Keyboard c222 G15 Keyboard / LCD - c223 G15 Keyboard / USB Hub + c223 G11/G15 Keyboard / USB Hub + c225 G11/G15 Keyboard / G keys + c226 G15 Refresh Keyboard + c227 G15 Refresh Keyboard c281 WingMan Force c283 WingMan Force 3D c285 WingMan Strike Force 3D @@ -2081,14 +2196,14 @@ c503 Cordless Mouse+Keyboard Receiver c504 Cordless Mouse+Keyboard Receiver c505 Cordless Mouse+Keyboard Receiver - c506 MX-700 Cordless Mouse Receiver + c506 MX700 Cordless Mouse Receiver c508 Cordless Trackball c509 Cordless Keyboard & Mouse c50a Cordless Mouse c50b Cordless Desktop Optical c50c Cordless Desktop S510 c50d Cordless Mouse - c50e MX-1000 Cordless Mouse Receiver + c50e Cordless Mouse Receiver c510 Cordless Mouse c512 LX-700 Cordless Desktop Receiver c513 MX3000 Cordless Desktop Receiver @@ -2097,8 +2212,10 @@ c518 MX610 Laser Cordless Mouse c51a MX Revolution/G7 Cordless Mouse c51b V220 Cordless Optical Mouse for Notebooks - c521 MX620 Laser Cordless Mouse + c521 Cordless Mouse Receiver c526 MX Revolution Cordless Mouse + c52b Unifying Receiver + c52f Wireless Mouse M305 c625 3Dconnexion Space Pilot 3D Mouse c626 3DConnexion Space Navigator 3D Mouse c627 3DConnexion Space Explorer 3D Mouse @@ -2130,12 +2247,14 @@ 3008 Mass Storage Device 5250 KeyMaestro Multimedia Keyboard 5273 KeyMaestro Multimedia Keyboard + 52e6 Cordless Mouse 5308 KeyMaestro Keyboard 5408 KeyMaestro Multimedia Keyboard/Hub + 5500 Portable Keyboard 86+9 keys (Model 6100C US) 5720 Smart Card Reader 6782 BTC 7932 mouse+keyboard 046f Crystal Semiconductor -0471 Philips +0471 Philips (or NXP) 0101 DSS350 Digital Speaker System 0104 DSS330 Digital Speaker System [uda1321] 0105 UDA1321 @@ -2180,13 +2299,18 @@ 0603 ATI Remote Wonder II Controller 0608 eHome Infrared Receiver 060a TSU9600 Remote Control + 060c Consumer Infrared Transceiver (HP) + 060d Consumer Infrared Transceiver (SRM5100) 060e RF Dongle + 060f Consumer Infrared Transceiver + 0613 Infrared Transceiver 0617 IEEE802.15.4 RF Dongle 0619 TSU9400 Remote Control 0700 Semiconductors CICT Hub 0701 150P1 TFT Display 0809 AVNET Bluetooth Device 0811 JR24 CDRW + 0814 DCCX38/P data cable 0815 eHome Infrared Receiver 0844 SA2111/02 1GB Flash Audio Player 1120 Creative Rhomba MP3 player @@ -2208,6 +2332,7 @@ 205e TSU9300 Remote Control 262c SPC230NC Webcam 485d Senselock SenseIV v2.x + df55 LPCXpresso LPC-Link 0472 Chicony Electronics Co., Ltd 0065 PFU-65 Keyboard b086 Asus USB2.0 Webcam @@ -2381,6 +2506,7 @@ 0491 Capetronic 0003 Taxan Monitor Control 0492 Samsung SemiConductor, Inc. + 0140 MP3 player 0493 MAG Technology Co., Ltd 0495 ESS Technology, Inc. 0496 Micron Electronics @@ -2436,10 +2562,13 @@ 1031 DGX-205/203 1032 DGX-305 1033 DGX-505 + 1037 PSR-E403 103c MOTIF-RACK ES + 1054 S90XS Keyboard/Music Synthesizer 2000 DGP-7 2001 DGP-5 3001 YST-MS55D USB Speaker + 3003 YST-M45D USB Speaker 4000 NetVolante RTA54i Broadband&ISDN Router 4001 NetVolante RTW65b Broadband Wireless Router 4002 NetVolante RTW65i Broadband&ISDN Wireless Router @@ -2617,6 +2746,7 @@ 0499 Patriot 780 049b Strobe XP 100 04a0 7400 + 04ac Xerox Travel Scanner 100 04a8 Multivideo Labs, Inc. 0101 Hub 0303 Peripheral Switch @@ -2730,7 +2860,10 @@ 1728 MX310 ser 1729 MX700 ser 172b MP140 ser + 173e MP560 1900 CanoScan LiDE 90 + 1901 CanoScan 8800F + 1905 CanoScan LiDE 200 2200 CanoScan LiDE 25 2201 CanoScan FB320U 2202 CanoScan FB620U @@ -2791,6 +2924,7 @@ 263f MP375 2646 MF5530 Scanner Device V1.9.1 2647 MF5550 Composite + 264d PIXMA MP710 264e MF5630 264f MF5650 (FAX) 2650 iR 6800C EUR @@ -2955,12 +3089,16 @@ 3117 PowerShot A700 312d Elura 100 3138 PowerShot A710 IS + 3147 EOS 1Ds Mark III 3155 PowerShot A450 315a PowerShot G9 315d PowerShot A720 3176 PowerShot A590 317a Powershot A470 3184 Digital IXUS 80 IS (PTP mode) + 319a EOS 7D + 31bc PowerShot D10 + 31c0 PowerShot SX200 IS 31ff Digital IXUS 55 04aa DaeWoo Telecom, Ltd 04ab Chromatic Research @@ -3030,6 +3168,7 @@ 0410 D200 (ptp) 0413 D40 (mass storage mode) 0422 D700 (ptp) + 0425 D300S 4000 Coolscan LS 40 ED 4001 LS 50 ED/Coolscan V ED 4002 Super Coolscan LS-5000 ED @@ -3066,6 +3205,8 @@ 0000 Dacal DC-101 CD Library 0001 Mouse 0002 CY7C63x0x Thermometer + 0033 Mouse + 0100 Cino FuzzyScan F760-B 0101 Keyboard/Hub 0102 Keyboard with APM 0130 MyIRC Remote Receiver @@ -3073,6 +3214,8 @@ 0bad MetaGeek Wi-Spy 1002 CY7C63001 R100 FM Radio 1006 Human Interface Device + 2050 hub + 2830 Opera1 DVB-S (cold state) 4381 SCAPS USC-1 Scanner Controller 4611 Storage Adapter FX2 (CY) 4616 Flash Disk (TPP) @@ -3082,8 +3225,10 @@ 6830 CY7C68300A EZ-USB AT2 USB 2.0 to ATA/ATAPI 6831 Storage Adapter ISD-300LP (CY) 7417 Wireless PC Lock + 8329 USB To keyboard/Mouse Converter 8613 CY7C68013 EZ-USB FX2 USB 2.0 Development Kit 8614 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005) + 861f Anysee E30 USB 2.0 DVB-T Receiver cc04 Centor USB RACIA-ALVAR USB PORT cc06 Centor-P RACIA-ALVAR USB PORT d5d5 CY7C63x0x Zoltrix Z-Boxer GamePad @@ -3096,7 +3241,7 @@ 0002 ISD Smart Cable for Mac 0003 ISD Smart Cable 0004 Printer - 0005 Stylus D88+ + 0005 Stylus D88+ / C43UX 0006 Printer 0007 Printer 0101 Perfection 636 @@ -3135,6 +3280,7 @@ 012c Perfection V350 (GT-F700) 012d Perfection V10/V100 (GT-S600/F650) 012f Perfection V350 (GT-F700) + 0130 Perfection V500 (GT-X770) 0202 Receipt Printer M129C 0401 CP 800 Digital Camera 0402 PhotoPC 850z @@ -3220,7 +3366,7 @@ 1203 iKey Token 1204 iKey Token 1205 iKey Token - 1206 iKey Token + 1206 iKey 4000 Token 1300 iKey 3000 Token 1301 iKey 3000 1302 iKey Token @@ -3250,6 +3396,10 @@ 0937 WN-WAG/USL Wireless LAN Adapter 0938 WN-G54/USL Wireless LAN Adapter 093f WNGDNUS2 802.11n + 0944 WHG-AGDN/US Wireless LAN Adapter + 0945 WN-GDN/US3 Wireless LAN Adapter + 0947 WN-G150U Wireless LAN Adapter + 0948 WN-G300U Wireless LAN Adapter 0a03 Serial USB-RSAQ1 0a07 USB2-iCN Adapter 0a08 USB2-iCN Adapter @@ -3402,7 +3552,8 @@ 01d2 FinePix A800 Zoom (PTP) 01d4 FinePix F50fd (PTP) 01d5 FinePix F47 (PTP) -04cc Philips Semiconductors + 01fd A160 +04cc ST-Ericsson 1122 Hub 1521 USB 2.0 Hub 8116 Camera @@ -3419,6 +3570,7 @@ 8811 CS8811 Mass Storage Device 8813 CS8813 Mass Storage Device 8818 USB2.0 to ATAPI Bridge Controller + 8819 USB 2.0 SD/MMC Reader 9920 CS8819A2-114 Mass Storage Device 04d0 Digi International 04d1 ITT Canon @@ -3437,16 +3589,22 @@ 04d7 Oki Semiconductor 1be4 Bluetooth Device 04d8 Microchip Technology, Inc. - 0002 USB-LCD 2x20 + 0002 PicoLCD 20x2 0003 PICkit 2 Microcontroller Programmer + 000b PIC18F2550 (32K Flashable 10 Channel, 10 Bit A/D USB Microcontroller) 8000 In-Circuit Debugger 8001 ICD2 in-circuit debugger + c001 PicoLCD 20x4 04d9 Holtek Semiconductor, Inc. 0022 Portable Keyboard - 1203 MC Industries Keyboard + 048e Optical Mouse + 0499 Optical Mouse + 1203 Keyboard + 1400 PS/2 keyboard + mouse controller 1503 Shortboard Lefty 04da Panasonic (Matsushita) 0901 LS-120 Camera + 0912 SDR-S10 0b01 CD-R/RW Drive 0b03 SuperDisk 240MB 0d01 CD-R Drive KXL-840AN @@ -3464,8 +3622,9 @@ 231a NV-GS11/230/250 (DV mode) 231d DVC Web Camera Device 231e DVC DV Stream Device - 2372 Lumix DMC-FZ10 Camera - 2374 DMC-FZ20 + 2372 Lumix Camera + 2374 DMC-FZ18/FZ20 + 2451 HDC-SD9 04db Hypertec Pty, Ltd 04dc Huan Hsin Holdings, Ltd 04dd Sharp Corp. @@ -3608,6 +3767,8 @@ 0111 Connect3D Flash Drive 1003 MP3 Player and Recorder 1006 SDC-200Z + 2035 Digital Photo Frame Mass Storage + 2036 Digital Photo Frame Mini Monitor 3004 ML-4600 3005 Docuprint P1210 3008 ML-6060 laser printer @@ -3629,15 +3790,18 @@ 323d Phaser 3120 323e Laser Printer 3240 Laser Printer - 3242 Laser Printer + 3242 ML-1510 Laser Printer 3248 Color Laser Printer 324a Laser Printer 324c ML-1740 Printer 324d Phaser 3121 + 325b Xerox Phaser 3117 Laser Printer 325f Phaser 3425 Laser Printer 3260 CLP-510 Color Laser Printer 3268 ML-1610 Mono Laser Printer 326c ML-2010P Mono Laser Printer + 3276 ML-3050/ML-3051 Laser Printer + 328e CLP-310 Color Laser Printer 3409 SCX-4216F Scanner 340c SCX-5x15 series 340d SCX-6x20 series @@ -3653,6 +3817,7 @@ 341d Composite Device 341f Composite Device 3420 Composite Device + 3426 SCX-4500 Laser Printer 3605 InkJet Color Printer 3606 InkJet Color Printer 3609 InkJet Color Printer @@ -3708,8 +3873,16 @@ 662e MITs Sync 6630 MITs Sync 6632 MITs Sync + 663e D900e Phone 663f SGH-E720/SGH-E840 6640 Usb Modem Enumerator + 6708 U600 Phone + 6759 D900e Media Player + 675a D900e Mass Storage + 675b D900e Camera + 6795 S5230 + 681c Galaxy Portal/Spica Android Phone + 681d Galaxy Portal/Spica Android Phone 7011 SEW-2003U Card 7021 Bluetooth Device 7061 eHome Infrared Receiver @@ -3722,6 +3895,7 @@ 04e9 PC-Tel, Inc. 04ea Brooktree Corp. 04eb Northstar Systems, Inc. + e004 eHome Infrared Transceiver 04ec Tokyo Electron Device, Ltd 04ed Annabooks 04ef Pacific Electronic International, Inc. @@ -3743,6 +3917,7 @@ 0111 KU-9908 Keyboard 0112 KU-8933 Keyboard with PS/2 Mouse port 0116 KU-2971 German Keyboard + 0220 Wireless HID Receiver 0403 KU-0420 keyboard a001 E-Video DC-100 Camera a120 ORITE CCD Webcam(PC370R) @@ -3775,9 +3950,12 @@ b027 Gateway USB 2.0 Webcam b028 VGA UVC Webcam b029 1.3M UVC Webcam + b044 Acer CrystalEye Webcam + b057 integrated USB webcam b071 2.0M UVC Webcam / CNF7129 b091 Webcam b107 CNF7070 Webcam + b14c CNF8050 Webcam 04f3 Elan Microelectronics Corp. 0210 AM-400 Hama Optical Mouse 0212 Laser Mouse @@ -3976,6 +4154,7 @@ 2004 PT-2300/2310 p-Touch Laber Printer 2015 QL-500 P-touch label printer 2016 QL-550 P-touch label printer + 201a PT-18R P-touch label printer 2100 Card Reader Writer 04fa Dallas Semiconductor 2490 DS1490F 2-in-1 Fob, 1-Wire adapter @@ -3983,10 +4162,14 @@ 04fb Biostar Microtech International Corp. 04fc Sunplus Technology Co., Ltd 0003 CM1092 Optical Scroller Mouse + 0005 USB OpticalWheel Mouse 0013 ViewMate Desktop Mouse CC2201 0015 ViewMate Desktop Mouse CC2201 + 00d3 00052486 / Laser Mouse M1052 [hama] 0232 Fingerprint 0561 Flexcam 100 + 05d8 Wireless keyboard/mouse + 0c15 SPIF215A SATA bridge 0c25 SATALink SPIF225A 1533 Mass Storage 500c CA500C Digital Camera @@ -4053,7 +4236,7 @@ 0012 F8T012 Bluetooth Adapter 0013 F8T013 Bluetooth Adapter 0017 B8T017 Bluetooth+EDR 2.1 - 0050 F5D6050 802.11b Wireless Adapter + 0050 F5D6050 802.11b Wireless Adapter v2000 [Atmel at76c503a] 0081 F8T001v2 Bluetooth 0083 Bluetooth Device 0084 F8T003v2 Bluetooth @@ -4063,7 +4246,7 @@ 0108 F1DE108B KVM 0109 F5U109/F5U409 PDA Adapter 0115 SCSI Adapter - 0119 F5U120-PC Dual PS/2 Ports + 0119 F5U120-PC Dual PS/2 Ports / F5U118-UNV ADB Adapter 0121 F5D5050 100Mbps Ethernet 0122 Ethernet Adapter 0131 Bluetooth Device with trace filter @@ -4092,15 +4275,22 @@ 3101 F1DF102U/F1DG102U Flip Hub 3201 F1DF102U/F1DG102U Flip KVM 4050 ZD1211B - 5055 F5D5055 - 6051 802.11b - 7050 F5D7050 ver 1000 WiFi - 7051 F5D7051 54g USB Network Adapter - 705a F5D7050A Wireless Adapter + 5055 F5D5055 Gigabit Network Adapter [AX88xxx] + 6051 802.11b Wireless Network Adapter + 7050 F5D7050 Wireless G Adapter v1000/v2000 + 7051 F5D7051 802.11g Adapter v1000 [Broadcom 4320 USB] + 705a F5D7050 Wireless G Adapter v3000 [Ralink RT2573] 705b Wireless G Adapter - 705c 802.11bg - 905b F5D9050 ver 3 Wireless Adapter - 905c Wireless G Plus MIMO Network Adapter + 705c F5D7050 Wireless G Adapter v4000 [Zydas ZD1211B] + 705e F5D7050 Wireless G Adapter v5000 [Realtek RTL8187B] + 8053 F5D8053 N Wireless USB Adapter v1000/v4000 [Ralink RT2870] + 805e F5D8053 N Wireless USB Adapter v5000 [Realtek RTL8192U] + 815c F5D8053 N Wireless USB Adapter v3000 [Ralink RT2870] + 815f F5D8053 N Wireless USB Adapter v6000 [Realtek RTL8192SU] + 825a F5D8055 N+ Wireless Adapter v1000 [Ralink RT2870] + 825b F5D8055 N+ Wireless Adapter v2000 [Ralink RT3070] + 905b F5D9050 Wireless G+ MIMO Network Adapter v3000 [Ralink RT2573] + 905c F5D9050 Wireless G+ MIMO Network Adapter v4000 [Ralink RT2573] 050e Neon Technology, Inc. 050f KC Technology, Inc. 0001 Hub @@ -4127,6 +4317,7 @@ a005 Smart Display Version 9973 051b Silicon Graphics 051c Shuttle, Inc. + 0005 VFD Module c001 eHome Infrared Receiver c002 eHome Infrared Receiver 051d American Power Conversion @@ -4143,6 +4334,7 @@ 0525 Netchip Technology, Inc. 100d RFMD Bluetooth Device 1080 NET1080 USB-USB Bridge + 1265 File-backed Storage Gadget a140 USB Clik! 40 a141 (OME) PocketZip 40 MP3 Player Driver a220 GVC Bluetooth Wireless Adapter @@ -4211,7 +4403,8 @@ 0537 Inventec Corp. 0538 Caldera International, Inc. (SCO) 0539 Shyh Shiun Terminals Co., Ltd -053a Preh Werke GmbH & Co. KG +053a PrehKeyTec GmbH + 0b00 Hub 053b Global Village Communication 053c Institut of Microelectronic & Mechatronic Systems 053d Silicon Architect @@ -4313,6 +4506,7 @@ 0056 MG Memory Stick Reader/Writer 0058 Clie PEG-N7x0C PalmOS PDA Mass Storage 0066 Clie PEG-N7x0C/PEG-T425 PalmOS PDA Serial + 0067 CMR-PC3 Webcam 0069 Memorystick MSC-U03 Reader 006d Clie PEG-T425 PDA Mass Storage 006f Network Walkman (EV) @@ -4378,6 +4572,7 @@ 018b Hi-MD SOUND GATE 019e Micro Vault 1.0G Mass Storage 01ad ATRAC HDD PA + 01bb 802.11g 01bd MRW62E Multi-Card Reader/Writer 01c3 NW-E55 Network Walkman 01c6 MEMORY P-AUDIO @@ -4428,6 +4623,10 @@ 02d1 DVD RW 02d2 PSP Slim 02ea PlayStation 3 Memory Card Adaptor + 02f9 DSC-H9 + 031e PRS-505 reader + 0346 Handycam DCR-SR55E + 03fd WALKMAN 1000 Wireless Buzz! Receiver 054d Try Corp. 054e Proside Corp. @@ -4509,6 +4708,7 @@ 0218 BearPaw 2400 TA 0219 BearPaw 2400 TA Plus 021a BearPaw 2448 TA Plus + 021b BearPaw 1200 CU Plus 021c BearPaw 1200 CU Plus 021d BearPaw 2400 CU Plus 021e BearPaw 1200 TA/CS @@ -4573,10 +4773,17 @@ 0000 PenPartner 0001 PenPartner 4x5 0002 PenPartner 6x8 + 0003 Cintiq Partner 0010 Graphire - 0011 Graphire 2 + 0011 Graphire 2 4x5 + 0012 Graphire 2 5x7 0013 Graphire 3 4x5 - 0017 Bamboo Fun + 0014 Graphire 3 6x8 + 0015 Graphire 4 4x5 + 0016 Graphire 4 6x8 + 0017 Bamboo Fun 4x5 + 0018 Bamboo Fun 6x8 + 0019 Bamboo One Medium 0020 Intuos 4x5 0021 Intuos 6x8 0022 Intuos 9x12 @@ -4585,14 +4792,47 @@ 0030 PL400 0031 PL500 0032 PL600 + 0033 PL600SX 0034 PL550 0035 PL800 + 0037 PL700 + 0038 PL510 + 0039 DTU-710 + 003f Cintiq 21UX 0041 Intuos2 4x5 - 0042 Intuos 2 6x8 - 0043 Intuos 2 + 0042 Intuos2 6x8 + 0043 Intuos2 9x12 0044 Intuos2 12x12 0045 Intuos2 12x18 + 0047 Intuos2 6x8 + 0060 Volito + 0061 PenStation2 + 0062 Volito2 4x5 + 0063 Volito2 2x3 + 0064 PenPartner2 + 0065 Bamboo + 0069 Bamboo One + 0081 Graphire Wireless 6x8 + 0090 TPC90 + 0093 TPC93 + 009a TPC9A + 00b0 Intuos3 4x5 + 00b1 Intuos3 6x18 + 00b2 Intuos3 9x12 + 00b3 Intuos3 12x12 + 00b4 Intuos3 12x19 00b5 Intuos3 6x11 (PTZ-631W) + 00b7 Intuos3 4x6 + 00b8 Intuos4 4x6 + 00b9 Intuos4 6x9 + 00ba Intuos4 8x13 + 00bb Intuos4 12x19 + 00c0 DTF-521 + 00c4 DTF-720 + 00c5 Cintiq 20WSX + 00c6 Cintiq 12WX + 00c7 DTU-1931 + 00d3 Bamboo Fun (CTH-661) 0400 PenPartner 4x5 4850 PenPartner 6x8 056b Decicon, Inc. @@ -4638,7 +4878,7 @@ 8390 WinFast PalmTop/Novo TV Video 8392 WinFast PalmTop/Novo TV Video cafe AccessRunner ADSL Modem - cb00 E-Tech ADSL Modem v2 + cb00 ADSL Modem cb01 GeekADSL Promax Q31 ADSL Modem cb06 StarModem Network Interface 0573 Zoran Co. Personal Media Division (Nogatech) @@ -4740,10 +4980,12 @@ 4602 Eumex 400 (WinXP/2000) 4701 AVM FRITZ!Box Fon ata 5401 Eumex 300 IP - 5601 AVM FRITZ!WLAN Stick - 6201 WLAN USB v1.1 - 62ff WLAN USB v1.1 [no firmware] - 8401 FRITZ!WLAN Stick N + 5601 AVM Fritz!WLAN [Texas Instruments TNETW1450] + 6201 AVM Fritz!WLAN v1.1 [Texas Instruments TNETW1450] + 62ff AVM Fritz!WLAN USB (in CD-ROM-mode) + 8401 AVM Fritz!WLAN N [Atheros AR9001U] + 8402 AVM Fritz!WLAN N 2.4 [Atheros AR9001U] + 84ff AVM Fritz!WLAN USB N (in CD-ROM-mode) 057d Shark Multimedia, Inc. 057e Nintendo Co., Ltd 0306 Wii Remote Controller RVL-003 @@ -4842,18 +5084,71 @@ 00a6 Juno-G 00ad SH-201 00c4 EDIROL M-16DX + 00db BOSS GT-10 Guitar Effects Processor 00de Fantom-G7 0583 Padix Co., Ltd (Rockfire) + 0001 4 Axis 12 button +POV + 0002 4 Axis 12 button +POV 2030 RM-203 USB Nest [mode 1] 2031 RM-203 USB Nest [mode 2] 2032 RM-203 USB Nest [mode 3] 2033 RM-203 USB Nest [mode 4] 2050 PX-205 PSX Bridge + 205f PSX/USB converter + 206f USB, 2-axis 8-button gamepad 3050 QF-305u Gamepad + 3379 Rockfire X-Force + 337f Rockfire USB RacingStar Vibra + 509f USB,4-Axis,12-Button with POV + 5259 Rockfire USB SkyShuttle Vibra + 525f USB Vibration Pad + 5308 USB Wireless VibrationPad + 5359 Rockfire USB SkyShuttle Pro + 535f USB,real VibrationPad + 5659 Rockfire USB SkyShuttle Vibra + 565f USB VibrationPad + 6009 Revenger + 600f USB,GameBoard II + 6258 USB, 4-axis, 6-button joystick w/view finder + 6889 Windstorm Pro 688f QF-688uv Windstorm Pro Joystick 7070 QF-707u Bazooka Joystick + a000 MaxFire G-08XU Gamepad + a015 4-Axis,16-Button with POV + a019 USB, Vibration ,4-axis, 8-button joystick w/view finder + a020 USB,4-Axis,10-Button with POV + a021 USB,4-Axis,12-Button with POV + a022 USB,4-Axis,14-Button with POV + a023 USB,4-Axis,16-Button with POV + a024 4axis,12button vibrition audio gamepad + a025 4axis,12button vibrition audio gamepad + a130 USB Wireless 2.4GHz Gamepad + a131 USB Wireless 2.4GHz Joystick + a132 USB Wireless 2.4GHz Wheelpad + a133 USB Wireless 2.4GHz Wheel&Gamepad + a202 ForceFeedbackWheel + a209 MetalStrike FF + b000 USB,4-Axis,12-Button with POV + b001 USB,4-Axis,12-Button with POV + b002 Vibration,12-Button USB Wheel + b005 USB,12-Button Wheel + b008 USB Wireless 2.4GHz Wheel + b009 USB,12-Button Wheel + b00a PSX/USB converter + b00b PSX/USB converter + b00c PSX/USB converter + b00d PSX/USB converter + b00e 4-Axis,12-Button with POV + b00f USB,5-Axis,10-Button with POV + b010 MetalStrike Pro + b012 Wireless MetalStrike + b013 USB,Wiress 2.4GHZ Joystick + b016 USB,5-Axis,10-Button with POV + b018 TW6 Wheel + ff60 USB Wireless VibrationPad 0584 RATOC System, Inc. 0008 Fujifilm MemoryCard ReaderWriter + 0220 U2SCX SCSI Converter b000 REX-USB60 0585 FlashPoint Technology, Inc. 0001 Digital Camera @@ -4872,6 +5167,7 @@ 000e Digital Camera 000f Digital Camera 0586 ZyXEL Communications Corp. + 0025 802.11b/g/n USB Wireless Network Adapter 0102 omni.net II ISDN TA 1000 Omni NET Modem / ISDN TA 1500 Omni 56K Plus @@ -4880,7 +5176,7 @@ 3309 ADSL Modem Prestige 600 series 330a ADSL Modem Interface 330e USB Broadband ADSL Modem Rev 1.10 - 3400 802.11b + 3400 ZyAIR B-220 IEEE 802.11b Adapter 3401 ZyAIR G-220 802.11bg 3402 ZyAIR G-220F 802.11bg 3407 G-200 v2 802.11bg @@ -4892,6 +5188,8 @@ 3413 ZyAIR AG-225H v2 802.11bg 3415 G-210H 802.11g Wireless Adapter 3416 NWD-210N 802.11b/g/n-draft wireless adapter + 3417 NWD271N 802.11n Wireless Adapter [Atheros AR9001U-(2)NG] + 341a NWD-270N Wireless N-lite USB Adapter 0587 America Kotobuki Electronics Industries, Inc. 0588 Sapien Design 0589 Victron @@ -4930,7 +5228,7 @@ 6335 SD/MMC Card Reader 6360 Multimedia Card Reader 6361 Multimedia Card Reader - 6362 Hi-Speed 21-in-1 Flash Card Reader/Writer (Internal/External) + 6362 Flash Card Reader/Writer 6366 Multi Flash Reader 6377 Multimedia Card Reader 6386 Memory Card @@ -4951,6 +5249,7 @@ 9368 Multimedia Card Reader 9380 Flash Drive 9382 Acer/Sweex Flash drive + 9384 qdi U2Disk T209M 9410 Keyboard 9472 Keyboard Hub 9510 ChunghwaTL USB02 Smartcard Reader @@ -5022,8 +5321,10 @@ 0212 PocketDrive 0213 PocketDrive USB2 0323 LaCie d2 Drive USB2 + 0421 Big Disk G465 0641 Mobile Hard Drive 1010 Desktop Hard Drive + 1019 Desktop Hard Drive a601 HardDrive a602 CD R/W 05a0 Vetronix Corp. @@ -5096,6 +5397,7 @@ 0229 Internal Keyboard/Trackpad (MacBook Pro) (ANSI) 022a Internal Keyboard/Trackpad (MacBook Pro) (ISO) 022b Internal Keyboard/Trackpad (MacBook Pro) (JIS) + 0230 Internal Keyboard/Trackpad (MacBook Pro 4,1) 0301 USB Mouse [Mitsumi, M4848] 0302 Optical Mouse [Fujitsu] 0304 Optical USB Mouse [Mitsumi] @@ -5117,31 +5419,47 @@ 1208 iPod '08' 1209 iPod Video 120a iPod Nano + 1223 iPod Classic/Nano 3.Gen (DFU mode) + 1224 iPod Nano 3.Gen (DFU mode) + 1225 iPod Nano 4.Gen (DFU mode) + 1231 iPod Nano 5.Gen (DFU mode) 1240 iPod Nano 2.Gen (DFU mode) + 1255 iPod Nano 4.Gen (DFU mode) 1260 iPod Nano 2.Gen 1261 iPod Classic 1262 iPod Nano 3.Gen + 1263 iPod Nano 4.Gen + 1265 iPod Nano 5.Gen 1290 iPhone 1291 iPod Touch 1.Gen 1292 iPhone 3G + 1293 iPod Touch 2.Gen 1294 iPhone 3GS + 129a iPad 1300 iPod Shuffle 1301 iPod Shuffle 2.Gen 8202 HCF V.90 Data/Fax Modem 8203 Bluetooth HCI - 8204 Bluetooth HCI [Bluetooth 2.0 + EDR, build-in] + 8204 Bluetooth HCI [Bluetooth 2.0 + EDR, built-in] 8205 Bluetooth HCI 8206 Bluetooth HCI - 8240 IR Receiver [build-in] + 820f Bluetooth HCI + 8215 Bluetooth USB Host Controller + 8216 Bluetooth USB Host Controller + 8217 Bluetooth USB Host Controller + 8240 IR Receiver [built-in] + 8242 IR Receiver [built-in] 8300 Built-in iSight (no firmware loaded) 8501 Built-in iSight [Micron] 8502 Built-in iSight + 8505 Built-in iSight 912f Hub in 30" Cinema Display 9221 30" Cinema Display ffff Bluetooth in DFU mode - Driver 05ad Y.C. Cable U.S.A., Inc. 05ae Synopsys, Inc. 05af Jing-Mold Enterprise Co., Ltd + 0809 Wireless Keyboard and Mouse 0821 IDE to 9167 KB 9151B - 678 9267 KB 9251B - 678 Mouse @@ -5158,6 +5476,9 @@ 3002 Scroll Mouse 05b9 Philips Research Laboratories 05ba DigitalPersona, Inc. + 0007 Fingerprint Reader + 0008 Fingerprint Reader + 000a Fingerprint Reader 05bb Grey Cell Systems 05bc 3G Green Green Globe Co., Ltd 0004 Trackball @@ -5172,9 +5493,11 @@ 0004 AccelePort USB 4 0008 AccelePort USB 8 05c6 Qualcomm, Inc. + 1000 Mass Storage Device 3100 CDMA Wireless Modem/Phone 3196 CDMA Wireless Modem 3197 CDMA Wireless Modem/Phone + 6503 AnyData APE-540H 6613 Onda H600/N501HS ZTE MF330 05c7 Qtronix Corp. 0113 PC Line Mouse @@ -5441,6 +5764,7 @@ a531 JumpDrive Secure II a560 JumpDrive FireFly a701 JumpDrive FireFly + a790 JumpDrive 2GB b002 USB CF Reader b018 Multi-Card Reader 05dd Delta Electronics, Inc. @@ -5481,6 +5805,7 @@ 0406 Hub 0501 GL620USB Host-Host interface 0502 GL620USB-A GeneLink USB-USB Bridge + 0503 Webcam 0504 HID Keyboard Filter 0604 USB 1.1 Hub 0605 USB 2.0 Hub [ednet] @@ -5499,12 +5824,13 @@ 0709 Card Reader 070a Pen Flash 070b DMHS1B Rev 3 DFU Adapter - 070e X-PRO CR20xA USB 2.0 Internal Card Reader + 070e USB 2.0 Card Reader 070f Pen Flash 0710 USB 2.0 33-in-1 Card Reader 0711 Card Reader 0712 Delkin Mass Storage Device 0715 USB 2.0 microSD Reader + 0716 USB 2.0 Multislot Card Reader/Writer 0723 USB 2.0 SD/MMC/MS Flash Card Reader 0760 USB 2.0 Card Reader/Writer 0761 Genesys Mass Storage Device @@ -5592,6 +5918,7 @@ 0609 SMK Manufacturing, Inc. 031d eHome Infrared Receiver 0322 eHome Infrared Receiver + 0334 eHome Infrared Receiver ff12 SMK Bluetooth Device 060a Worthington Data Solutions, Inc. 060b Solid Year @@ -5691,6 +6018,7 @@ 0200 All-In-One Multi-Card Reader CA200/B/S 1000 CD-ROM Drive 800d TASCAM Portastudio DP-01FX + 800e TASCAM US-122L d001 CD-R/RW Unit d002 CD-R/RW Unit d010 CD-RW/DVD Unit @@ -5884,6 +6212,7 @@ 0110 Vigor 128 ISDN TA 0550 Vigor550 1688 miniVigor 128 ISDN TA + 6694 USB ISDN TA 0676 Teles AG 0677 Aiwa Co., Ltd 07d5 TM-ED1285(USB) @@ -5931,7 +6260,8 @@ e240 Speedstream Ethernet Adapter E240 e540 Speedstream Ethernet Adapter E240 067d Hohner Corp. -067e Intermec +067e Intermec Technologies Corp. + 0801 SR30 Barcode Scanner 1001 Mobile Computer 067f Virata, Ltd 4552 DSL-200 ADSL Modem @@ -5957,8 +6287,14 @@ 0684 Actiontec Electronics, Inc. 0686 Minolta Co., Ltd 2001 PagePro 4110W + 2004 PagePro 1200W + 2005 Magicolor 2300 DL 3001 PagePro 4100 + 3005 PagePro 1250E 3006 PagePro 1250W + 3009 Magicolor 2300W + 300b PagePro 1350W + 300c PagePro 1300W 302e Develop D 1650iD PCL 3034 Develop D 2050iD PCL 4001 Dimage 2300 @@ -5993,6 +6329,7 @@ 00f1 Pro Throttle 00f2 Flight Sim Pedals 00f3 Fighterstick + 00fa Flight Sim Pedals 00ff Flight Sim Yoke 0500 GameStick 3D 0501 CH Pro Pedals @@ -6033,6 +6370,7 @@ 070d MP3 Player 070e MP3 Player 070f RCA Lyra RD1071 MP3 Player + 0731 Lyra M200E256 2220 RCA Kazoo RD1000 MP3 Player 300a RCA Lyra MP3 Player 3012 MP3 Player @@ -6047,6 +6385,7 @@ 0010 Tornado Speakerphone FaxModem 56.0 0011 Tornado Speakerphone FaxModem 56.0 1000 ADT VvBus for CopperJet + 1004 CopperJet 821 RouterPlus 06a2 Topro Technology, Inc. 0033 USB Mouse 06a3 Saitek PLC @@ -6408,6 +6747,7 @@ 06f7 Wailly Technology Ltd 0003 USB->Din 4 Adaptor 06f8 Guillemot Corp. + 3002 Hercules Blog Webcam 3004 Hercules Classic Silver 3005 Hercules Dualpix Exchange 3007 Hercules Dualpix Chat and Show @@ -6418,6 +6758,7 @@ e000 HWGUSB2-54 WLAN e010 HWGUSB2-54-LB e020 HWGUSB2-54V2-AP + e031 Hercules HWNUm-300 Wireless N mini [Realtek RTL8191S] 06fa HSD S.r.L 06fc Motorola Semiconductor Products Sector 06fd Boston Acoustics @@ -6434,8 +6775,8 @@ 0200 2202 Ethernet [pegasus] 0201 EZ Connect USB Ethernet ee04 SMCWUSB32 802.11b Wireless LAN Card - ee06 EZ-Connect 802.11g Adapter - ee13 EZ-Connect 802.11g Adapter + ee06 SMC2862W-G v1 EZ Connect 802.11g Adapter [Intersil ISL3886] + ee13 SMC2862W-G v2 EZ Connect 802.11g Adapter [Intersil ISL3887] 0708 Putercom Co., Ltd 047e USB-1284 BRIDGE 0709 Silicon Systems, Ltd (SSL) @@ -6484,6 +6825,7 @@ 0101 Audio4-USB DSP Data Acquisition Unit 0201 Audio4-5410 DSP Data Acquisition Unit 0301 SB-USB JTAG Emulator + 3203 Rockchip Media Player 071c Xionics Document Technologies, Inc. 071d Eicon Networks Corp. 1000 Diva ISDN TA @@ -6535,7 +6877,7 @@ 0735 Asuscom Network 2100 ISDN Adapter 2101 ISDN Adapter - 6694 ISDN Adapter + 6694 ISDNlink 128K c541 ISDN TA 280 0736 Lorom Industrial Co., Ltd 0738 Mad Catz, Inc. @@ -6632,6 +6974,7 @@ 200d M-Audio OmniStudio 200f M-Audio MobilePre 2010 M-Audio Fast Track + 2012 M-Audio Fast Track Pro 2013 M-Audio JamLab 2015 M-Audio RunTime DFU 2016 M-Audio RunTime DFU @@ -6687,6 +7030,9 @@ 076e Kuan Tech Enterprise Co., Ltd 076f Jhen Vei Electronic Co., Ltd 0770 Welch Allyn, Inc - Medical Division +0771 Observator Instruments BV + 4455 OMC45III + ae0f OMC45III 0774 AmTRAN Technology Co., Ltd 0775 Longshine Electronics Corp. 0776 Inalways Corp. @@ -6730,8 +7076,10 @@ 5150 SDCZ2 Cruzer Mini Flash Drive (thin) 5151 Cruzer Micro Flash Drive 5153 Cruzer Flash Drive - 5406 Cruzer Micro 1/2/4GB Flash Drive + 5402 U3 Cruzer Micro + 5406 Cruzer Micro U3 5408 Cruzer Titanium U3 + 540e Cruzer Contour Flash Drive 6100 Ultra II SD Plus 2GB 7100 Cruzer Mini 7101 Pen Flash @@ -6754,6 +7102,8 @@ 7431 Sansa M200v4 (msc) 7432 Sansa Clip (mtp) 7433 Sansa Clip (msc) + 7434 Sansa Clip V2 (mtp) + 7435 Sansa Clip V2 (msc) 7450 Sansa C250 7451 Sansa C240 7460 Sansa Express @@ -6762,6 +7112,8 @@ 74b1 Sansa View 74c0 Sansa Fuze (mtp) 74c1 Sansa Fuze (msc) + 74d0 Sansa Clip+ (mtp) + 74d1 Sansa Clip+ (msc) 8181 Pen Flash 8183 Hi-Speed Mass Storage Device 8185 SDCZ2 Cruzer Mini Flash Drive (older, thick) @@ -6782,6 +7134,9 @@ 0782 Trackerball 0783 C3PO 0003 LTC31 SmartCard Reader + 0006 LTC31v2 + 0009 KBR36 + 0010 LTC32 0784 Vivitar, Inc. 0100 Vivicam 2655 1310 Vivicam 3305 @@ -6803,6 +7158,9 @@ 0064 LDR-R Device 00b3 DVD Multi-plus unit LDR-H443U2 010c Realtek RTL8187 Wireless 802.11g 54Mbps Network Adapter + 0162 LAN-WN22/U2 Wireless LAN Adapter + 0163 LAN-WN12/U2 Wireless LAN Adapter + 0164 LAN-W150/U2M Wireless LAN Adapter 078b Happ Controls, Inc. 0010 Driving UGCI 0020 Flying UGCI @@ -6828,6 +7186,8 @@ 8911 ScanHex SX-35c 0798 Optelec 0001 Braille Voyager +0799 Altera + 7651 Programming Unit 079b Sagem 0027 USB-Serial Controller 002f Mobile @@ -6838,6 +7198,7 @@ 0056 Agfa AP1100 Photo Printer 005d Mobile Mass Storage 0062 XG-76NA 802.11bg + 0078 Laser Pro Monochrome MFP 079d Alfadata Computer Corp. 0201 GamePort Adapter 07a1 Digicom S.p.A. @@ -6861,12 +7222,16 @@ 0017 FEther USB2-TX 001a ULUSB-11 Key 002f CG-WLUSB2GNL + 003c CG-WLUSB2GNL + 003f CG-WLUSB300AGN + 0043 CG-WLUSB300N rev A2 [Realtek RTL8192U] 7613 Stick-11 V2 802.11b Adapter 9601 FEther USB-TXC 07ab Freecom Technologies fc01 IDE bridge fc02 Cable II USB-2 fc03 USB2-IDE IDE bridge + fcd6 Freecom HD Classic fcf8 Freecom Classic SL Network Drive 07af Microtech 0004 SCSI-DB25 SCSI Bridge [shuttle] @@ -6916,20 +7281,23 @@ 0406 A8 Namecard-D Controller 0410 Scanner 0412 Scanner + 0413 OpticSlim 1200 Scanner 0800 OpticPro ST48 Scanner 0906 OpticBook 3600 Scanner + 0a06 TVcam VD100 0c03 OpticPro ST64+ Scanner + 0c04 Optic Film 7200i scanner 0c26 OpticBook 4600 Scanner 0c2b Mobile Office D428 Scanner 07b4 Olympus Optical Co., Ltd 0100 Camedia C-2100/C-3000 Ultra Zoom Camera 0102 Camedia E-10/C-220/C-50 Camera 0105 Camedia C-310Z/C-700/C-750UZ/C-755/C-765UZ/C-3040/C-4000/C-5050Z/D-560/C-3020Z Zoom Camera - 0109 C-370Z/D-535Z/X-450 + 0109 C-370Z/C-500Z/D-535Z/X-450 0112 MAUSB-100 xD Card Reader 0113 Mju 500 0114 C-350Z Camera - 0118 Mju Mini Digital/Mju Digital 500 Camera + 0118 Digital Camera 0184 P-S100 port 0203 Digital Voice Recorder DW-90 0206 Digital Voice Recorder DS-330 @@ -6940,6 +7308,7 @@ 07b5 Mega World International, Ltd 0017 Joystick 0213 Thrustmaster Firestorm Digital 3 Gamepad + 0312 Gamepad 9902 GamePad 07b6 Marubun Corp. 07b7 TIME Interconnect, Ltd @@ -6948,6 +7317,11 @@ 1201 IEEE 802.11b Adapter 200c XX2 2573 Wireless LAN Card + 2770 802.11n/b/g Mini Wireless LAN USB2.0 Adapter + 2870 802.11n/b/g Wireless LAN USB2.0 Adapter + 3070 802.11n/b/g Mini Wireless LAN USB2.0 Adapter + 3071 802.11n/b/g Mini Wireless LAN USB2.0 Adapter + 3072 802.11n/b/g Mini Wireless LAN USB2.0 Adapter 4000 DU-E10 Ethernet [klsi] 4002 DU-E100 Ethernet [pegasus] 4003 1/10/100 Ethernet Adapter @@ -7001,6 +7375,8 @@ 1501 IO-Warrior 24 1502 IO-Warrior 48 1503 IO-Warrior 28 + 1511 IO-Warrior 24 Power Vampire + 1512 IO-Warrior 24 Power Vampire 07c1 Keisokugiken 0068 HKS-0200 USBDAQ 07c4 Datafab Systems, Inc. @@ -7042,7 +7418,10 @@ 0002 AVerTV PVR USB/EZMaker Pro Device 0026 AVerTV 1228 MPEG-2 Capture Device (M038) + 850a AverTV Volar Black HD (A850) a309 HP DVB-T TV Tuner [HP dv6-1190en] + a801 AVerTV DVB-T (A800) + a815 AVerTV DVB-T Volar X (A815) e880 MPEG-2 Capture Device (E880) e882 MPEG-2 Capture Device (E882) 07cb Kingmax Technology, Inc. @@ -7112,6 +7491,7 @@ 1003 Exilim EX-S500 1004 Exilim EX-Z120 1011 USB-CASIO PC CAMERA + 1116 EXILIM EX-Z19 2002 E-125 Cassiopeia Pocket PC 3801 WMP-1 MP3-Watch 4001 Label Printer KL-P1000 @@ -7141,29 +7521,43 @@ 2000 FX2 DFU Adapter 2001 eUSB CompactFlash Reader 4100 Kingsun SF-620 Infrared Adapter + 4101 Connectivity Cable (CA-42 clone) 4959 Kingsun KS-959 Infrared Adapter 07d1 D-Link System 13ec VvBus for Helium 2xx 13ed VvBus for Helium 2xx 13f1 DSL-302G Modem 13f2 DSL-502G Router + 3300 DWA-130 802.11n Wireless N Adapter(rev.E) [Realtek RTL8192SU] + 3302 DWA-130 802.11n Wireless N Adapter(rev.C2) [Realtek RTL8192SU] 3a07 WUA-2340 Adapter 3a08 predator Bootloader Download + 3a09 DWA-160 Xtreme N Dual Band USB Adapter(rev.A2) [Atheros AR9001U-(2)NG] 3a0d DWA-120 Wireless 108G Adapter - 3b01 AirPlus G DWL-G122 Wireless Adapter + 3a0f DWA-130 802.11n Wireless N Adapter(rev.D) [Atheros AR9001U-(2)NG] + 3b01 AirPlus G DWL-G122 Wireless Adapter(rev.D) [Marvell 88W8338+88W8010] 3b10 RangeBooster N Adapter - 3b11 Wireless N Adapter DWA-130 - 3c03 DWL-G122 802.11g Adapter [ralink rt73] + 3b11 DWA-130 802.11n Wireless N Adapter [Marvell W8360USB] + 3c03 AirPlus G DWL-G122 Wireless Adapter(rev.C1) [Ralink RT73] 3c04 WUA-1340 3c05 EH103 Wireless G Adapter 3c07 Wireless G DWA-110 Adapter - 3c09 DWA-140 802.11n Adapter [ralink rt2870] - 3c10 DWA 160A 802.11n + 3c09 DWA-140 RangeBooster N Adapter(rev.B1) [Ralink RT2870] + 3c0a DWA-140 RangeBooster N Adapter(rev.B2) [Ralink RT2870] + 3c0b DWA-110 Wireless G USB Adapter(rev.B) + 3c0d DWA-125 Wireless 150 USB Adapter + 3c0e WUA-2340 USB Adapter(rev.B) + 3c0f AirPlus G DWL-G122 Wireless Adapter(rev.E) [Ralink RT2870] + 3c10 DWA-160 Xtreme N Dual Band USB Adapter(rev.A) [Atheros AR9001U-(2)NG] + 3c11 DWA-160 Xtreme N Dual Band USB Adapter(rev.B) [Ralink RT2870] + 3c13 DWA-130 802.11n Wireless N Adapter(rev.B) [Ralink RT2870] + 3c15 DWA-140 RangeBooster N Adapter(rev.B3) [Ralink RT2870] 5100 Remote NDIS Device f101 DBT-122 Bluetooth fc01 DBT-120 Bluetooth Adapter 07d2 Aptio Products, Inc. 07d3 Cyberdata Corp. +07d5 Radiant Systems 07d7 GCC Technologies, Inc. 07da Arasan Chip Systems 07de Diamond Multimedia @@ -7190,6 +7584,7 @@ 07ef STSN 0001 Internet Access Device 07f2 Microcomputer Applications, Inc. + 0001 KEYLOK II 07f6 Circuit Assembly Corp. 07f7 Century Corp. 0005 ScanLogic/Century Corporation uATA @@ -7208,6 +7603,7 @@ 07ff Unknown 00ff Portable Hard Drive 0801 Mag-Tek + 0001 Mini Swipe Reader (Keyboard Emulation) 0002 Mini Swipe Reader 0802 Mako Technologies, LLC 0803 Zoom Telephonics, Inc. @@ -7220,6 +7616,9 @@ a312 Wireless-G 0809 Genicom Technology, Inc. 080a Evermuch Technology Co., Ltd +080b Cross Match Technologies + 0002 Fingerprint Scanner (After ReNumeration) + 0010 300LC Series Fingerprint Scanner (Before ReNumeration) 080c Datalogic S.p.A. 0300 Gryphon D120 Barcode Scanner 0400 Gryphon D120 Barcode Scanner @@ -7233,6 +7632,8 @@ 0813 Mattel, Inc. 0001 Intel Play QX3 Microscope 0002 Dual Mode Camera Plus +0819 eLicenser + 0101 License Management and Copy Protection 081a MG Logic 1000 Duo Pen Tablet 081b Indigita Corp. @@ -7288,7 +7689,7 @@ 0053 Handheld 0054 Handheld 0060 Tungsten C/E/T/T2/T3 / Zire 71 - 0061 Lifedrive / Treo 650/680 / Tunsten E2/T5/TX / Zire 21/31/72 / Z22 + 0061 Lifedrive / Treo 650/680 / Tunsten E2/T5/TX / Centro / Zire 21/31/72 / Z22 0062 Handheld 0063 Handheld 0064 Handheld @@ -7333,7 +7734,11 @@ 5501 Wireless Adapter 11g 6500 Cable Modem 6618 802.11n Wireless Adapter - 7522 802.11N Wireless Adapter + 7511 Arcadyan 802.11N Wireless Adapter + 7512 Arcadyan 802.11N Wireless Adapter + 7522 Arcadyan 802.11N Wireless Adapter + 8522 Arcadyan 802.11N Wireless Adapter + a512 Arcadyan 802.11N Wireless Adapter a618 SMC EZ Connect N Draft 11n Wireless Adapter b004 CPWUE001 USB/Ethernet Adapter b522 EZ Connect N Draft 11n Wireless USB2.0 Adapter @@ -7341,6 +7746,7 @@ c003 802.11b Wireless Adapter c501 Zoom Wireless-G c561 802.11a/g Wireless Adapter + d522 Speedport W 102 Stick IEEE 802.11n USB 2.0 Adapter e501 ZD1211B e506 WUS-201 802.11bg f501 802.11g Wireless Adapter @@ -7363,7 +7769,7 @@ 4210 WG121(v2) 54 Mbps Wireless [Intersil Prism GT] 4220 WG111(v1) 54 Mbps Wireless [Intersil Prism54 Intersil 3886] 4230 MA111(v2) 802.11b Wireless [SIS SIS 162] - 4240 WG111v2 54 Mbps Wireless [RealTek RTL8187L] + 4240 WG111(v1) rev 2 54 Mbps Wireless [Intersil Prism54 Intersil 3886] 4260 WG111v3 54 Mbps Wireless [realtek RTL8187B] 4300 WG111U Double 108 Mbps Wireless [Atheros AR5004X / AR5005UX] 4301 WG111U (no firmware) Double 108 Mbps Wireless [Atheros AR5004X / AR5005UX] @@ -7371,7 +7777,9 @@ 7100 WN121T RangeMax Next Wireless-N [Marvell TopDog] 9000 WN111(v1) RangeMax Next Wireless [Marvell TopDog] 9001 WN111(v2) RangeMax Next Wireless [Atheros AR9001U-(2)NG] - 9010 WNDA3100 802.11n + 9010 WNDA3100(v1) 802.11n [Atheros AR9001U-(2)NG] + 9011 WNDA3100(v2) 802.11n + 9040 WNA1000 Wireless-N 150 [Atheros AR9001U-(2)NG] a001 PA101 10 Mbps HPNA Home Phoneline RJ-1 084d Minton Optic Industry Co., Inc. 0001 Jenoptik JD800i @@ -7389,7 +7797,7 @@ 0850 Fast Point Technologies, Inc. 0851 Macronix International Co., Ltd 1542 SiPix Blink - 1543 Maxell WS30 Slim Digital Camera + 1543 Maxell WS30 Slim Digital Camera, or Pandigital PI8004W01 digital photo frame a168 MXIC 0852 CSEM 0853 Topre Corporation @@ -7493,8 +7901,14 @@ 0887 Hannstar Electronics Corp. 088b MassWorks, Inc. 4944 MassWorks ID-75 TouchScreen +088c Swecoin AB + 2030 Ticket Printer TTP 2030 +088e iLok + 5036 Portable secure storage for software licenses 0892 DioGraphy, Inc. 0101 Smartdio Reader/Writer +0897 Lauterbach + 0002 Power Debug/Power Debug II 089c United Technologies Research Cntr. 089d Icron Technologies Corp. 089e NST Co., Ltd @@ -7509,8 +7923,11 @@ 08bb Texas Instruments Japan 2702 Speakers 2900 PCM2900 Audio Codec + 2901 PCM2901 Audio Codec + 2902 PCM2902 Audio Codec 2904 PCM2904 Audio Codec 08bd Citizen Watch Co., Ltd + 0208 CLP-521 Label Printer 1100 X1-USB Floppy 08c3 Precise Biometrics 0001 100 SC @@ -7570,6 +7987,10 @@ 08d3 Virtual Ink 08d4 Fujitsu Siemens Computers 0009 SCR SmartCard Reader +08d8 IXXAT Automation GmbH + 0002 USB-to-CAN compact + 0003 USB-to-CAN II + 0100 USB-to-CAN 08d9 Increment P Corp. 08dd Billionton Systems, Inc. 0112 Wireless LAN Adapter @@ -7699,6 +8120,7 @@ 258d AES2501 258e AES2501 258f AES2501 + 2810 AES2810 3400 AES3400 TruePrint Sensor 3401 AES3400 Sensor 3402 AES3400 Sensor @@ -7809,6 +8231,7 @@ 0004 iQue 3600 0200 Data Card Programmer (install) 1200 Data Card Programmer + 21a5 etrex Cx (msc) 2295 Colorado 300 2353 NÌvi 205T 0920 Echelon Co. @@ -7875,6 +8298,9 @@ 1302 Wireless Broadband (3G HSDPA) SM-Bus Minicard Status Port 1303 Wireless Broadband (3G HSDPA) Minicard Status Port 1308 Broadband (3G HSDPA) SM-Bus Minicard Diagnostics Port + 130b F3507g Mobile Broadband Module + 130c F3607gw Mobile Broadband Module + 1311 F3607gw v2 Mobile Broadband Module 642f TravelDrive 6506 TravelDrive 2C 6507 TravelDrive 2C @@ -7921,11 +8347,15 @@ 0300 VideoAdvantage 0302 Syntek DC-112X 0320 VideoAdvantage + 0482 USB2.0 TVBOX 1100 DC-1100 Video Enhamcement Device 1112 Veo Web Camera a311 Video Enhancement Device 0933 Quantum Corp. 0934 Netcom Systems +0936 NuTesla + 0030 Composite Device, Mass Storage Device (Flash Drive) amd HID + 003c Rhythmedics HID Bootloader 0939 Lumberg, Inc. 093a Pixart Imaging, Inc. 0007 CMOS 100K-R Rev. 1.90 @@ -7934,11 +8364,11 @@ 020f Bullet Line Photo Viewer 050f Mars-Semi Pc-Camera 2460 Q-TEC WEBCAM 100 - 2468 Cammaestro 2.5DU/X-EYE/Orite SC-120/ICGear TravelCam/Easy Snap Snake Eye Webcam + 2468 SoC PC-Camera 2470 SoC PC-Camera 2471 SoC PC-Camera 2500 USB Optical Mouse - 2510 Hama Optical Mouse + 2510 Optical Mouse 2600 Typhoon Easycam USB 330K (newer)/Typhoon Easycam USB 2.0 VGA 1.3M/Sansun SN-508 2601 SPC 610NC Laptop Camera 2603 PAC7312 Camera @@ -7950,11 +8380,12 @@ 093b Plextor Corp. 0010 Storage Adapter 0011 PlexWriter 40/12/40U + 0041 PX-708A DVD RW 0042 PX-712UF DVD RW a002 ConvertX M402U XLOADER a003 ConvertX AV100U A/V Capture Audio a004 ConvertX TV402U XLOADER - a005 KWorld EMP Audio Device + a005 ConvertX TV100U A/V Capture a102 ConvertX M402U A/V Capture a104 ConvertX PX-TV402U/NA 093c Intrepid Control Systems, Inc. @@ -7976,6 +8407,7 @@ 0304 USB Pro (16/48) 1105 USB One 094b Linkup Systems Corp. + 0001 neonode N2 094d Cable Television Laboratories 094f Yano 0101 U640MO-03 @@ -7989,6 +8421,8 @@ 1603 DataTraveler 1GB/2GB Pen Drive 1607 DataTraveler 100 1613 DataTraveler 8GB Pen Drive + 1625 DataTraveler 101 II + 162a DataTraveler 112 4GB Pen Drive 0954 RPM Systems Corp. 0955 NVidia Corp. 0956 BSquare Corp. @@ -8010,6 +8444,9 @@ 096e Feitian Technologies, Inc. 0802 ePass2000 (G&D STARCOS SPK 2.4) 0971 Gretag-Macbeth AG + 2003 Eye-One display + 2005 Huey + 2007 ColorMunki 0973 Schlumberger 0001 e-gate Smart Card 0974 Datagraphix, a business unit of Anacomp @@ -8030,6 +8467,7 @@ 0984 Apricorn 0200 Hard Drive Storage (TPP) 0985 cab Produkttechnik GmbH & Co KG + 0045 Mach4/200 Label Printer 00a3 A3/200 or A3/300 Label Printer 0986 Matsushita Electric Works, Ltd. 098c Vitana Corp. @@ -8042,6 +8480,7 @@ 0996 Integrated Telecom Express, Inc. 099a Zippy Technology Corp. 610c EL-610 Super Mini Electron luminescent Keyboard + 7160 Hyper Slim Keyboard 09a3 PairGain Technologies 09a4 Contech Research, Inc. 09a5 VCON Telecommunications @@ -8095,6 +8534,8 @@ 0018 Trust Human Interface Device 001a Wireless Mouse & RXM-15 Receiver 002a Wireless Optical Mouse NB-30 + 022b Wireless Mouse (Battery Free) + 024f RF Receiver and G6-20D Wireless Optical Mouse 09db Measurement Computing Corp. 0075 MiniLab 1008 0076 PMD-1024 @@ -8116,6 +8557,11 @@ 4331 iRhythm Tuner Remote 09ef Xitel 0101 MD-Port DG2 MiniDisc Interface +09f3 GoFlight, Inc. + 0018 GF-46 Multi-Mode Display Module + 0028 RP-48 Combination Pushbutton-Rotary Module + 0064 MCP Pro Airliner Auto-Pilot + 0300 EFIS - Electronic Flight Information System 09f5 AresCom 0168 Network Adapter 0188 LAN Adapter @@ -8182,12 +8628,15 @@ 0052 Optio 60 Digital Camera 006e K10D 0070 K100D + 0093 K200D 00a7 Optio E50 1001 EI2000 Camera powered by Digita! 0a18 Heidelberger Druckmaschinen AG 0a19 Hua Geng Technologies, Inc. 0a21 Medtronic Physio Control Corp. 0a22 Century Semiconductor USA, Inc. +0a27 Datacard Group + 0102 SP35 0a2c AK-Modul-Bus Computer GmbH 0008 GPIO Ports 0a34 TG3 Electronics, Inc. @@ -8202,6 +8651,7 @@ 0a46 Davicom Semiconductor, Inc. 0268 ST268 6688 ZT6688 Fast Ethernet Adapter + 8515 ADMtek ADM8515 NIC 9601 DM9601 Fast Ethernet Adapter 0a47 Hirose Electric 0a48 I/O Interconnect @@ -8285,7 +8735,7 @@ 2047 Bluetooth Device 205e Bluetooth Device 2100 Bluetooth 2.0+eDR dongle - 2101 A-Link BlueUsbA2 Bluetooth + 2101 Bluetooth Controller 2102 ANYCOM Blue USB-200/250 2110 Bluetooth Controller 2111 ANYCOM Blue USB-UHE 200/250 @@ -8297,6 +8747,8 @@ 2131 2045 Bluetooth 2.0 Device with trace filter 2145 Bluetooth with Enhanced Data Rate II 2150 BCM2046 Bluetooth Device + 219b Bluetooth 2.1 Device + 21b1 HP Bluetooth Module 4500 BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth) 4502 Keyboard (Boot Interface Subclass) 5800 BCM5880 Secure Applications Processor @@ -8304,9 +8756,11 @@ 5802 BCM5880 Secure Applications Processor with fingerprint touch sensor 5803 BCM5880 Secure Applications Processor with secure keyboard 6300 Pirelli Remote NDIS Device + d11b Eminent EM4045 [Broadcom 4320 USB] 0a5d Diatrend Corp. 0a5f Zebra 0009 LP2844 Printer + 008b HC100 wristbands Printer 930a Printer 0a62 MPMan 0010 MPMan MP-F40 MP3 Player @@ -8420,6 +8874,8 @@ 0aae NEC infrontia Corp. (Nitsuko) 0aaf Digitalway Co., Ltd 0ab0 Arrow Strong Electronics Co., Ltd +0ab1 FEIG ELECTRONIC GmbH + 0002 OBID RFID-Reader 0aba Ellisys 8001 Tracker 110 Protocol Analyzer 8002 Explorer 200 Protocol Analyzer @@ -8443,6 +8899,7 @@ 307b USB 1.1 Webcam 332d Vega USB 2.0 Camera 3343 Sirius USB 2.0 Camera + 3420 Venus USB2.0 Camera c001 Sony embedded vimicro Camera c002 Visual Communication Camera VGP-VCC1 c302 Vega USB 2.0 Camera @@ -8460,9 +8917,10 @@ 0acc Koga Electronics Co. 0acd ID Tech 0401 ID TECH Spectrum III Hybrid Smartcard Reader + 0630 ID TECH Spectrum III Mag-Only Insert Reader (SPT3-355 Series) USB-CDC 0ace ZyDAS - 1201 802.11b - 1211 802.11bg + 1201 802.11b [ZyDAS ZD1201] + 1211 ZEW 2501 802.11bg Wireless Adapter 1215 WLA-54L 802.11bg 1221 ZD1221 802.11n 1602 ZyXEL Omni FaxModem 56K @@ -8512,6 +8970,9 @@ 6300 GT 3G Quad UMTS/GPRS Card 6600 GlobeTrotter 3G+ datacard 6711 GlobeTrotter Express 7.2 v2 + 6971 Globetrotter HSDPA Modem + 7501 Globetrotter HSUPA Modem (icon 411 aka "Vodafone K3760") + 7701 Globetrotter HSUPA Modem (aka icon 451) 0af6 Silver I Co., Ltd 0af7 B2C2, Inc. 0101 Digital TV USB Receiver (DVB-S/T/C / ATSC) @@ -8525,8 +8986,8 @@ 0b00 INGENICO 0b05 ASUSTek Computer, Inc. 1101 Mass Storage (UISDMC4S) - 1706 WL-167G 802.11g Adapter [ralink] - 1707 WL-167g Wireless Adapter + 1706 WL-167G v1 802.11g Adapter [Ralink RT2500USB] + 1707 WL-167G v1 802.11g Adapter [Ralink RT2500USB] 1708 Mass Storage Device 170b Mass Storage Device 170c WL-159g 802.11bg @@ -8534,23 +8995,34 @@ 1712 BT-183 Bluetooth 2.0+EDR adapter 1715 2045 Bluetooth 2.0 Device with trace filter 1716 Bluetooth Device + 1717 WL169gE 802.11g Adapter [Broadcom 4320 USB] 171b A9T wireless 802.11bg 171c 802.11b/g Wireless Network Adapter - 1723 WL-167G v2 802.11g Adapter [ralink] + 171f My Cinema U3000 Mini [DiBcom DiB7700P] + 1723 WL-167G v2 802.11g Adapter [Ralink RT73] 1724 RT2573 1726 Laptop OLED Display 172a ASUS 802.11n Network Adapter 172b 802.11n Network Adapter - 1731 ASUS 802.11n Network Adapter + 1731 802.11n Network Adapter 1732 802.11n Network Adapter 1734 ASUS AF-200 173c BT-183 Bluetooth 2.0 + 173f My Cinema U3100 Mini 1742 802.11n Network Adapter + 1743 Xonar U1 Audio Station + 1751 BT-253 Bluetooth Adapter + 1760 802.11n Network Adapter + 1761 802.11n Network Adapter + 1784 802.11n Network Adapter 6101 Cable Modem 620a Remote NDIS Device b700 Broadcom Bluetooth 2.1 +0b0b Datamax-O'Neil + 106e Datamax E-4304 0b0c Todos Data System AB 0009 Todos Argos Mini II Smart Card Reader + 003f Todos C400 smartcard controller (Handelsbanken card reader) 0b0d ProjectLab 0000 CenturyCD 0b0e GN Netcom @@ -8572,7 +9044,10 @@ 0b33 Contour Design, Inc. 0020 ShuttleXpress 0b37 Hitachi ULSI Systems Co., Ltd +0b38 Gear Head + 0010 107-Key Keyboard 0b39 Omnidirectional Control Technology, Inc. + 0001 Composite USB PS2 Converter 0109 USB TO Ethernet 0421 Serial 0801 USB-Parallel Bridge @@ -8649,6 +9124,12 @@ 0b7b Taiko Denki Co., Ltd 0b7c ITRAN Communications, Ltd 0b7d Astrodesign, Inc. +0b81 id3 Semiconductors + 0102 Certis V1 fingerprint reader + 0200 CL1356T / CL1356A / CL1356T5 smartcard readers + 0220 CL1356A FFPJP smartcard reader + 1003 CERTIS2 fingerprint reader + 1004 CERTIS2 fingerprint reader 0b84 Rextron Technology, Inc. 0b85 Elkat Electronics, Sdn., Bhd. 0b86 Exputer Systems, Inc. @@ -8693,8 +9174,9 @@ 00f9 SureConnect ADSL ATM Adapter 00fa SureConnect ADSL Loader 00fb SureConnect ADSL Ethernet/USB Router + 0111 USR5420 802.11g Adapter [Broadcom 4320 USB] 0118 U5 802.11g Adapter - 011b Wireless MAXg Adapter + 011b Wireless MAXg Adapter [Broadcom 4320] 0121 USR5423 802.11bg 6112 FaxModem Model 5633 0bb0 Concord Camera Corp. @@ -8867,10 +9349,15 @@ 0a9d SmartPhone Sync 0a9e SmartPhone Sync 0a9f SmartPhone Sync + 0b03 Ozone Mobile Broadband 0b04 Hermes / TyTN / T-Mobile MDA Vario II / O2 Xda Trion 0b06 Athena / Advantage x7500 / Dopod U1000 / T-Mobile AMEO 0b0c Elf / Touch / P3450 / T-Mobile MDA Touch / O2 Xda Nova / Dopod S1 + 0b51 Qtek 8310 mobile phone [Tornado Noble] 0bce Vario MDA + 0c01 Dream / ADP1 / G1 Phone + 0c02 Dream / ADP1 / G1 Phone (Debug) + 0fff Android Fastboot Bootloader 0bb5 Murata Manufacturing Co., Ltd 0bb6 Network Alchemy 0bb7 Joytech Computer Co., Ltd @@ -8884,7 +9371,9 @@ 0bc1 Fuw Yng Electronics Co., Ltd 0bc2 Seagate RSS LLC 2000 Storage Adapter V3 (TPP) + 2200 FreeAgent Go FW 0bc3 IPWireless, Inc. + 0001 UMTS-TDD (TD-CDMA) modem 0bc4 Microcube Corp. 0bc5 JCN Co., Ltd 0bc6 ExWAY, Inc. @@ -8918,11 +9407,11 @@ 0108 Mass Storage Device 0111 Card Reader 0113 Mass Storage Device - 0115 Mass Storage Device + 0115 Mass Storage Device (Multicard Reader) 0116 Mass Storage Device 0117 Mass Storage Device 0118 Mass Storage Device - 0151 Mass Storage Device + 0151 Mass Storage Device (Multicard Reader) 0152 Mass Storage Device 0153 Mass Storage Device 0156 Mass Storage Device @@ -8934,9 +9423,11 @@ 0171 Mass Storage Device 0176 Mass Storage Device 0178 Mass Storage Device - 2831 2831U Device + 2831 RTL2831U DVB-T + 2832 RTL2832U DVB-T 8150 RTL8150 Fast Ethernet Adapter 8151 RTL8151 Adapteon Business Mobile Networks BV + 8172 RTL8191S WLAN Adapter 8187 RTL8187 Wireless Adapter 8189 RTL8187B Wireless 802.11g 54Mbps Network Adapter 8197 RTL8187B Wireless Adapter @@ -8944,6 +9435,15 @@ 0bdb Ericsson Business Mobile Networks BV 1000 BV Bluetooth Device 1002 Bluetooth Device 1.2 + 1049 C3607w Mobile Broadband Module + 1900 F3507g Mobile Broadband Module + 1902 F3507g v2 Mobile Broadband Module + 1904 F3607gw Mobile Broadband Module + 1905 F3607gw v2 Mobile Broadband Module + 1906 F3607gw v3 Mobile Broadband Module + 1909 F3307 v2 Mobile Broadband Module + 190a F3307 Mobile Broadband Module + 190b C3607w v2 Mobile Broadband Module 0bdc Y Media Corp. 0bdd Orange PCS 0be2 Kanda Tsushin Kogyo Co., Ltd @@ -8970,6 +9470,7 @@ 0bf7 Sunny Giken, Inc. 0bf8 Fujitsu Siemens Computers 1001 Fujitsu Pocket Loox 600 PDA + 1006 SmartCard Reader 2A 0c04 MOTO Development Group, Inc. 0c05 Appian Graphics 0c06 Hasbro Games, Inc. @@ -9024,10 +9525,16 @@ ffff Bluetooth module with BlueCore in DFU mode 0c25 Sampo Corp. 0310 Scream Cam +0c26 Prolific Technology Inc. + 0018 USB-Serial Controller [Icom Inc. OPC-478UC] 0c27 RFIDeas, Inc 3bfa pcProx Card Reader 0c2e Metro + 0007 Metrologic MS7120 Barcode Scanner (IBM SurePOS mode) 0200 Metrologic Scanner + 0204 Metrologic MS7120 Barcode Scanner (keyboard mode) + 0700 Metrologic MS7120 Barcode Scanner (uni-directional serial mode) + 0720 Metrologic MS7120 Barcode Scanner (bi-directional serial mode) 0c35 Eagletron, Inc. 0c36 E Ink Corp. 0c37 e.Digital @@ -9094,7 +9601,7 @@ 6083 VideoCAM Look 608c VideoCAM Look 608e VideoCAM Look - 608f VideoCAM Look + 608f PC Camera (SN9C103 + OV7630) 60a8 VideoCAM Look 60aa VideoCAM Look 60ab PC Camera @@ -9102,8 +9609,8 @@ 60b0 Genius VideoCam Look 60c0 PC Camera with Mic (SN9C105) 60c8 Win2 PC Camera - 60cc Composite Device - 60ec Composite Device + 60cc PC Camera with Mic (SN9C105) + 60ec PC Camera with Mic (SN9C105) 60ef Win2 PC Camera 60fa PC Camera with Mic (SN9C105) 60fb Composite Device @@ -9123,6 +9630,7 @@ 613b Win2 PC Camera 613c PC Camera (SN9C120) 613e PC Camera (SN9C120) + 6143 PC Camera (SN9C120 + SP80708) 6240 PC Camera (SN9C201 + MI1300) 6242 PC Camera (SN9C201 + MI1310) 6243 PC Camera (SN9C201 + S5K4AAFX) @@ -9131,6 +9639,7 @@ 624c PC Camera (SN9C201 + MI1320) 624e PC Camera (SN9C201 + SOI968) 624f PC Camera (SN9C201 + OV9650) + 6251 PC Camera (SN9C201 + OV9650) 6253 PC Camera (SN9C201 + OV9650) 6260 PC Camera (SN9C201 + OV7670ISP) 6262 PC Camera (SN9C201 + OM6802) @@ -9150,7 +9659,7 @@ 628f PC Camera with Microphone (SN9C202 + OV9650) 62a0 PC Camera with Microphone (SN9C202 + OV7670ISP) 62a2 PC Camera with Microphone (SN9C202 + OM6802) - 62b0 PC Camera with Microphone (SN9C201 + MI0360/MT9V011 or MI0360SOC/MT9V111) + 62b0 PC Camera with Microphone (SN9C202 + MI0360/MT9V011 or MI0360SOC/MT9V111) 62b3 PC Camera with Microphone (SN9C202 + OV9655) 62ba PC Camera with Microphone (SN9C202 + S5K53BEB) 62bb PC Camera with Microphone (SN9C202 + OV7660) @@ -9158,7 +9667,9 @@ 62be PC Camera with Microphone (SN9C202 + OV7663) 62c0 Sonix USB 2.0 Camera 62e0 MSI Starcam Racer + 6310 Sonix USB 2.0 Camera 63e0 Sonix Integrated Webcam + 63f1 Integrated Webcam 63f8 Sonix Integrated Webcam 8000 DC31VC 8006 Dual Mode Camera (8006 VGA) @@ -9202,6 +9713,7 @@ 0006 Transcend JetFlash 0007 Mass Storage Device 1605 SSS Headphone Set + 1607 audio controller 0c77 Sipix Group, Ltd 1001 SiPix Web2 1002 SiPix SC2100 @@ -9293,7 +9805,7 @@ 0035 Miditech Play'n Roll 0036 Cinergy 250 Audio 0037 Cinergy 250 Audio - 0038 Cinergy T^2 DVB-T Receiver + 0038 Cinergy T² DVB-T Receiver 0039 Grabster AV 400 003b Cinergy 400 003c Grabster AV 250 @@ -9301,8 +9813,12 @@ 0043 Cinergy T XS 004e Cinergy T XS 004f Cinergy Analog XS + 0055 Cinergy T XE (Version 1, AF9005) 005c Cinergy T² - 0069 Cinergy T XE DVB-T Receiver + 0069 Cinergy T XE (Version 2, AF9015) + 0072 Cinergy Hybrid T + 0077 Aureon Dual USB + 0097 Cinergy T RC MKII 0cd4 Bang Olufsen 0101 BeolinkPC2 0cd5 LabJack Corporation @@ -9333,7 +9849,10 @@ 0020 Wi-Fi Wireless LAN Adapter 0022 802.11b/g/n Wireless Network Adapter 0023 UB81 802.11bgn + 0025 802.11b/g/n USB Wireless Network Adapter 0026 UB82 802.11abgn +0ce5 Validation Technologies International + 0003 Matrix 0ce9 pico Technology 1001 PicoScope3204 0cf1 e-Conn Electronic Co., Ltd @@ -9347,7 +9866,9 @@ 0004 AR5523 (no firmware) 0005 AR5523 0006 AR5523 (no firmware) - 1001 TG121N + 1001 Thomson TG121N [Atheros AR9001U-(2)NG] + 1002 TP-Link TL-WN821N v2 [Atheros AR9001U-(2)NG] + 3000 AR3011 9170 AR9170 802.11n 0cf4 Fomtex Corp. 0cf5 Cellink Co., Ltd @@ -9358,6 +9879,10 @@ 0cf9 Central System Research Co., Ltd 0cfa Inviso, Inc. 0cfc Minolta-QMS, Inc. + 2301 Magicolor 2300 DL + 2350 Magicolor 2350EN/3300 + 3100 Magicolor 3100 + 7300 Magicolor 5450/5550 0cff SAFA MEDIA Co., Ltd. 0320 SR-380N 0d06 telos EDV Systementwicklung GmbH @@ -9436,7 +9961,7 @@ 0d56 AVLAB Technology, Inc. 0d57 Solomon Microtech, Ltd 0d5c Belkin - a002 F5D6050 802.11b Adapter + a002 Atmel at76c503a [F5D6050 802.11b Wireless Adapter v1000] 0d5e Myacom, Ltd 2346 BT Digital Access adapter 0d5f CSI, Inc. @@ -9445,11 +9970,12 @@ 0d62 Darfon Electronics Corp. 0003 Smartcard Reader 0004 Filter Driver + 001c Benq X120 Internet Keyboard Pro 0306 M530 Mouse 0800 Magic Wheel 2021 AM805 Keyboard 2026 TECOM Bluetooth Device - a100 Benq Mouse + a100 Optical Mouse 0d63 Fritz Gegauf AG 0d64 DXG Technology Corp. 0105 Dual Mode Digital Camera 1.3M @@ -9496,6 +10022,7 @@ 1400 Attache 256MB USB 2.0 Flash Drive 1420 PS2044 Pen Drive 1470 Vosonic X's-Drive II+ VP2160 + 1620 USB Disk Pro 1900 USB Thumb Drive 0d7e American Computer & Digital Components 2507 Hi-Speed USB-to-IDE Bridge Controller @@ -9517,8 +10044,14 @@ 000c Audio Adapter 000d Composite Device 000e Audio Adapter (Planet UP-100, Genius G-Talk) + 001f CM108 Audio Controller 0102 CM106 Like Sound Device - 0103 Turtle Beach Audio Advantage Micro + 0103 CM102-A+/102S+ Audio Controller + 0104 CM103+ Audio Controller + 0105 CM108 Audio Controller + 0107 CM108 Audio Controller + 010f CM108 Audio Controller + 0115 CM108 Audio Controller 0201 CM6501 5000 Mass Storage Controller 5200 Mass Storage Controller(0D8C,5200) @@ -9558,7 +10091,7 @@ 0d8e Global Sun Technology, Inc. 0163 802.11g 54 Mbps Wireless Dongle 1621 802.11b Wireless Adapter - 3762 802.11g Wireless Mini adapter + 3762 Cohiba 802.11g Wireless Mini adapter [Intersil ISL3887] 3763 802.11g Wireless dongle 7100 802.11b Adapter 7110 WL-210 @@ -9613,8 +10146,9 @@ 5513 MP3 Player 5515 MP3 Player 5516 MP3 Player - 5581 Mega Sky 5580 DVB-T Tuner - 6823 802.11b + 5580 Mega Sky 580 DVB-T Tuner [M902x] + 5581 Mega Sky 580 DVB-T Tuner [GL861] + 6823 UB11B/MS-6823 802.11b Wi-Fi adapter 6826 IEEE 802.11g Wireless Network Adapter 6855 Bluetooth Device 6861 MSI-6861 802.11g WiFi adapter @@ -9624,7 +10158,7 @@ 6877 RT2573 6881 Bluetooth Class I EDR Device 688a Bluetooth Class I EDR Device - 6970 Bluetooth adapter + 6970 MS-6970 BToes Bluetooth adapter 697a Bluetooth Dongle 6982 Medion Flash XL Card Reader a861 RT2573 @@ -9664,6 +10198,7 @@ 0101 Hi-Speed Mass Storage Device 0dc5 SDK Co., Ltd 0dc6 Precision Squared Technology Corp. + 2301 Wireless Touchpad Keyboard 0dc7 First Cable Line, Inc. 0dcd NetworkFab Corp. 0001 Remote Interface Adapter @@ -9680,6 +10215,7 @@ 0dd8 Netac Technology Co., Ltd 1060 USB-CF-Card e007 OnlyDisk U222 Pendrive + f607 OnlyDisk U208 1G flash drive [U-SAFE] 0dd9 HighSpeed Surfing 0dda Integrated Circuit Solution, Inc. 0001 Multi-Card Reader 6in1 @@ -9726,23 +10262,43 @@ 0007 Bluetooth 2.0 Adapter 10m 000b Bluetooth 2.0 Adapter DFU 000d WL-168 Wireless Network Adapter 54g - 0017 WL-182 + 0017 WL-182 Wireless-N Network USB Card 0019 Bluetooth 2.0 adapter 10m CN-512v2 001 - 001a Bluetooth 2.0 adapter 100m CN-521v2 001 - 061c LN-028 + 001a Bluetooth 2.0 adapter 100m CN-521v2 001 + 002b WL-188 Wireless Network 300N USB Adapter + 002c WL-301 Wireless Network 300N USB Adapter + 002d WL-302 Wireless Network 300N USB dongle + 0039 WL-315 Wireless-N USB Adapter + 003b WL-321 Wireless USB Gaming Adapter 300N + 003c WL-323 Wireless-N USB Adapter + 003d WL-324 Wireless USB Adapter 300N + 003e WL-343 Wireless USB Adapter 150N X1 + 003f WL-608 Wireless USB Adapter 54g + 0040 WL-344 Wireless USB Adapter 300N X2 + 0041 WL-329 Wireless Dualband USB adapter 300N + 0042 WL-345 Wireless USB adapter 300N X3 + 0045 WL-353 Wireless USB Adapter 150N Nano + 0047 WL-352v1 Wireless USB Adapter 300N 002 + 0048 WL-349v1 Wireless USB Adapter 150N 002 + 004a WL-358v1 Wireless Micro USB Adapter 300N X3 002 + 004b WL-349v3 Wireless Micro Adapter 150N X1 [Realtek RTL8192SU] + 004c WL-352 802.11n Adapter [realtek rtl8191s] + 0050 WL-349v4 Wireless Micro Adapter 150N X1 [Ralink RT3370] + 061c LN-028 Network USB 2.0 Adapter 21f4 44 St Bluetooth Device 2200 Sitecom bluetooth2.0 class 2 dongle CN-512 2208 Sitecom bluetooth2.0 class 2 dongle CN-520 2209 Sitecom bluetooth2.0 class 1 dongle CN-521 - 9071 802.11bg - 9075 802.11bg - 90ac WL-172 - 9712 WL-113 rev 2 + 9071 WL-113 rev 1 Wireless Network USB Adapter + 9075 WL-117 Hi-Speed USB Adapter + 90ac WL-172 Wireless Network USB Adapter 54g Turbo + 9712 WL-113 rev 2 Wireless Network USB Adapter 0df7 Mobile Action Technology, Inc. 0620 MA-620 Infrared Adapter 0700 MA-700 Bluetooth Adapter 0720 MA-720 Bluetooth Adapter 0722 Bluetooth Dongle + 0730 MA-730/MA-730G Bluetooth Adapter 0800 Data Cable 0820 Data Cable 0900 MA i-gotU Travel Logger GPS @@ -9753,6 +10309,9 @@ 0001 Touchscreen 0e03 Nippon Systemware Co., Ltd 0e08 Winbest Technology Co., Ltd +0e0b Amigo Technology Inc. + 9031 802.11n Wireless USB Card + 9041 802.11n Wireless USB Card 0e0c Gesytec 0101 LonUSB LonTalk Network Adapter 0e0f VMware, Inc. @@ -9765,6 +10324,8 @@ 0e16 JMTek, LLC 0e17 Walex Electronic, Ltd 0e1b Crewave +0e20 Pegasus Technologies Ltd. + 0101 NoteTaker 0e21 Cowon Systems, Inc. 0300 iAudio CW200 0400 MP3 Player @@ -9772,6 +10333,7 @@ 0510 iAudio X5, subpack USB port 0513 iAudio X5, side USB port 0520 iAudio M5, side USB port + 0601 iAudio G3 0700 iAudio U3 0751 iAudio 7 0800 Cowon D2 (UMS mode) @@ -9788,9 +10350,11 @@ 0009 Handyscope HS3 (br) 000a Handyscope HS4 000b Handyscope HS4 (br) - 000e Handyscope HS4 Diff - 000f Handyscope HS4 Diff (br) + 000e Handyscope HS4-DIFF + 000f Handyscope HS4-DIFF (br) 0010 Handyscope HS2 + 0011 TiePieSCOPE HS805 (br) + 0012 TiePieSCOPE HS805 0018 Handyprobe HP2 0042 TiePieSCOPE HS801 00fd USB To Parallel adapter @@ -9817,6 +10381,7 @@ 0e4a Shenzhen Bao Hing Electric Wire & Cable Mfr. Co. 0e4c Radica Games, Ltd 0e55 Speed Dragon Multimedia, Ltd + 110a Tanic S110-SG1 + ISSC IS1002N [Slow Infra-Red (SIR) & Bluetooth 1.2 (Class 2) Adapter] 110b MS3303H USB-to-Serial Bridge 0e56 Kingston Technology Company, Inc. 6021 K-PEX 100 @@ -9827,13 +10392,22 @@ 6119 remote receive and control device 6441 C-Media Sound Device 0e5d Neltron Industrial Co., Ltd -0e66 Hawking - 0013 rt2870 [Hawking Hi-Gain Wireless-N] +0e5e Conwise Technology Co., Ltd. + 6622 CW6622 +0e66 Hawking Technologies + 0001 HWUN1 Hi-Gain Wireless-300N Adapter w/ Upgradable Antenna [Ralink RT2870] + 0003 HWDN1 Hi-Gain Wireless-300N Dish Adapter [Ralink RT2870] + 0009 HWUN2 Hi-Gain Wireless-150N Adapter w/ Upgradable Antenna [Ralink RT2870] + 000b HWDN2 Hi-Gain Wireless-150N Dish Adapter [Ralink RT2870] + 0013 Hi-Gain Wireless-N [Ralink RT2870] + 0017 Wireless-N Network Adapter [Ralink RT2870] + 0018 Wireless-N Network Adapter [Ralink RT2870] 400b UF100 10/100 Network Adapter 400c UF100 Ethernet [pegasus2] 0e67 Fossil, Inc. 0002 Wrist PDA 0e6a Megawin Technology Co., Ltd + 0101 MA100 [USB-UART Bridge IC] 0e70 Tokyo Electronic Industry Co., Ltd 0e72 Hsi-Chin Electronics Co., Ltd 0e75 TVS Electronics, Ltd @@ -9848,9 +10422,13 @@ 0e83 Shin An Wire & Cable Co. 0e8c Well Force Electronic Co., Ltd 0e8d MediaTek Inc. + 0003 MT6227 phone 0004 MT6227 phone 0e8f GreenAsia Inc. - 0012 Joystick + 0003 MaxFire Blaze2 + 0012 USB Wireless 2.4GHz Gamepad + 0016 4 port HUB + 0020 USB to PS/2 Adapter 0e90 WiebeTech, LLC 0100 Storage Adapter V1 0e91 VTech Engineering Canada, Ltd @@ -9860,6 +10438,7 @@ 0e96 Aplux Communications, Ltd c001 TRUST 380 USB2 SPACEC@M 0e97 Fingerworks, Inc. + 0908 Composite HID (Keyboard and Mouse) 0e98 Advanced Analogic Technologies, Inc. 0e99 Parallel Dice Co., Ltd 0e9a TA HSING Industries, Ltd @@ -9952,6 +10531,9 @@ 0006 Focuser 0007 Filter Wheel 000a ProLine CCD + 000b Color Filter Wheel 4 + 000c PDF2 + 000d Guider 0f19 Oracom Co., Ltd 0f1b Onset Computer Corp. 0f1c Funai Electric Co., Ltd @@ -9965,7 +10547,8 @@ 0f2f Priva Design Services 0f30 Jess Technology Co., Ltd 001c PS3 Guitar Controller Dongle - 0110 10-Button Joypad + 0110 Dual Analog Rumble Pad + 0111 Colour Rumble Pad 0f31 Chrysalis Development 0f32 YFC-BonEagle Electric Co., Ltd 0f37 Kokuyo Co., Ltd @@ -9996,6 +10579,22 @@ 0f61 Varian, Inc. 0f62 Acrox Technologies Co., Ltd 1001 Targus Mini Trackball Optical Mouse +0f63 LeapFrog Enterprises + 0500 Fly Fusion + 0600 Leap Port Turbo + 0700 POGO + 0800 Didj + 0900 TAGSchool + 0a00 Leapster 2 + 0b00 Crammer + 0c00 Tag Jr + 0d00 My Pal Scout + 0e00 Tag32 + 0f00 Tag64 + 1000 Kiwi16 + 1100 Leapster L2x + 1111 Fly Fusion + 1300 Didj UK/France (Leapster Advance) 0f68 Kobe Steel, Ltd 0f69 Dionex Corp. 0f6a Vibren Technologies, Inc. @@ -10055,18 +10654,24 @@ 1010 WMC Modem 10af V640i Phone [PictBridge] 10d4 C902 Phone [PictBridge] - d008 V800-Vodafone 802SE WMC Modem + d008 V800-Vodafone 802SE Phone d016 K750i Phone d017 K608i Phone d019 VDC EGPRS Modem d025 520 WMC Data Modem d038 W850i Phone + d039 K800i Phone d041 K510i Phone d042 W810i Phone + d043 V630i Phone d046 K610i Phone + d089 W580i Phone d0af V640i Phone + d0cf MD300 Mobile Broadband Modem d0d4 C902 Phone [Modem] + d0e1 MD400 Mobile Broadband Modem e042 W810i Phone + e043 V630i Phone [Mass Storage] e0af V640i Phone [Mass Storage] e0d4 C902 Phone [Mass Storage] 0fcf Dynastream Innovations, Inc. @@ -10077,7 +10682,10 @@ 0fdc Micro Plus 0fe4 IN-Tech Electronics, Ltd 0fe5 Greenconn (U.S.A.), Inc. +0fe6 Kontron (Industrial Computer Source / ICS Advent) + 8101 DM9601 Fast Ethernet Adapter 0fe9 DVICO + 4020 TViX M-6500 db00 FusionHDTV DVB-T (MT352+LgZ201) (uninitialized) db01 FusionHDTV DVB-T (MT352+LgZ201) (initialized) db10 FusionHDTV DVB-T (MT352+Thomson7579) (uninitialized) @@ -10129,6 +10737,8 @@ 3342 Cayman 3352 DSL Modem 3382 3380 Series Network Interface 6072 DSL Modem + 9031 Motorola 802.11n Dualband USB Wireless Adapter + 9032 Motorola 802.11n 5G USB Wireless Adapter cb01 Cayman 3341 Ethernet DSL Router 1010 Fukuda Denshi Co., Ltd 1011 Mobile Media Tech. @@ -10141,6 +10751,7 @@ 1017 Speedy Industrial Supplies, Pte., Ltd 1019 Elitegroup Computer Systems (ECS) 0c55 Flash Reader, Desknote UCR-61S2B + 0f38 Infrared Receiver 1020 Labtec 000a Wireless Optical Mouse 0106 Wireless Optical Mouse @@ -10181,17 +10792,22 @@ 8002 GN-BR402W 8003 GN-WLBM101 8004 GN-WLBZ101 802.11b Adapter - 8005 802.11b + 8005 GN-WLBZ201 802.11b Adapter 8006 GN-WBZB-M 802.11b Adapter 8007 GN-WBKG 8008 GN-WB01GS 800a GN-WI05GS 800b GN-WB30N 802.11n WLAN Card + 800c GN-WB31N 802.11n USB WLAN Card + 800d GN-WB32L 802.11n USB WLAN Card 1046 Winbond Electronics Corp. [hex] + 6694 Generic W6694 USB 8901 Bluetooth Device 9967 W9967CF/W9968CF Webcam IC 1048 Targus Group International 104c AMCO TEC International, Inc. +104d Newport Corporation + 1003 Model-52 LED Light Source Power Supply and Driver 104f WB Electronics 0001 Infinity Phoenix 0002 Smartmouse @@ -10215,9 +10831,13 @@ 0400 External HDD 0500 hub 0702 Passport External HDD + 0704 Passport External HDD + 070a My Passport Essential SE 0900 MyBook Essential External HDD 0901 MyBook External HDD - 1001 External Hard Disk + 0910 MyBook Essential External HDD + 1001 External Hard Disk [Elements] + 1104 MyBook Mirror Edition External HDD 1059 Giesecke & Devrient GmbH 000b StarSign Bio Token 3.0 105c Hong Ji Electric Wire & Cable (Dongguan) Co., Ltd @@ -10269,6 +10889,7 @@ 2603 Packet Service 3701 Broadband Wireless modem 3702 Pantech PX-500 + 3714 PANTECH USB MODEM [UM175] 3eb4 Packet Service Diagnostic Serial Port (WDM) 4101 Packet Service Diagnostic Serial Port (WDM) 4102 Packet Service @@ -10304,6 +10925,8 @@ 1076 GCT Semiconductor, Inc. 0031 Bluetooth Device 0032 Bluetooth Device +107b Gateway, Inc. + 3009 eHome Infrared Transceiver 107d Arlec Australia, Ltd 107e Midoriya Electric Co., Ltd 107f KidzMouse, Inc. @@ -10356,6 +10979,8 @@ 0001 SmartHome PowerLinc 10c4 Cygnal Integrated Products, Inc. 0002 F32x USBXpress Device + 8044 USB Debug Adapter + 804e Software Bisque Paramount ME 80a9 CP210x to UART Bridge Controller 80ca ATM2400 Sensor Device 8461 Sangoma U100 @@ -10369,6 +10994,7 @@ 10ce Silicon Labs ea6a MobiData EDGE USB Modem 10cf Velleman Components, Inc. + 2011 R-Engine MPEG2 encoder/decoder 5500 8055 Experiment Interface Board (address=0) 5501 8055 Experiment Interface Board (address=1) 5502 8055 Experiment Interface Board (address=2) @@ -10388,6 +11014,7 @@ 8888 ADFU Device ff51 ADFU Device ff61 MP4 Player + ff66 Craig 2GB MP3/Video Player 10de Authenex, Inc. 10df In-Win Development, Inc. 0500 iAPP CR-e500 Card reader @@ -10395,6 +11022,8 @@ 10e1 CablePlus, Ltd 10e2 Nada Electronics, Ltd 10ec Vast Technologies, Inc. +10f0 Nexio Co., Ltd + 2002 iNexio Touchscreen controller 10f5 Turtle Beach 0200 Audio Advantage Roadie 10fb Pictos Technologies, Inc. @@ -10435,12 +11064,18 @@ 8888 Evolution Device 1112 YM ELECTRIC CO., Ltd 1113 Medion AG + a0a2 Active Sync device 111e VSO Electric Co., Ltd +112a RedRat + 0001 RedRat3 IR Transceiver + 0005 RedRat3II IR Transceiver 112e Master Hill Electric Wire and Cable Co., Ltd 112f Cellon International, Inc. 1130 Tenx Technology, Inc. + 0002 iBuddy + 6604 MCE IR-Receiver 6806 Keychain photo frame - f211 audio headset + f211 TP6911 Audio Headset 1131 Integrated System Solution Corp. 1001 KY-BT100 Bluetooth Adapter 1002 Bluetooth Device @@ -10477,12 +11112,16 @@ 0601 Analog TV Tuner 0900 TigerBird BMP837 USB2.0 WDM Encoder 0bc7 Digital TV Tuner + 6601 Digital TV Tuner Card [RTL2832U] 1165 Telson Electronics Co., Ltd 1166 Bantam Interactive Technologies 1167 Salient Systems Corp. 1168 BizConn International Corp. 116e Gigastorage Corp. 116f Silicon 10 Technology Corp. + 0005 Flash Card Reader + c108 Flash Card Reader + c109 Flash Card Reader 1175 Shengyih Steel Mold Co., Ltd 117d Santa Electronic, Inc. 117e JNC, Inc. @@ -10529,6 +11168,7 @@ 6852 AirCard 880E Device 6853 AirCard 881E Device 6854 AirCard 885 Device + 6856 ATT "USB Connect 881" 6870 MC8780 Device 6871 MC8781 Device 6893 MC8777 Device @@ -10544,6 +11184,8 @@ 1518 iREZ K2 11ab Exito Electronics Co., Ltd 11b0 ATECH FLASH TECHNOLOGY +11c5 Inmax + 0521 IMT-0521 Smartcard Reader 11db Topfield Co., Ltd. 1000 PVR 1100 PVR @@ -10563,6 +11205,11 @@ 1004 IBSecureCam-O 1005 IBSecureCam-N 120e Hudson Soft Co., Ltd +120f Magellan + 5260 Triton Handheld GPS Receiver (300/400/500/1500/2000) +1210 DigiTech + 001b RP155 Guitar Multi-Effects Processor + 001c RP255 Guitar Multi-Effects Processor 121e Jungsoft Co., Ltd 3403 Muzio JM250 Audio Player 1223 SKYCABLE ENTERPRISE. CO., LTD. @@ -10578,14 +11225,19 @@ 1166 MI-2150 Trust Mouse 1177 F8E842-DL Mouse 1503 Keyboard + 1603 Keyboard 124a AirVast 168b PRISM3 WLAN Adapter 4017 PC-Chips 802.11b Adapter 124b Nyko (Honey Bee) 4d01 Airflo EX Joystick +124c MXI - Memory Experts International, Inc. + 3200 Stealth MXP 1GB 125c Apogee Inc. 0010 Alta series CCD 125f A-DATA Technology Co., Ltd. +1260 Standard Microsystems Corp. + ee22 SMC2862W-G v3 EZ Connect 802.11g Adapter [Intersil ISL3887] 1264 Covidien Energy-based Devices 1266 Pirelli Broadband Solutions 6302 Fastweb DRG A226M ADSL Router @@ -10604,8 +11256,24 @@ 1275 Xaxero Marine Software Engineering, Ltd. 0002 WeatherFax 2000 Demodulator 0080 SkyEye Weather Satellite Receiver +1283 zebris Medical GmbH + 0100 USB-RS232 Adaptor + 0110 CMS20 + 0111 CMS 10 + 0112 CMS 05 + 0114 ARCUS digma PC-Interface + 0115 SAM Axioquick recorder + 0116 SAM Axioquick recorder + 0120 emed-X + 0121 emed-AT + 0130 PDM + 0150 CMS10GI (Golf) 1286 Marvell Semiconductor, Inc. + 1fab 88W8338 [Libertas] 802.11g 8001 BLOB boot loader firmware +1291 Qualcomm Flarion Technologies, Inc. / Leadtek Research, Inc. + 0010 FDM 2xxx Flash-OFDM modem + 0011 LR7F06/LR7F14 Flash-OFDM modem 1292 Innomedia 0258 Creative Labs VoIP Blaster 1293 Belkin Components [hex] @@ -10615,6 +11283,7 @@ 129b CyberTAN Technology 1666 TG54USB 802.11bg 1667 802.11bg + 1828 Gigaset USB Adapter 300 12a7 Trendchip Technologies Corp. 12ab Honey Bee Electronic International Ltd. 12ba Licensed by Sony Computer Entertainment America @@ -10627,8 +11296,11 @@ 1003 E220 HSDPA Modem / E270 HSDPA/HSUPA Modem 1009 U120 140b EC1260 Wireless Data Modem HSD USB Card + 1446 E1552 (HSPA modem) 12d2 LINE TECH INDUSTRIAL CO., LTD. 12d6 EMS Dr. Thomas Wuensche + 0444 CPC-USB/ARM7 + 0888 CPC-USB/M16C 12d7 BETTER WIRE FACTORY CO., LTD. 12e6 Waldorf Music GmbH 0013 Blofeld @@ -10643,14 +11315,19 @@ 12ff Fascinating Electronics, Inc. 0101 Advanced RC Servo Controller 1307 Transcend Information, Inc. - 0163 512MB/1GB Flash Drive + 0163 256MB/512MB/1GB Flash Drive 0165 2GB/4GB Flash Drive 1169 TS2GJF210 JetFlash 210 2GB + 1171 Fingerprint Reader +1308 Shuttle, Inc. + 0003 VFD Module + c001 eHome Infrared Transceiver 1310 Roper 0001 Class 1 Bluetooth Dongle 1312 ICS Electronics 131d Natural Point 0155 TrackIR 3 Pro Head Tracker + 0156 TrackIR 4 Pro Head Tracker 132b Konica Minolta 0000 Dimage A2 Camera 0001 Minolta DiMAGE A2 (ptp) @@ -10671,6 +11348,16 @@ 0019 Dimage A200 Camera 0021 Dimage Z5 Camera 0022 Minolta DiMAGE Z5 (PictBridge mode) + 002c Dynax 5D camera + 2001 Magicolor 2400w + 2004 Magicolor 5430DL + 2005 Magicolor 2430 DL + 2029 Magicolor 5440DL + 2030 PagePro 1350E(N) + 2033 PagePro 1400W + 2043 Magicolor 2530DL + 2045 Magicolor 2500W + 2049 Magicolor 2490MF 1342 Mobility 0200 EasiDock 200 Hub 0201 EasiDock 200 Keyboard and Mouse Port @@ -10678,6 +11365,19 @@ 0203 EasiDock 200 Printer Port 0204 Ethernet 0304 EasiDock Ethernet +1345 Sino Lite Technology Corp. + 001c Xbox Controller Hub +1347 Moravian Instruments + 0400 G2CCD USB 1.1 obsolete + 0401 G2CCD-S with Sony ICX285 CCD + 0402 G2CCD2 + 0403 G2/G3CCD-I KAI CCD + 0404 G2/G3CCD-F KAF CCD + 0410 G1-0400 CCD + 0411 G1-0800 CCD + 0412 G1-0300 CCD + 0413 G1-2000 CCD + 0414 G1-1400 CCD 1348 Katsuragawa Electric Co., Ltd. 134e Digby's Bitpile, Inc. DBA D Bit 1357 P&E Microcomputer Systems @@ -10718,15 +11418,22 @@ 13b0 PerkinElmer Optoelectronics 000a Alesis Photon X25 MIDI Controller 13b1 Linksys + 000a WUSB54G v2 802.11g Adapter [Intersil ISL3887] 000b WUSB11 v4.0 802.11b Adapter - 000d WUSB54G Wireless Adapter - 0011 WUSB54GP v4.0 802.11g Adapter + 000d WUSB54G v4 802.11g Adapter [Ralink RT2500USB] + 000e WUSB54GS v1 802.11g Adapter [Broadcom 4320 USB] + 0011 WUSB54GP v4.0 802.11g Adapter [Ralink RT2500USB] + 0014 WUSB54GS v2 802.11g Adapter [Broadcom 4320 USB] 0018 USB200M 10/100 Ethernet Adapter 001a HU200TS Wireless Adapter 001e WUSBF54G 802.11bg - 0020 WUSB54GC 802.11g Adapter [ralink rt73] + 0020 WUSB54GC v1 802.11g Adapter [Ralink RT73] 0023 WUSB54GR 0024 WUSBF54G v1.1 802.11bg + 0026 WUSB54GSC v1 802.11g Adapter [Broadcom 4320 USB] + 0028 WUSB200 [ralink rt73] + 002f AE1000 v1 802.11n [Ralink RT2870] + 0031 AM10 v1 802.11n [Ralink RT2870] 13b3 Nippon Dics Co., Ltd. 13ba Unknown 0017 PS/2 Keyboard+Mouse Adapter @@ -10734,6 +11441,7 @@ 13ca JyeTai Precision Industrial Co., Ltd. 13cf Wisair Ltd. 13d1 A-Max Technology Macao Commercial Offshore Co. Ltd. + 7019 MD 82288 13d2 Shark Multimedia 0400 Pocket Ethernet [klsi] 13d3 IMC Networks @@ -10758,6 +11466,7 @@ 3223 DNTV Live! Tiny USB2 BDA (No Remote) 3224 DNTV Live! Tiny USB2 BDA (No Remote) 3226 DigitalNow TinyTwin DVB-T Receiver + 3234 DVB-T FTA Half Minicard [RTL2832U] 3236 DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver 3237 DTV-DVB UDTT 704J - dual DVB-T Driver 3239 DTV-DVB UDTT704D - DVBT/NTSC/PAL Driver(Without HID) @@ -10767,6 +11476,11 @@ 3243 DTV-DVB UDXTTM6010 - A/D Driver(Without HID) 3244 DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver 3247 802.11 n/g/b Wireless LAN Adapter + 3262 802.11 n/g/b Wireless LAN USB Adapter + 3273 802.11 n/g/b Wireless LAN USB Mini-Card + 3274 DVB-T Dongle [RTL2832U] + 3282 DVB-T + GPS Minicard [RTL2832U] + 3284 Wireless LAN USB Mini-Card 7020 DTV-DVB UDST7020BDA DVB-S Box(DVBS for MCE2005) 7022 DTV-DVB UDST7022BDA DVB-S Box(Without HID) 13dc ALEREON, INC. @@ -10775,12 +11489,17 @@ 13e5 Rane 0001 SL-1 13e6 TechnoScope Co., Ltd. +13ec Zydacron + 0006 HID Remote Control 13fd Initio Corporation + 0841 Samsung SE-T084M DVD-RW + 1340 Hi-Speed USB to SATA Bridge 13fe Kingston Technology Company Inc. 1a00 512MB/1GB Flash Drive 1a23 512MB Flash Drive 1d00 DataTraveler 2.0 1GB/4GB Flash Drive / Patriot Xporter 4GB Flash Drive 1f00 DataTraveler 2.0 4GB Flash Drive / Patriot Xporter 32GB (PEF32GUSB) Flash Drive + 3100 2 GB USB stick 1400 Axxion Group Corp. 1402 Bowe Bell & Howell 1403 Sitronix @@ -10792,9 +11511,15 @@ 1110 Merlin S620 1120 Merlin EX720 1130 Merlin S720 - 1400 Merlin U740 + 1400 Merlin U730/U740 (Vodafone) + 1410 Merlin U740 (non-Vodafone) + 1430 Merlin XU870 + 1450 Merlin X950D 2110 Ovation U720/MCD3000 + 2410 Expedite EU740 + 2420 Expedite EU850D/EU860D/EU870D 4100 U727 + 4400 Ovation MC930D/MC950D 1415 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. 0000 Sony SingStar USBMIC 0020 Sony Wireless SingStar @@ -10802,8 +11527,10 @@ 1419 ABILITY ENTERPRISE CO., LTD. 1429 Vega Technologies Industrial (Austria) Co. 142a Thales E-Transactions + 0003 Artema Hybrid 0005 Artema Modular 0043 medCompact +142b Arbiter Systems, Inc. 1430 RedOctane 4734 Guitar Hero4 hub 1431 Pertech Resources, Inc. @@ -10815,6 +11542,8 @@ 0829 AR5523 (no firmware) 1436 Denali Software, Inc. 143c Altek Corporation +1443 Digilent + 0007 CoolRunner-II CPLD Starter Kit 1453 Radio Shack 4026 26-183 Serial Cable 1456 Extending Wire & Cable Co., Ltd. @@ -10833,14 +11562,21 @@ 013f Megapixel Auto Focus Webcam 0142 WB-6250X Webcam 015a WB-8300X 2MP Webcam +1460 Tatung Co. + 9150 eHome Infrared Transceiver 1461 Staccato Communications 1462 Micro Star International 5512 MegaStick-1 Flash Stick + 8807 DIGIVOX mini III [af9015] 1472 Huawei-3Com 0009 Aolynk WUB320g 147a Formosa Industrial Computing, Inc. e015 eHome Infrared Receiver e016 eHome Infrared Receiver + e017 eHome Infrared Receiver + e018 eHome Infrared Receiver + e03a eHome Infrared Receiver + e03c eHome Infrared Receiver 147e Upek 1000 Biometric Touchchip/Touchstrip Fingerprint Sensor 2016 Biometric Touchchip/Touchstrip Fingerprint Sensor @@ -10855,10 +11591,16 @@ 148e EVATRONIX SA 148f Ralink Technology, Corp. 1706 RT2500USB Wireless Adapter - 2570 802.11g WiFi - 2573 RT2501USB Wireless Adapter - 2671 RT2601USB Wireless Adapter - 3070 RT2870 Wireless Adapter + 2070 RT2070 Wireless Adapter + 2570 RT2570 Wireless Adapter + 2573 RT2501/RT2573 Wireless Adapter + 2671 RT2601/RT2671 Wireless Adapter + 2770 RT2770 Wireless Adapter + 2870 RT2870 Wireless Adapter + 3070 RT2870/RT3070 Wireless Adapter + 3071 RT3071 Wireless Adapter + 3072 RT3072 Wireless Adapter + 3572 RT3572 Wireless Adapter 9020 RT2500USB Wireless Adapter 9021 RT2501USB Wireless Adapter 1497 Panstrong Company Ltd. @@ -10868,7 +11610,8 @@ 0001 Avermedia AverTV DVBT USB1.1 (cold) 0002 Avermedia AverTV DVBT USB1.1 (warm) 0201 AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (cold) - 0221 AVermedia DVBT Tuner Dongle + 0221 WT-220U DVB-T dongle + 022b WT-220U DVB-T dongle 0301 AVermedia/Yakumo/Hama/Typhoon DVB-T USB2.0 (warm) 14ad CTK Corporation 14ae Printronix Inc. @@ -10877,6 +11620,7 @@ 14b2 Ralink Technology, Corp. 3a93 USB WLAN Device 3c02 rt2500 802.11g WLAN + 3c05 rt2570 802.11g WLAN 3c22 rt73 802.11g WLAN 3c27 rt2870 802.11n WLAN 14c0 Rockwell Automation, Inc. @@ -10889,6 +11633,8 @@ 6900 Card Reader 14d8 JAMER INDUSTRIES CO., LTD. 14dd Raritan Computer, Inc. +14e1 Dialogue Technology Corp. + 5000 PenMount 5000 Touch Controller 14e5 SAIN Information & Communications Co., Ltd. 14ea Planex Communications ab10 GW-US54GZ @@ -10897,10 +11643,13 @@ 14ed Shure Inc. 1500 Ellisys 1501 Pine-Tum Enterprise Co., Ltd. +1509 First International Computer, Inc. + 9242 eHome Infrared Transceiver 1513 Hypercom + 0444 medMobile 1516 CompUSA 1603 1GB Flash Drive - 8628 128M Pen Drive + 8628 Pen Drive 1518 Cheshire Engineering Corp. 0001 HDReye High Dynamic Range Camera 0002 HDReye (before firmware loads) @@ -10915,6 +11664,7 @@ 152d JMicron Technology Corp. / JMicron USA Technology Corp. 2335 ATA/ATAPI Bridge 2336 Hard Disk Drive + 2337 ATA/ATAPI Bridge 2338 JM20337 Hi-Speed USB to SATA & PATA Combo Bridge 152e LG (HLDS) e001 GSA-5120D DVD-RW @@ -10963,11 +11713,31 @@ 9015 AF9015 DVB-T USB2.0 stick 9016 AF9015 DVB-T USB2.0 stick 15a8 Teams Power Limited +15a9 Gemtek + 0004 WUBR177G + 0006 Wireless 11n USB Adapter + 0010 802.11n USB Wireless Card 15aa Gearway Electronics (Dong Guan) Co., Ltd. 15ba Olimex Ltd. 0003 OpenOCD JTAG 0004 OpenOCD JTAG TINY +15c0 XL Imaging + 0001 2M pixel Microscope Camera + 0002 3M pixel Microscope Camera + 0003 1.3M pixel Microscope Camera (mono) + 0004 1.3M pixel Microscope Camera (colour) + 0005 3M pixel Microscope Camera (Mk 2) + 0006 2M pixel Microscope Camera (with capture button) + 0007 3M pixel Microscope Camera (with capture button) + 0008 1.3M pixel Microscope Camera (colour, with capture button) + 0009 1.3M pixel Microscope Camera (colour, with capture button) + 000a 2M pixel Microscope Camera (Mk 2) + 0010 1.3M pixel "Tinycam" + 0101 3M pixel Microscope Camera 15c2 SoundGraph Inc. + 0036 LC16M VFD Display/IR Receiver + 0038 GD01 MX VFD Display/IR Receiver + ffda iMON PAD Remote Controller ffdc iMON PAD Remote Controller 15c6 Laboratoires MXM 1000 DigistimSP (cold) @@ -10978,8 +11748,10 @@ 15ca Textech International Ltd. 00c3 Mini Optical Mouse 15d5 Coulomb Electronics Ltd. -15d9 Unknown +15d9 Trust International B.V. + 0a33 Optical Mouse 0a37 Mouse + 0a41 MI-2540D [Optical mouse] 15dc Hynix Semiconductor Inc. 15e0 Seong Ji Industrial Co., Ltd. 15e1 RSA @@ -11094,6 +11866,8 @@ 0311 Watchport/Hc 1403 MultiTech Systems MT4X56 Modem 1a17 Agilent Technologies (E6473) +160a VIA Technologies, Inc. + 3184 VIA VNT-6656 [WiFi 802.11b/g USB Dongle] 1614 Amoi Electronics 0404 WMA9109 UMTS Phone 0600 Vodafone VDA GPS / Toschiba Protege G710 @@ -11152,6 +11926,7 @@ 0441 IBM Integrated Bluetooth II 0500 BTM200B BlueTooth Adapter 1050 802.11g Wireless Mini adapter + 1200 802AIN Wireless N Network Adapter [Atheros AR9001U] 1441 IBM Integrated Bluetooth II 2441 BMDC-2 IBM Bluetooth III w.56k 3441 IBM Integrated Bluetooth III @@ -11164,6 +11939,8 @@ 1677 China Huada Integrated Circuit Design (Group) Co., Ltd. (CIDC Group) 1679 Total Phase 2001 Beagle USB 12 Protocol Analyzer +1680 Golden Bridge Electech Inc. + a332 DVB-T Dongle [RTL2832U] 1681 Prevo Technologies, Inc. 0001 Tuner's Dashboard 1682 Maxwise Production Enterprise Ltd. @@ -11173,6 +11950,7 @@ 1686 ZOOM Corporation 0045 H4 Digital Recorder 1687 Kingmax Digital Inc. +1688 Saab AB 168c Atheros Communications 0001 AR5523 0002 AR5523 (no firmware) @@ -11199,7 +11977,7 @@ 0711 SMCWUSBT-G (no firmware) 0712 AR5523 0713 AR5523 (no firmware) - 0715 Voyager 1055 Laptop Adapter + 0715 Name: Voyager 1055 Laptop 802.11g Adapter [Broadcom 4320] 0722 RT2573 0726 Wi-Fi Wireless LAN Adapter 0901 Voyager 205 ADSL Router @@ -11243,6 +12021,14 @@ 16d3 Frontline Test Equipment, Inc. 16d5 AnyDATA Corporation 6501 CDMA 2000 1xRTT/EV-DO Modem + 6502 CDMA/UMTS/GPRS modem +16d6 JABLOCOM s.r.o. + 8000 GDP-04 desktop phone + 8001 EYE-02 + 8003 GDP-04 modem + 8004 Bootloader + 8005 GDP-04i + 8007 BTP-06 modem 16d8 CMOTECH Co., Ltd. 5141 CMOTECH CDMA Technologies modem 5533 CCU-550 CDMA EV-DO modem @@ -11259,18 +12045,39 @@ 170b Swissonic 0011 MIDI-USB 1x1 170d Avnera +1726 Axesstel, Inc. + 1000 wireless modem + 2000 wireless modem + 3000 wireless modem 172f Waltop International Corp. + 0038 Genius G-Pen F509 1733 Cellink Technology Co., Ltd 0101 RF Wireless Optical Mouse OP-701 1736 CANON IMAGING SYSTEM TECHNOLOGIES INC. 1737 Linksys 0039 USB1000 + 0070 WUSB100 RangePlus Wireless USB Adapter + 0071 WUSB600N Dual-Band Wireless-N USB Network Adapter + 0073 WUSB54GC v2 802.11g Adapter [Realtek RTL8187B] + 0075 WUSB54GSC v2 802.11g Adapter + 0077 WUSB54GC v3 802.11g Adapter [Ralink RT2870] + 0078 WUSB100 RangePlus Wireless USB Network Adapter ver. 2 + 0079 WUSB600N Wireless-N USB Network Adapter with Dual-Band ver. 2 1740 Senao + 0605 LevelOne WUA-0605 N_Max Wireless USB Adapter + 0615 LevelOne WUA-0615 N_Max Wireless USB Adapter 2000 NUB-8301 802.11bg + 9701 EnGenius 802.11n Wireless USB Adapter + 9702 EnGenius 802.11n Wireless USB Adapter + 9703 EnGenius 802.11n Wireless USB Adapter + 9705 EnGenius 802.11n Wireless USB Adapter + 9706 EnGenius 802.11n Wireless USB Adapter 1743 General Atomics 174c ASMedia Technology Inc. 174f Syntek + 1105 SM-MS/Pro-MMC-XD Card Reader 1403 Integrated Webcam + 1404 USB Camera device, 1.3 MPixel Web Cam 5212 USB 2.0 UVC PC Camera 5a11 PC Camera 5a31 Sonix USB 2.0 Camera @@ -11287,6 +12094,8 @@ a821 Web Cam - Packard Bell BU45, PB Easynote MX66-208W aa11 Web Cam 1759 LucidPort Technology, Inc. +1761 ASUSTek Computer, Inc. (wrong ID) + 0b05 802.11n Network Adapter (wrong ID - swapped vendor and device) 1772 System Level Solutions, Inc. 1776 Arowana 501c 300K CMOS Camera @@ -11294,14 +12103,31 @@ 0313 LW313 802.11n Adapter [ralink rt2770 + rt2720] 1781 Multiple Vendors 083e MetaGeek Wi-Spy + 083f MetaGeek Wi-Spy 2.4x 0938 Iguanaworks USB IR Transceiver 1782 Spreadtrum Communications Inc. 1784 TopSeed Technology Corp. + 0001 eHome Infrared Transceiver + 0006 eHome Infrared Transceiver + 0007 eHome Infrared Transceiver + 0008 eHome Infrared Transceiver + 000a eHome Infrared Transceiver 1788 ShenZhen Litkconn Technology Co., Ltd. 1796 Printrex, Inc. 1797 JALCO CO., LTD. +1799 Belkin Components + 7051 F5D7051 802.11g Adapter v1000 [Broadcom 4320] +179d Ricavision International, Inc. + 0010 Internal Infrared Transceiver 17a0 Samson Technologies Corp. 0001 C01U condenser microphone + 0002 Q1U dynamic microphone + 0100 C03U multi-pattern microphone + 0101 UB1 boundary microphone + 0200 StudioDock monitors (internal hub) + 0201 StudioDock monitors (audio) + 0301 Q2U handheld microphone with XLR + 0302 GoMic compact condenser microphone 17a4 Concept2 0001 Performance Monitor 3 0002 Performance Monitor 4 @@ -11324,35 +12150,66 @@ 0051 USB VGA Adaptor 17eb Cornice, Inc. 17ef Lenovo + 1003 Integrated Smart Card Reader 3815 ChipsBnk 2GB USB Stick 4802 Lenovo Vc0323+MI1310_SOC Camera + 4807 UVC Camera 17f5 K.K. Rocky 17f6 Unicomp, Inc +1809 Advantech + 4761 USB-4761 Portable Data Acquisition Module 1822 Twinhan 3201 VisionDTV USB-Ter/HAMA USB DVB-T device cold 3202 VisionDTV USB-Ter/HAMA USB DVB-T device warm 1831 Gwo Jinn Industries Co., Ltd. 1832 Huizhou Shenghua Industrial Co., Ltd. +183d VIVOphone + 0010 VoiceKey 1854 Memory Devices Ltd. 185b Compro + 3020 K100 Infrared Receiver + 3082 K100 Infrared Receiver v2 d000 Compro Videomate DVB-U2000 - DVB-T USB cold d001 Compro Videomate DVB-U2000 - DVB-T USB warm 1861 Tech Technology Industrial Company 1862 Teridian Semiconductor Corp. +1870 Nexio Co., Ltd + 0001 iNexio Touchscreen controller 1871 Aveo Technology Corp. + 0d01 USB2.0 Camera +187f Siano Mobile Silicon + 0010 Stallar Board + 0100 Stallar Board + 0200 Nova A + 0201 Nova B + 0202 Nice + 0300 Vega + 0301 VeNice 1894 Topseed 5632 Atek Tote Remote 5641 TSAM-004 Presentation Remote 1897 Evertop Wire Cable Co. +18a5 Verbatim, Ltd + 0214 Portable Hard Drive + 0216 External Hard Drive + 0218 External Hard Drive 18b4 e3C Technologies 1001 DUTV007 + 1002 EC168 (v5) based USB DVB-T receiver 1689 DUTV009 + fffa EC168 (v2) based USB DVB-T receiver + fffb EC168 (v3) based USB DVB-T receiver 18b6 Mikkon Technology Limited 18b7 Zotek Electronic Co., Ltd. -18c5 AMIT +18c5 AMIT Technology, Inc. 0002 CG-WLUSB2GO + 0008 CG-WLUSB2GNR Corega Wireless USB Adapter + 0012 CG-WLUSB10 Corega Wireless USB Adapter 18cd Ecamm cafe Pico iMage +18d1 Google Inc. + 4e11 Nexus One Phone + 4e12 Nexus One Phone (Debug) 18d5 Starline International Group Limited 18d9 Kaba 01a0 B-Net 91 07 @@ -11371,16 +12228,51 @@ 18fd FineArch Inc. 190d Motorola GSG 1914 Alco Digital Devices Limited -1915 Linksys - 2233 WUSB11 v2.8 802.11b Adapter - 2234 WUSB54G 802.11g Adapter - 2236 WUSB11 v3.0 802.11b Adapter +1915 Nordic Semiconductor ASA + 2233 Linksys WUSB11 v2.8 802.11b Adapter + 2234 Linksys WUSB54G v1 OEM 802.11g Adapter [Intersil ISL3886] + 2235 Linksys WUSB54GP v1 OEM 802.11g Adapter [Intersil ISL3886] + 2236 Linksys WUSB11 v3.0 802.11b Adapter +1926 NextWindow + 0003 1900 HID Touchscreen + 0006 1950 HID Touchscreen + 0064 1950 HID Touchscreen + 0065 1950 HID Touchscreen + 0066 1950 HID Touchscreen + 0067 1950 HID Touchscreen + 0068 1950 HID Touchscreen + 0069 1950 HID Touchscreen + 0071 1950 HID Touchscreen + 0072 1950 HID Touchscreen + 0073 1950 HID Touchscreen + 0074 1950 HID Touchscreen + 0075 1950 HID Touchscreen + 0076 1950 HID Touchscreen + 0077 1950 HID Touchscreen + 0078 1950 HID Touchscreen + 0079 1950 HID Touchscreen + 007a 1950 HID Touchscreen + 007e 1950 HID Touchscreen + 007f 1950 HID Touchscreen + 0080 1950 HID Touchscreen + 0081 1950 HID Touchscreen + 0082 1950 HID Touchscreen + 0083 1950 HID Touchscreen + 0084 1950 HID Touchscreen + 0085 1950 HID Touchscreen + 0086 1950 HID Touchscreen + 0087 1950 HID Touchscreen 192f Avago Technologies, Pte. 1930 Shenzhen Xianhe Technology Co., Ltd. 1931 Ningbo Broad Telecommunication Co., Ltd. +1934 Feature Integration Technology Inc. (Fintek) + 0602 F71610 or F71612 Consumer Infrared Receiver/Transceiver + 0702 Integrated Consumer Infrared Receiver/Transceiver + 5168 F71610A or F71612A Consumer Infrared Receiver/Transceiver 1941 Dream Link 8021 USB Missile Launcher 1949 Lab126 + 0002 Amazon Kindle 1951 Hyperstone AG 1953 Ironkey Inc. 1954 Radiient Technologies @@ -11388,6 +12280,7 @@ 7002 Libra-Q11 IR remote 7006 Libra-Q26 / 1.0 Remote 7777 Scorpius wireless keyboard + 7779 Scorpius-P20MT 1967 CASIO HITACHI Mobile Communications Co., Ltd. 196b Wispro Technology Inc. 1970 Dane-Elec Corp. USA @@ -11413,6 +12306,8 @@ 0101 Handheld Digital Microscope 44302 19b5 B & W Group 19b6 Infotech Logistic, LLC +19b9 Data Robotics + 8d20 Drobo Elite 19ca Mindtribe 0001 Sandio 3D HID Mouse 19cf Parrot SA @@ -11420,12 +12315,15 @@ 0002 ET502HS/MT505UP ZTE MF632 0031 ZTE MF636 0064 ZTE MF627 AU + 0103 ZTE MF112 2000 ZTE MF627/MF628/MF628+ HSDPA 19e1 WeiDuan Electronic Accessory (S.Z.) Co., Ltd. 19e8 Industrial Technology Research Institute 19ef Pak Heng Technology (Shenzhen) Co., Ltd. 19f7 RODE Microphones 0001 Podcaster +19fa Gampaq Co.Ltd + 0703 Steering Wheel 19ff Dynex 0102 1.3MP Webcam 0201 Rocketfish Wireless 2.4G Laser Mouse @@ -11435,6 +12333,8 @@ 1a12 KES Co., Ltd. 1a25 Amphenol East Asia Ltd. 1a2a Seagate Branded Solutions +1a32 Quanta Microsystems, Inc. + 0304 802.11n Wireless LAN Card 1a36 Biwin Technology Ltd. 1a40 TERMINUS TECHNOLOGY INC. 0101 USB-2.0 4-Port HUB @@ -11450,8 +12350,11 @@ 1a6f Sagem Orga GmbH 1a79 Bayer Health Care LLC 1a7b Lumberg Connect GmbH & Co. KG -1a86 Unknown +1a86 QinHeng Electronics + 5523 CH341 in serial mode, usb to serial port converter + 5584 CH341 in parallel mode, usb to printer port converter 7523 HL-340 USB-Serial adapter + e008 HID-based USB-serial converter, full-speed, similar to HE2325U 1a89 Dynalith Systems Co., Ltd. 1a8b SGS Taiwan Ltd. 1a98 Leica Camera AG @@ -11463,6 +12366,7 @@ 1ae4 ic-design Reinhard Gottinger GmbH 1ae7 X-TENSIONS 0381 VS-DVB-T 380U (af9015 based) + 2001 SpeedLink SL-6825 1aed High Top Precision Electronic Co., Ltd. 1aef Conntech Electronic (Suzhou) Corporation 1b04 Meilhaus Electronic GmBH @@ -11583,9 +12487,12 @@ 1b5a Chao Zhou Kai Yuan Electric Co., Ltd. 1b65 The Hong Kong Standards and Testing Centre Ltd. 1b72 ATERGI TECHNOLOGY CO., LTD. +1b75 Ovislink Corp. + 3072 AirLive WN-360USB adapter 1b76 Legend Silicon Corp. 1b80 Afatech - c810 AF9015 BDA Device + c810 MC810 [af9015] + d396 UB396-T [RTL2832U] 1b86 Dongguan Guanshang Electronics Co., Ltd. 1b88 ShenMing Electron (Dong Guan) Co., Ltd. 1b8c Altium Limited @@ -11600,6 +12507,7 @@ 1ba2 Lite Metals & Plastic (Shenzhen) Co., Ltd. 1ba4 Ember Corporation 0001 InSight USB Link +1ba6 Abilis Systems 1ba8 China Telecommunication Technology Labs 1bad Harmonix Music 0002 Guitar for Xbox 360 @@ -11639,9 +12547,12 @@ 1c3e Wep Peripherals 1c49 Cherng Weei Technology Corp. 1c4f SiGma Micro + 0003 HID controller 3000 Micro USB Web Camera 1c6b Philips & Lite-ON Digital Solutions Corporation 1c6c Skydigital Inc. +1c73 AMT + 861f Anysee E30 USB 2.0 DVB-T Receiver 1c77 Kaetat Industrial Co., Ltd. 1c78 Datascope Corp. 1c79 Unigen Corporation @@ -11675,11 +12586,20 @@ 1d07 Solid-Motion 1d08 NINGBO HENTEK DRAGON ELECTRONICS CO., LTD. 1d09 TechFaith Wireless Technology Limited + 1026 HSUPA Modem FLYING-LARK46-VER0.07 [Flying Angel] 1d0a Johnson Controls, Inc. The Automotive Business Unit 1d0b HAN HUA CABLE & WIRE TECHNOLOGY (J.X.) CO., LTD. 1d14 ALPHA-SAT TECHNOLOGY LIMITED +1d19 Dexatek Technology Ltd. + 1101 DK DVB-T Dongle + 1102 DK mini DVB-T Dongle + 1103 DK 5217 DVB-T Dongle 1d1f Diostech Co., Ltd. 1d20 SAMTACK INC. +1d4d PEGATRON CORPORATION + 0002 Ralink RT2770/2720 802.11b/g/n Wireless LAN Mini-USB Device + 000c Ralink RT3070 802.11b/g/n Wireless Lan USB Device + 000e Ralink RT3070 802.11b/g/n Wireless Lan USB Device 1d50 OpenMoko, Inc. 1d5b Smartronix, Inc. 1d6b Linux Foundation @@ -11688,6 +12608,9 @@ 0003 3.0 root hub 0100 PTP Gadget 0101 Audio Gadget +1e0e Qualcomm / Option +1e10 Point Grey Research, Inc. + 2004 Sony 1.3MP 1/3" ICX445 IIDC video camera [Chameleon] 1e1f INVIA 1e29 Festo AG & Co. KG 0101 CPX Adapter @@ -11697,35 +12620,55 @@ 2030 2030 USB Keyboard 1e68 TrekStor GmbH & Co. KG 001b DataStation maxi g.u +1e71 NZXT + 0001 Avatar Optical Mouse +1e74 Coby Electronics Corporation + 6511 MP705-8G MP3 player + 6512 MP705-4G +1e7d ROCCAT + 2ced Kone Mouse 1ebb NuCORE Technology, Inc. +1eda AirTies Wireless Networks + 2310 802.11n USB Wireless LAN Card 1f28 Cal-Comp + 0020 CDMA USB Modem A600 + 0021 CD INSTALLER USB Device +1f4d G-Tek Electronics Group + b803 Lifeview LV5TDLX DVB-T [RTL2832U] +1f82 TANDBERG + 0001 PrecisionHD Camera +1f84 Inverness Medical Innovations, Inc. +1f87 Stantum +1fe7 Vertex Wireless Co., Ltd. + 1000 VW100 series CDMA EV-DO Rev.A modem 2001 D-Link Corp. [hex] 0001 DWL-120 WIRELESS ADAPTER 0201 DHN-120 10Mb Home Phoneline Adapter 1a00 10/100 Ethernet 200c 10/100 Ethernet 3200 DWL-120 802.11b (Atmel RFMD503A) [usbvnetr] + 3301 DWA-130 802.11n Wireless N Adapter(rev.C1) [Realtek RTL8192U] 3500 Elitegroup Computer Systems WLAN card WL-162 - 3700 DWL-122 802.11b - 3701 DWL-G120 Spinnaker 802.11b + 3700 DWL-122 802.11b [Intersil Prism 3] + 3701 DWL-G120 Spinnaker 802.11g [Intersil ISL3886] 3702 DWL-120 rev F - 3703 DWL-122 802.11b - 3704 DWL-G122 802.11g rev. A2 + 3703 AirPlus G DWL-G122 Wireless Adapter [Intersil ISL3886] + 3704 AirPlus G DWL-G122 Wireless Adapter(rev.A2) [Intersil ISL3887] 3705 AirPlus G DWL-G120 Wireless Adapter(rev.C) 3761 IEEE 802.11g USB2.0 Wireless Network Adapter-PN - 3a00 DWL-AG132 - 3a01 DWL-AG132 (no firmware) - 3a02 DWL-G132 - 3a03 DWL-G132 (no firmware) - 3a04 DWL-AG122 - 3a05 DWL-AG122 (no firmware) + 3a00 DWL-AG132 [Atheros AR5523] + 3a01 DWL-AG132 (no firmware) [Atheros AR5523] + 3a02 DWL-G132 [Atheros AR5523] + 3a03 DWL-G132 (no firmware) [Atheros AR5523] + 3a04 DWL-AG122 [Atheros AR5523] + 3a05 DWL-AG122 (no firmware) [Atheros AR5523] 3a80 AirPlus Xtreme G DWL-G132 Wireless Adapter 3a81 predator Bootloader Download 3a82 AirPremier AG DWL-AG132 Wireless Adapter 3a83 predator Bootloader Download 3b00 AirPlus DWL-120+ Wireless Adapter 3b01 WLAN Boot Device - 3c00 DWL-G122 802.11g rev. B1 [ralink] + 3c00 AirPlus G DWL-G122 Wireless Adapter(rev.B1) [Ralink RT2500USB] 3c01 AirPlus AG DWL-AG122 Wireless Adapter 3c02 AirPlus G DWL-G122 Wireless Adapter 3c05 DUB-E100 Fast Ethernet [asix] @@ -11742,6 +12685,7 @@ 9b00 Broadband Cable Modem Remote NDIS Device abc1 DSB-650 Ethernet [pegasus] f013 DLink 7 port USB2.0 Hub + f103 DUB-H7 7-port USB 2.0 hub f10d Accent Communications Modem f110 DUB-AV300 A/V Capture f111 DBT-122 Bluetooth adapter @@ -11749,27 +12693,60 @@ f116 Formosa 2 f117 Formosa 3 f118 Formosa 4 +2013 Unknown (Pinnacle?) + 0245 PCTV 73ESE + 0246 PCTV 74E + 0248 PCTV 282E 2019 PLANEX 3220 GW-US11S WLAN 5303 GW-US54GXS 802.11bg 5304 GWUS300 802.11n ab01 GW-US54HP + ab24 GW-US300MiniS + ab25 150N Wireless LAN USB Adapter ab50 GW-US54Mini2 c002 GW-US54SG c007 GW-US54GZL ed02 GW-USMM 2040 Hauppauge + 0c80 Windham + 0c90 Windham + 1700 CataMount + 1800 Okemo A + 1801 Okemo B + 2000 Tiger Minicard + 2009 Tiger Minicard R2 + 200a Tiger Minicard + 2010 Tiger Minicard 2011 WinTV MiniCard [Dell Digital TV Receiver] + 2019 Tiger Minicard 2400 WinTV PVR USB2 (Model 24019) 4700 WinTV Nova-S-USB2 + 4902 HD PVR + 4982 HD PVR + 5500 Windham + 5510 Windham + 5520 Windham + 5530 Windham + 5580 Windham + 5590 Windham + 6500 WinTV HVR-900 6502 WinTV HVR-900 6503 WinTV HVR-930 6513 WinTV HVR-980 7050 Nova-T Stick 7060 Nova-T Stick 2 7070 Nova-T Stick 3 + 7240 WinTV HVR-850 9300 WinTV NOVA-T USB2 (cold) 9301 WinTV NOVA-T USB2 (warm) + b910 Windham + b980 Windham + b990 Windham + c000 Windham + c010 Windham +2047 Texas Instruments + 0200 MSP430 USB HID Bootstrap Loader 20b1 XMOS Ltd 10ad XUSB Loader f7d1 X2TAG - USB to JTAG interface @@ -11781,6 +12758,8 @@ 2031 Network Blaster Wireless Adapter 500c DE5771 Modem Blaster 8001 Broadxent BritePort DSL Bridge 8010U +21d6 Agecodagis SARL + 0002 Seismic recorder [Tellus] 2222 MacAlly 0004 iWebKey Keyboard 4050 AirStick joystick @@ -11788,6 +12767,8 @@ 3105 SKYDATA SKD-U100 2233 RadioShack Corporation 6323 USB Electronic Scale +2237 Kobo Inc. + 4161 eReader White 22b8 Motorola PCS 0001 Wally 2.2 chipset 0002 Wally 2.4 chipset @@ -11830,6 +12811,8 @@ 4002 A920/A925 UMTS Phone 4003 OMAP 1.0 chipset flash 4008 OMAP 1.0 chipset RDL + 41d9 Motorola Droid + 41db Motorola Droid (USB Debug) 4204 MPx200 Smartphone 4214 MPc GSM 4224 MPx220 Smartphone @@ -11871,7 +12854,7 @@ 7001 Q Smartphone 22b9 eTurboTouch Technology, Inc. 22ba Technology Innovation Holdings, Ltd -2304 Pinnacle Systems, Inc. [hex] +2304 Pinnacle Systems, Inc. 0109 Studio PCTV USB (SECAM) 0110 Studio PCTV USB (PAL) 0111 Miro PCTV USB @@ -11897,13 +12880,20 @@ 021f PCTV Sat HDTV Pro BDA Device 0222 PCTV Sat Pro BDA Device 0223 DazzleTV Sat BDA Device + 0225 Remote Kit Infrared Transceiver 0226 PCTV 330e 0227 PCTV for Mac, HD Stick 0228 PCTV DVB-T Flash Stick + 0229 PCTV Dual DVB-T 2001e 022a PCTV 160e - 022b PCTV 71e + 022b PCTV 71e [Afatech AF9015] 0232 PCTV 170e - 0237 PCTV nano stick + 0236 PCTV 72e [DiBcom DiB7000PC] + 0237 PCTV 73e [DiBcom DiB7000PC] + 023a PCTV 801e + 023b PCTV 801e SE + 023d PCTV 340e + 023e PCTV 340e SE 0300 Studio Linx Video input cable (NTSC) 0301 Studio Linx Video input cable (PAL) 0302 Dazzle DVC120 @@ -12017,7 +13007,9 @@ 1f50 DAQPad-6036E 2f80 DAQPad-6052E 2f90 DAQPad-6052E + 702b GPIB-USB-B 703c USB-485 RS485 Cable + 709b GPIB-USB-HS 7254 NI MIO (data acquisition card) firmware updater 729e USB-6251 (OEM) data acquisition card 40bb I-O Data @@ -12032,12 +13024,15 @@ 1008 iFP-800 series mp3/ogg vorbis player 100a iFP-1000 series mp3/ogg vorbis player 1014 T20 series mp3/ogg vorbis player (ums firmware) + 1019 T30 + 1041 E100 (ums) 1101 iFP-100 series mp3 player (ums firmware) 1103 iFP-300 series mp3 player (ums firmware) 1105 iFP-500 series mp3 player (ums firmware) 1113 T10 (alternate) 1117 T10 1119 T30 series mp3/ogg/wma player + 1141 E100 (mtp) 2002 H10 6GB 2101 H10 20GB (mtp) 2102 H10 5GB (mtp) @@ -12047,13 +13042,16 @@ 1001 Keyboard Hub 1002 Keyboard Hub 1003 Keyboard Hub + 1005 Multimedia Pro Keyboard Hub 2001 Keyboard HID Support 2002 SK-8125 Keyboard 2003 Keyboard 2005 RT7D50 Keyboard + 2011 Multimedia Pro Keyboard 2100 SK-3106 Keyboard 2101 SmartCard Reader Keyboard 2105 Model L100 Keyboard + 2106 Dell QuietKey Keyboard 2500 DRAC4 Remote Access Card 3010 Optical Wheel Mouse 3012 Optical Wheel Mouse @@ -12132,10 +13130,14 @@ 8138 Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard EAP-SIM Port 8140 Wireless 360 Bluetooth 8142 Mobile 360 in DFU + 8147 F3507g Mobile Broadband Module 8156 Wireless 370 Bluetooth Mini-card 8157 Integrated Keyboard 8158 Integrated Touchpad / Trackstick + 8183 F3607gw Mobile Broadband Module + 8184 F3607gw v2 Mobile Broadband Module 8501 Bluetooth Adapter + 9500 USB CP210x UART Bridge Controller [DW700] a001 Hub a005 Internal 2.0 Hub a700 Hub (in 1905FP LCD Monitor) @@ -12145,6 +13147,11 @@ 4242 USB Design by Example 4201 Buttons and Lights HID device 4220 Echo 1 Camera +4317 Broadcom Corp. + 0700 U.S. Robotics USR5426 802.11g Adapter + 0701 U.S. Robotics USR5425 Wireless MAXg Adapter + 0711 Belkin F5D7051 v3000 802.11g + 0720 Dynex DX-BUSB 4348 WinChipHead 5523 USB->RS 232 adapter with Prolifec PL 2303 chipset 5537 13.56Mhz RFID Card Reader and Writer @@ -12163,13 +13170,15 @@ 7288 Ultra Traveldrive 160G 2.5" HDD 4971 SimpleTech cb01 SP-U25/120G + ce17 1TB SimpleDrive II USB External Hard Drive 5032 Grandtec 0bb8 Grandtec USB1.1 DVB-T (cold) 0bb9 Grandtec USB1.1 DVB-T (warm) 0fa0 Grandtec USB1.1 DVB-T (cold) 0fa1 Grandtec USB1.1 DVB-T (warm) 5041 Linksys (?) - 2234 WUSB54G 802.11g Adapter + 2234 WUSB54G v1 802.11g Adapter [Intersil ISL3886] + 2235 WUSB54GP v1 802.11g Adapter [Intersil ISL3886] 50c2 Averatec (?) 4013 WLAN Adapter 5173 Sweex @@ -12184,6 +13193,16 @@ 0005 Genius MousePen 8x6 Tablet 0041 Genius PenSketch 6x8 Tablet 0042 Genius PenSketch 12x9 Tablet +5555 Epiphan Systems Inc. + 1110 VGA2USB + 1120 KVM2USB + 2222 DVI2USB + 3333 VGA2USB Pro + 3337 KVM2USB Pro + 3340 VGA2USB LR + 3344 KVM2USB LR + 3411 DVI2USB Solo + 3422 DVI2USB Duo 55aa OnSpec Electronic, Inc. 0015 Hard Drive 0102 SuperDisk @@ -12199,6 +13218,8 @@ b200 Compact Flash Reader b204 MMC/ SD Reader b207 Memory Stick Reader +5656 Uni-Trend Group Limited + 0832 UT2000/UT3000 Digital Storage Oscilloscope 595a IRTOUCHSYSTEMS Co. Ltd. 0001 Touchscreen 5986 Acer, Inc @@ -12206,8 +13227,15 @@ 0101 USB2.0 Camera 0102 Crystal Eye Webcam 0200 OrbiCam + 0203 BisonCam NB Pro 1300 5a57 Zinwell 0260 RT2570 + 0280 802.11a/b/g/n USB Wireless LAN Card + 0282 802.11b/g/n USB Wireless LAN Card + 0283 802.11b/g/n USB Wireless LAN Card + 0284 802.11a/b/g/n USB Wireless LAN Card + 0290 ZW-N290 802.11n [Realtek RTL8192SU] + 5257 Metronic 495257 wifi 802.11ng 6189 Sitecom 182d USB 2.0 Ethernet 2068 USB to serial cable (v2) @@ -12222,15 +13250,21 @@ 0667 WiseGroup Smart Joy PSX, PS-PC Smart JoyPad 2667 JCOP BlueZ Smartcard reader 8804 WiseGroup SuperJoy Box 5 +6677 WiseGroup, Ltd. + 8811 Deluxe Dance Mat 6891 3Com a727 3CRUSB10075 802.11bg +695c Opera1 + 3829 Opera1 DVB-S (warm state) 6993 Freshtel b001 FT-102 VoIP USB Phone 6a75 Shanghai Jujo Electronics Co., Ltd 7104 CME (Central Music Co.) 2202 UF5/UF6/UF7/UF8 MIDI Master Keyboard -7392 EDIMAX Technology - 7717 7717Un 802.11n adapter +7392 Edimax Technology Co., Ltd + 7711 EW-7711UTn nLite Wireless Adapter [Ralink RT2870] + 7717 EW-7717UN 802.11n Wireless Adapter [Ralink RT2870] + 7718 EW-7718UN 802.11n Wireless Adapter [Ralink RT2870] 8086 Intel Corp. 0001 AnyPoint (TM) Home Network 1.6 Mbps Wireless Adapter 0100 Personal Audio Player 3000 @@ -12258,12 +13292,15 @@ 3241 AnyPoint® 3240 Modem 8602 Miniature Card Slot 9303 Intel 8x930Hx Hub + 9500 CE 9500 DVB-T 9890 82930 Test Board beef SCM Miniature Card Reader/Writer c013 Wireless HID Station f001 XScale PXA27x Bulverde flash + f1a5 Z-U130 [Value Solid State Drive] 8087 Intel Corp. 0020 Integrated Rate Matching Hub + 0024 Integrated Rate Matching Hub 8341 EGO Systems, Inc. 2000 Flashdisk 9016 Sitecom @@ -12273,12 +13310,33 @@ 0004 R3 Compatible Device 9710 MosChip Semiconductor 7703 MCS7703 Serial Port Adapter - 7705 Printer cable - 7715 Printer cable - 7780 MS7780 4Mbps Fast IRDA Adapter - 7830 MCS7830 Ethernet + 7705 MCS7705 Parallel port adapter + 7715 MCS7715 Parallel and serial port adapter + 7717 MCS7717 3-port hub with serial and parallel adapter + 7720 MCS7720 Dual serial port adapter + 7780 MCS7780 4Mbps Fast IrDA Adapter + 7830 MCS7830 10/100 Mbps Ethernet adapter + 7840 MCS7820/MCS7840 2/4 port serial adapter 99fa Grandtec 8988 V.cap Camera Device +a128 AnMo Electronics Corp. / Dino-Lite (?) + 0610 Dino-Lite Digital Microscope (SN9C201 + HV7131R) + 0611 Dino-Lite Digital Microscope (SN9C201 + HV7131R) + 0612 Dino-Lite Digital Microscope (SN9C120 + HV7131R) + 0613 Dino-Lite Digital Microscope (SN9C201 + HV7131R) + 0614 Dino-Lite Digital Microscope (SN9C201 + MI1310/MT9M111) + 0615 Dino-Lite Digital Microscope (SN9C201 + MI1310/MT9M111) + 0616 Dino-Lite Digital Microscope (SN9C120 + HV7131R) + 0617 Dino-Lite Digital Microscope (SN9C201 + MI1310/MT9M111) + 0618 Dino-Lite Digital Microscope (SN9C201 + HV7131R) +a168 AnMo Electronics Corporation + 0610 Dino-Lite Digital Microscope + 0611 Dino-Lite Digital Microscope + 0613 Dino-Lite Digital Microscope + 0614 Dino-Lite Pro Digital Microscope + 0615 Dino-Lite Pro Digital Microscope + 0617 Dino-Lite Pro Digital Microscope + 0618 Dino-Lite Digital Microscope a600 Asix e110 OK1ZIA Davac 4.x a727 3Com @@ -12289,8 +13347,12 @@ abcd Unknown cdee Petcam c251 Keil Software, Inc. 2710 ULink +cace CACE Technologies Inc. + 0002 AirPCAP Classic 802.11 packet capture adapter + 0300 AirPcap NX [Atheros AR9001U-(2)NG] d209 Ultimarc 0301 I-PAC Arcade Control Interface + 0501 Ultra-Stik Ultimarc Ultra-Stik Player 1 e4e4 Xorcom Ltd. 1130 Astribank series 1131 Astribank series @@ -12309,14 +13371,18 @@ eb03 MakingThings eb1a eMPIA Technology, Inc. 17de KWorld V-Stream XPERT DTV - DVB-T USB cold 17df KWorld V-Stream XPERT DTV - DVB-T USB warm + 2571 M035 Compact Web Cam 2710 SilverCrest Webcam 2750 ECS Elitegroup G220 integrated Webcam 2761 EeePC 701 integrated Webcam 2800 Terratec Cinergy 200 2801 GrabBeeX+ Video Encoder 2870 Pinnacle PCTV Stick + 2881 EM2881 Video Controller 50a3 Gadmei UTV380 TV Box 50a6 Gadmei UTV330 TV Box + e355 KWorld DVB-T 355U Digital TV Dongle +eb2a KWorld f003 Hewlett Packard 6002 PhotoSmart C500
diff --git a/src/initscripts/helper/getdnsfromdhcpc.pl b/src/initscripts/helper/getdnsfromdhcpc.pl index 980d87a..e4d461d 100644 --- a/src/initscripts/helper/getdnsfromdhcpc.pl +++ b/src/initscripts/helper/getdnsfromdhcpc.pl @@ -42,6 +42,6 @@ if (open(FILE, "${General::swroot}/red/iface")) {
$dns = $dhcpc{'domain_name_servers'};
-@alldns = split(',', $dns); +@alldns = split(' ', $dns);
print "$alldns[$count - 1]\n"; diff --git a/src/initscripts/init.d/dnsmasq b/src/initscripts/init.d/dnsmasq index eaa55ce..0dfb1f4 100644 --- a/src/initscripts/init.d/dnsmasq +++ b/src/initscripts/init.d/dnsmasq @@ -28,11 +28,15 @@ case "${1}" in echo > /var/ipfire/red/resolv.conf # Clear it if [ -e "/var/ipfire/red/dns1" ]; then DNS1=$(cat /var/ipfire/red/dns1 2>/dev/null) - echo "nameserver ${DNS1}" >> /var/ipfire/red/resolv.conf + if [ ! -z ${DNS1} ]; then + echo "nameserver ${DNS1}" >> /var/ipfire/red/resolv.conf + fi fi if [ -e "/var/ipfire/red/dns2" ]; then DNS2=$(cat /var/ipfire/red/dns2 2>/dev/null) - echo "nameserver ${DNS2}" >> /var/ipfire/red/resolv.conf + if [ ! -z ${DNS2} ]; then + echo "nameserver ${DNS2}" >> /var/ipfire/red/resolv.conf + fi fi [ -e "/var/ipfire/red/active" ] && ARGS="$ARGS -r /var/ipfire/red/resolv.conf" diff --git a/src/initscripts/init.d/firewall b/src/initscripts/init.d/firewall index 9b70869..a2b3fd0 100644 --- a/src/initscripts/init.d/firewall +++ b/src/initscripts/init.d/firewall @@ -176,8 +176,8 @@ case "$1" in /sbin/iptables -A FORWARD -j IPSECFORWARD /sbin/iptables -A FORWARD -j OPENSSLVIRTUAL -m comment --comment "OPENSSLVIRTUAL FORWARD" /sbin/iptables -A OUTPUT -j IPSECOUTPUT - #/sbin/iptables -t nat -N IPSECNAT - #/sbin/iptables -t nat -A POSTROUTING -j IPSECNAT + /sbin/iptables -t nat -N IPSECNAT + /sbin/iptables -t nat -A POSTROUTING -j IPSECNAT
# Outgoing Firewall /sbin/iptables -A FORWARD -j OUTGOINGFW diff --git a/src/initscripts/init.d/functions b/src/initscripts/init.d/functions index ea840d1..00cd6fa 100644 --- a/src/initscripts/init.d/functions +++ b/src/initscripts/init.d/functions @@ -438,7 +438,7 @@ loadproc() { local pidfile="" local forcestart="" - local nicelevel="10" + local nicelevel=""
# This will ensure compatibility with previous LFS Bootscripts if [ -n "${PIDFILE}" ]; then @@ -500,7 +500,13 @@ loadproc() esac fi
- nice -n "${nicelevel}" "${@}" + local cmd="${@}" + + if [ -n "${nicelevel}" ]; then + cmd="nice -n "${nicelevel}" ${cmd}" + fi + + ${cmd} evaluate_retval # This is "Probably" not LSB compliant, but required to be compatible with older bootscripts return 0 } diff --git a/src/initscripts/init.d/leds b/src/initscripts/init.d/leds new file mode 100644 index 0000000..4e678c5 --- /dev/null +++ b/src/initscripts/init.d/leds @@ -0,0 +1,70 @@ +#!/bin/sh +######################################################################## +# Begin $rc_base/init.d/leds +# +# Description : Script to setup leds at boot. +# +######################################################################## + +. /etc/sysconfig/rc +. ${rc_functions} + +# Load ethernet settings +eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) + +setup_red_modem() { + local led1=${1} + local led2=${2} + + modprobe ledtrig-netdev + + local i + for i in ${led1} ${led2}; do + echo "netdev" > ${i}/trigger + echo "${RED_DEV}" > ${i}/device_name + done + + echo "rx" > ${led1}/mode + echo "tx" > ${led2}/mode +} + +reset_trigger() { + [ -d "${1}" ] || return 0 + echo "none" > ${1}/trigger +} + +start_alix2() { + modprobe -q leds-alix2 &>/dev/null + + local i + for i in 1 2 3; do + if [ ! -d "/sys/class/leds/alix:${i}" ]; then + return 1 + fi + done + + setup_red_modem /sys/class/leds/alix:2 /sys/class/leds/alix:3 +} + +stop_alix2() { + local i + for i in 1 2 3; do + reset_trigger /sys/class/leds/alix:${i} + done +} + +case "${1}" in + start|stop) + for i in alix2; do + ${1}_${i} + done + exit 0 + ;; + + *) + echo "Usage: ${0} {start|stop}" + exit 1 + ;; +esac + +# End $rc_base/init.d/leds diff --git a/src/initscripts/init.d/mISDN b/src/initscripts/init.d/mISDN index 3437bf9..49f00b0 100644 --- a/src/initscripts/init.d/mISDN +++ b/src/initscripts/init.d/mISDN @@ -26,6 +26,7 @@ case "${1}" in done
modprobe mISDN_dsp + modprobe mISDN_dsp_oslec if [ ${?} = 0 ]; then echo_ok; else @@ -39,16 +40,12 @@ case "${1}" in boot_mesg "Stopping mISDNv2 ... "
# unload mISDN hardware modules - for module in mISDN_dsp hfcpci hfcsusb hfcmulti avmfritz speedfax mISDNinfineon xhfc mISDNipac mISDNisar; do + for module in mISDN_dsp_oslec mISDN_dsp hfcpci hfcsusb hfcmulti avmfritz speedfax mISDNinfineon xhfc mISDNipac mISDNisar; do rmmod $module > /dev/null 2>&1; done
- rmmod mISDN_core - if [ ${?} = 0 ]; then - echo_ok; - else - echo_failure; - fi + rmmod mISDN_core > /dev/null 2>&1 + echo_ok; exit 0; ;;
diff --git a/src/initscripts/init.d/modules b/src/initscripts/init.d/modules index 6be87f4..a51694a 100644 --- a/src/initscripts/init.d/modules +++ b/src/initscripts/init.d/modules @@ -54,14 +54,12 @@ case "${1}" in
# Attempt to load the module, making # sure to pass any arguments provided. - modprobe ${module} ${args} 2>&1 > /dev/null + modprobe ${module} ${args} &>/dev/null
# Print the module name if successful, # otherwise take note. if [ ${?} -eq 0 ]; then boot_mesg -n " ${module}" ${NORMAL} - else - failedmod="${failedmod} ${module}" fi done
@@ -70,13 +68,6 @@ case "${1}" in # modules on the correct line. echo_ok
- # Print a failure message with a list of any - # modules that may have failed to load. - if [ "${failedmod}" ]; then - boot_mesg "Failed to load modules:${failedmod}" ${FAILURE} - echo_failure - fi - exec 0>&9 9>&-
fi diff --git a/src/initscripts/init.d/network b/src/initscripts/init.d/network index 9c7e3ac..7f27a65 100644 --- a/src/initscripts/init.d/network +++ b/src/initscripts/init.d/network @@ -27,7 +27,12 @@ init_networking() { done (exit ${failed}) evaluate_retval - + + if [ -e /var/ipfire/main/disable_nf_sip ]; then + rmmod nf_nat_sip + rmmod nf_conntrack_sip + fi + boot_mesg "Setting up firewall" /etc/rc.d/init.d/firewall start; evaluate_retval
diff --git a/src/initscripts/init.d/networking/dhcpcd.exe b/src/initscripts/init.d/networking/dhcpcd.exe index d69f53d..0d06bcb 100644 --- a/src/initscripts/init.d/networking/dhcpcd.exe +++ b/src/initscripts/init.d/networking/dhcpcd.exe @@ -49,7 +49,7 @@ dhcpcd_up() fi
#Get IP Address - echo "$new_ip_address" > /var/ipfire/red/local-ipaddress + echo -n "$new_ip_address" > /var/ipfire/red/local-ipaddress
#Get default gateway grep -v " gateway$" /etc/hosts > /tmp/hosts @@ -59,7 +59,7 @@ dhcpcd_up() fi if [ $update ]; then [ -e "/var/ipfire/red/active" ] || touch /var/ipfire/red/active - echo "$new_routers" > /var/ipfire/red/remote-ipaddress + echo -n "$new_routers" > /var/ipfire/red/remote-ipaddress logger -p local0.info -t dhcpcd.exe[$$] "$interface has been (re)configured with IP=$new_ip_address" run_subdir ${rc_base}/init.d/networking/red.up/ touch /var/ipfire/red/active diff --git a/src/initscripts/init.d/networking/red b/src/initscripts/init.d/networking/red index f60c0d1..a574050 100644 --- a/src/initscripts/init.d/networking/red +++ b/src/initscripts/init.d/networking/red @@ -220,7 +220,7 @@ case "${1}" in fi elif [ "$TYPE" == "PPPOE" ]; then - + if ( ps ax | grep -q [p]ppd ); then boot_mesg "pppd is still running." ${FAILURE} echo_failure @@ -230,7 +230,10 @@ case "${1}" in eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings) [ -c "/dev/ppp" ] || mknod /dev/ppp c 108 0 - + + # We force the plugin method, anyway. + METHOD="PPPOE_PLUGIN" + PPP_NIC=${DEVICE}
if [ "$TYPE" == "vdsl" ]; then @@ -370,7 +373,7 @@ case "${1}" in # if [ "$TYPE" == "pppoe" ]; then [ "${METHOD}" == "PPPOE_PLUGIN" ] && \ - PLUGOPTS="plugin /usr/lib/pppd/2.4.4/rp-pppoe.so" + PLUGOPTS="plugin rp-pppoe.so" fi
### Synchronous Mode diff --git a/src/initscripts/init.d/networking/red.up/50-ovpn b/src/initscripts/init.d/networking/red.up/50-ovpn index ace5ee2..a53b920 100644 --- a/src/initscripts/init.d/networking/red.up/50-ovpn +++ b/src/initscripts/init.d/networking/red.up/50-ovpn @@ -1,5 +1,5 @@ #!/bin/bash
-/usr/local/bin/openvpnctrl -s +/usr/local/bin/openvpnctrl -s > /dev/null 2>&1
exit 0 diff --git a/src/initscripts/init.d/ntp b/src/initscripts/init.d/ntp index 825a0e8..ef94de1 100644 --- a/src/initscripts/init.d/ntp +++ b/src/initscripts/init.d/ntp @@ -4,8 +4,15 @@ . /etc/sysconfig/rc . $rc_functions
+eval $(/usr/local/bin/readhash /var/ipfire/time/settings) + case "$1" in start) + if [ "$ENABLESETONBOOT" == "on" ]; then + boot_mesg "Setting time on booot..." + loadproc /usr/local/bin/settime $(cat /var/ipfire/time/settime.conf) + fi + boot_mesg "Starting ntpd..." loadproc /usr/bin/ntpd -Ap /var/run/ntpd.pid ;; diff --git a/src/initscripts/init.d/openvmtools b/src/initscripts/init.d/openvmtools new file mode 100755 index 0000000..c1588e1 --- /dev/null +++ b/src/initscripts/init.d/openvmtools @@ -0,0 +1,64 @@ +#!/bin/sh +######################################################################## +# Begin $rc_base/init.d/ +# +# Description : init-script for open-vm-tools +# +# Authors : earl +# +# Version : 00.01 +# +# Notes : +# +######################################################################## + +. /etc/sysconfig/rc +. ${rc_functions} + +case "${1}" in + start) + if ps ax | grep -v grep | grep /usr/bin/vmtoolsd > /dev/null + then + boot_mesg "vmtoolsd is running..." + echo_warning + else + if /usr/bin/vmware-checkvm > /dev/null 2>&1; then + boot_mesg "Starting..." + /usr/bin/vmtoolsd & + echo_ok + else + boot_mesg "IPFire is not running in a virtual machine." + echo_failure + fi + fi + ;; + + stop) + if ps ax | grep -v grep | grep /usr/bin/vmtoolsd > /dev/null + then + boot_mesg "Stopping..." + killall /usr/bin/vmtoolsd > /dev/null + echo_ok + else + boot_mesg "vmtoolsd is not running..." + echo_warning + fi + ;; + + restart) + ${0} stop + sleep 1 + ${0} start + ;; + + status) + statusproc /usr/bin/vmtoolsd + ;; + + *) + echo "Usage: ${0} {start|stop|restart}" + exit 1 + ;; +esac + +# End $rc_base/init.d/ diff --git a/src/initscripts/init.d/pound b/src/initscripts/init.d/pound new file mode 100644 index 0000000..185ad61 --- /dev/null +++ b/src/initscripts/init.d/pound @@ -0,0 +1,58 @@ +#!/bin/sh + +. /etc/sysconfig/rc +. ${rc_functions} + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +test -x /usr/sbin/pound || exit 0 + +# For configuration of the init script use the file +# /etc/sysconfig/pound, do not edit this init script. + +# Set run_pound to 1 to start pound or 0 to disable it. +run_pound=0 + +# Specify additional pound options here (see manpage). +pound_options="" + +# Specify module to load +pound_module="none" + +[ -e /etc/sysconfig/pound ] && . /etc/sysconfig/pound + +DAEMON=/usr/sbin/pound + +case "${1}" in + start) + boot_mesg "Starting pound ..." + if [ $run_pound = 1 ] + then + # do we have to load a module? + [ ${pound_module:-none} != "none" ] && /sbin/modprobe $pound_module + + loadproc $DAEMON $pound_options + fi + ;; + + stop) + boot_mesg "Stopping pound ..." + killproc $DAEMON + ;; + + restart) + ${0} stop + sleep 1 + ${0} start + ;; + + status) + statusproc $DAEMON + ;; + + *) + echo "Usage: ${0} {start|stop|restart|status}" + exit 1 + ;; +esac + diff --git a/src/initscripts/init.d/rc b/src/initscripts/init.d/rc index 38d4ae2..94e7a08 100644 --- a/src/initscripts/init.d/rc +++ b/src/initscripts/init.d/rc @@ -71,8 +71,12 @@ fi #Start all functions in this runlevel for i in $( ls -v ${rc_base}/rc${runlevel}.d/S* 2> /dev/null) do + suffix=${i#$rc_base/rc$runlevel.d/S[0-9][0-9]} + + # Skip if initskript is disabled at bootprompt + grep "skipinit=$suffix" /proc/cmdline > /dev/null && continue + if [ "${previous}" != "N" ]; then - suffix=${i#$rc_base/rc$runlevel.d/S[0-9][0-9]} stop=$rc_base/rc$runlevel.d/K[0-9][0-9]$suffix prev_start=$rc_base/rc$previous.d/S[0-9][0-9]$suffix
diff --git a/src/initscripts/init.d/snort b/src/initscripts/init.d/snort index a2db0de..b157b80 100644 --- a/src/initscripts/init.d/snort +++ b/src/initscripts/init.d/snort @@ -20,52 +20,63 @@ PATH=/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin; export PATH eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) eval $(/usr/local/bin/readhash /var/ipfire/snort/settings)
-if [ "$ENABLE_SNORT_ORANGE" == "on" ]; then - HOME_NET+="$ORANGE_ADDRESS," - DEVICES+="$ORANGE_DEV " -fi +case "$1" in + start) + if [ "$BLUE_NETADDRESS" ]; then + BLUE_NET="$BLUE_NETADDRESS/$BLUE_NETMASK," + BLUE_IP="$BLUE_ADDRESS," + fi
-if [ "$ENABLE_SNORT_GREEN" == "on" ]; then - HOME_NET+="$GREEN_ADDRESS," - DEVICES+="$GREEN_DEV " -fi + if [ "$ORANGE_NETADDRESS" ]; then + ORANGE_NET="$ORANGE_NETADDRESS/$ORANGE_NETMASK," + ORANGE_IP="$ORANGE_ADDRESS," + fi
-if [ "$ENABLE_SNORT_BLUE" == "on" ]; then - HOME_NET+="$BLUE_ADDRESS," - DEVICES+="$BLUE_DEV " -fi + if [ "$ENABLE_SNORT_ORANGE" == "on" ]; then + DEVICES+="$ORANGE_DEV " + HOMENET+="$ORANGE_IP" + else + HOMENET+="$ORANGE_NET" + fi
-if [ "$ENABLE_SNORT" == "on" ]; then - LOCAL_IP=`cat /var/ipfire/red/local-ipaddress` - if [ "$LOCAL_IP" ]; then - HOME_NET+="$LOCAL_IP," - else - exit 1 ## Add error handling here - fi - DEVICES+=`cat /var/ipfire/red/iface 2>/dev/null` -fi + if [ "$ENABLE_SNORT_BLUE" == "on" ]; then + DEVICES+="$BLUE_DEV " + HOMENET+="$BLUE_IP" + else + HOMENET+="$BLUE_NET" + fi
-COUNT=`echo $HOME_NET | wc -m` -HOME_NET=`echo $HOME_NET | cut -c $[$COUNT - 2]` - -echo "var HOME_NET [$HOME_NET]" > /etc/snort/vars -echo "var EXTERNAL_NET ANY" >> /etc/snort/vars + if [ "$ENABLE_SNORT_GREEN" == "on" ]; then + DEVICES+="$GREEN_DEV " + HOMENET+="$GREEN_ADDRESS," + else + HOMENET+="$GREEN_NETADDRESS/$GREEN_NETMASK," + fi
-DNS1=`cat /var/ipfire/red/dns1 2>/dev/null` -DNS2=`cat /var/ipfire/red/dns2 2>/dev/null` + if [ "$ENABLE_SNORT" == "on" ]; then + DEVICES+=`cat /var/ipfire/red/iface 2>/dev/null` + LOCAL_IP=`cat /var/ipfire/red/local-ipaddress 2>/dev/null` + if [ "$LOCAL_IP" ]; then + HOMENET+="$LOCAL_IP," + fi + fi + HOMENET+="127.0.0.1" + echo "var HOME_NET [$HOMENET]" > /etc/snort/vars
-if [ "$DNS2" ]; then - echo "var DNS_SERVERS [$DNS1,$DNS2]" >> /etc/snort/vars -else - echo "var DNS_SERVERS $DNS1" >> /etc/snort/vars -fi + DNS1=`cat /var/ipfire/red/dns1 2>/dev/null` + DNS2=`cat /var/ipfire/red/dns2 2>/dev/null` + + if [ "$DNS2" ]; then + echo "var DNS_SERVERS [$DNS1,$DNS2]" >> /etc/snort/vars + else + echo "var DNS_SERVERS $DNS1" >> /etc/snort/vars + fi
-case "$1" in - start) for DEVICE in $DEVICES; do boot_mesg "Starting Intrusion Detection System on $DEVICE..." /usr/sbin/snort -c /etc/snort/snort.conf -i $DEVICE -D -l /var/log/snort --create-pidfile --nolock-pidfile --pid-path /var/run/ evaluate_retval + sleep 1 chmod 644 /var/run/snort_$DEVICE.pid done
@@ -107,10 +118,13 @@ case "$1" in
rm /var/run/snort_* >/dev/null 2>/dev/null
- if [ -r /var/ipfire/guardian/enable ]; then + if ([ -r /var/ipfire/guardian/enable ] || [ ! -z $(pidofproc /usr/local/bin/guardian.pl) ]); then boot_mesg "Stopping Guardian..." killproc /usr/local/bin/guardian.pl fi + + # Don't report returncode of rm if snort was not started + exit 0 ;;
status) diff --git a/src/initscripts/sysconfig/modules b/src/initscripts/sysconfig/modules index 5f8a77d..cdbcca4 100644 --- a/src/initscripts/sysconfig/modules +++ b/src/initscripts/sysconfig/modules @@ -33,4 +33,8 @@ lp ### fusion # fusion
+### cryptodev +# +cryptodev + # End /etc/sysconfig/modules diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index c16bde8..9cf1bd5 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -11,7 +11,7 @@ #include "install.h" #define _GNU_SOURCE
-#define INST_FILECOUNT 6200 +#define INST_FILECOUNT 8400 #define UNATTENDED_CONF "/cdrom/boot/unattended.conf"
#define EXT2 0 @@ -29,14 +29,15 @@ struct nic nics[20] = { { "" , "" , "" } }; // only defined for compile struct knic knics[20] = { { "" , "" , "" , "" } }; // only defined for compile
extern char *en_tr[]; +extern char *es_tr[]; extern char *de_tr[]; extern char *fr_tr[];
int main(int argc, char *argv[]) { - char *langnames[] = { "Deutsch", "English", "Français", NULL }; - char *shortlangnames[] = { "de", "en", "fr" ,NULL }; - char **langtrs[] = { de_tr, en_tr, fr_tr,NULL }; + char *langnames[] = { "Deutsch", "English", "Français", "Español", NULL }; + char *shortlangnames[] = { "de", "en", "fr", "es", NULL }; + char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, NULL }; char hdletter; char harddrive[30], sourcedrive[5]; /* Device holder. */ struct devparams hdparams, cdromparams; /* Params for CDROM and HD */ @@ -302,9 +303,9 @@ int main(int argc, char *argv[]) fprintf(flog, "Disksize = %ld, memory = %ld", disk, memory); /* Calculating Swap-Size dependend of Ram Size */ - if (memory < 128) - swap_file = 32; - else if (memory > 512) + if (memory <= 256) + swap_file = 128; + else if (memory <= 1024 && memory > 256) swap_file = 256; else swap_file = memory / 4; @@ -541,7 +542,7 @@ int main(int argc, char *argv[]) replace( "/harddisk/boot/grub/grub.conf", "root=ROOT", string); mysystem("ln -s grub.conf /harddisk/boot/grub/menu.lst");
- system("sed -e 's#harddisk\/##g' < /proc/mounts > /harddisk/etc/mtab"); + system("sed -e 's#/harddisk#/#g' -e 's#//#/#g' < /proc/mounts > /harddisk/etc/mtab");
snprintf(commandstring, STRING_SIZE, "/sbin/chroot /harddisk /usr/sbin/grub-install --no-floppy %s", hdparams.devnode_disk); diff --git a/src/install+setup/install/mountdest.sh b/src/install+setup/install/mountdest.sh index a824233..00243a9 100644 --- a/src/install+setup/install/mountdest.sh +++ b/src/install+setup/install/mountdest.sh @@ -24,6 +24,11 @@ echo "Scanning for possible destination drives" # scan IDE devices echo "--> IDE" for DEVICE in $(kudzu -qps -t 30 -c HD -b IDE | grep device: | cut -d ' ' -f 2 | sort | uniq); do + if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then + umount /harddisk 2> /dev/null + echo "${DEVICE} is empty - SKIP" + continue + fi mount /dev/${DEVICE}1 /harddisk 2> /dev/null if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then umount /harddisk 2> /dev/null @@ -40,7 +45,12 @@ done # scan USB/SCSI devices echo "--> USB/SCSI" for DEVICE in $(kudzu -qps -t 30 -c HD -b SCSI | grep device: | cut -d ' ' -f 2 | sort | uniq); do - mount /dev/${DEVICE} /harddisk 2> /dev/null + if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then + umount /harddisk 2> /dev/null + echo "${DEVICE} is empty - SKIP" + continue + fi + mount /dev/${DEVICE} /harddisk 2> /dev/null if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then umount /harddisk 2> /dev/null echo "${DEVICE} is source drive - SKIP" @@ -64,6 +74,11 @@ done # scan RAID devices echo "--> RAID" for DEVICE in $(kudzu -qps -t 30 -c HD -b RAID | grep device: | cut -d ' ' -f 2 | sort | uniq); do + if [ "$(grep ${DEVICE}p1 /proc/partitions)" = "" ]; then + umount /harddisk 2> /dev/null + echo "${DEVICE}p1 is empty - SKIP" + continue + fi mount /dev/${DEVICE}p1 /harddisk 2> /dev/null if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then umount /harddisk 2> /dev/null @@ -71,6 +86,11 @@ for DEVICE in $(kudzu -qps -t 30 -c HD -b RAID | grep device: | cut -d ' ' -f 2 continue else umount /harddisk 2> /dev/null + if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then + umount /harddisk 2> /dev/null + echo "${DEVICE} is empty - SKIP" + continue + fi mount /dev/${DEVICE}1 /harddisk 2> /dev/null if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then umount /harddisk 2> /dev/null @@ -98,6 +118,11 @@ for DEVICE in vda vdb vdc vdd; do if [ ! -e /dev/${DEVICE} ]; then continue else + if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then + umount /harddisk 2> /dev/null + echo "${DEVICE} is empty - SKIP" + continue + fi mount /dev/${DEVICE} /harddisk 2> /dev/null if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then umount /harddisk 2> /dev/null diff --git a/src/install+setup/libsmooth/main.c b/src/install+setup/libsmooth/main.c index 0491d5e..710183a 100644 --- a/src/install+setup/libsmooth/main.c +++ b/src/install+setup/libsmooth/main.c @@ -287,6 +287,7 @@ int replace(char filename1[], char *from, char *to) #else #include "lang_de.c" #include "lang_en.c" + #include "lang_es.c" #include "lang_fr.c" #endif
diff --git a/src/install+setup/setup/passwords.c b/src/install+setup/setup/passwords.c index 4b9e61b..f5a686b 100644 --- a/src/install+setup/setup/passwords.c +++ b/src/install+setup/setup/passwords.c @@ -85,7 +85,7 @@ int getpassword(char *password, char *text) done = 1; sprintf (title, "%s %s - %s", NAME, VERSION, SLOGAN); rc = newtWinEntries(title, text, - 50, 5, 5, 20, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL); + 65, 5, 5, 50, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);
if (rc != 2) { diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index d4114a0..7b1e457 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -32,7 +32,7 @@ SUID_PROGS = setdmzholes setportfw setxtaccess \ wirelessctrl getipstat getiptstate qosctrl launch-ether-wake \ redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \ smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \ - setaliases + setaliases urlfilterctrl updxlratorctrl SUID_UPDX = updxsetperms
install : all diff --git a/src/misc-progs/ipsecctrl.c b/src/misc-progs/ipsecctrl.c index d443edc..51f6b5a 100644 --- a/src/misc-progs/ipsecctrl.c +++ b/src/misc-progs/ipsecctrl.c @@ -58,12 +58,17 @@ void open_physical (char *interface, int nat_traversal_port) { // sprintf(str, "/sbin/iptables -A " phystable " -p 51 -i %s -j ACCEPT", interface); // safe_system(str); // IKE + + sprintf(str, "/sbin/iptables -D IPSECINPUT -p udp -i %s --sport 500 --dport 500 -j ACCEPT >/dev/null 2>&1", interface); + safe_system(str); sprintf(str, "/sbin/iptables -A IPSECINPUT -p udp -i %s --sport 500 --dport 500 -j ACCEPT", interface); safe_system(str);
if (! nat_traversal_port) return;
+ sprintf(str, "/sbin/iptables -D IPSECINPUT -p udp -i %s --dport %i -j ACCEPT >/dev/null 2>&1", interface, nat_traversal_port); + safe_system(str); sprintf(str, "/sbin/iptables -A IPSECINPUT -p udp -i %s --dport %i -j ACCEPT", interface, nat_traversal_port); safe_system(str); } @@ -136,35 +141,22 @@ int decode_line (char *s, issue ipsec commmands to turn on connection 'name' */ void turn_connection_on (char *name, char *type) { - char command[STRING_SIZE]; - - safe_system("/usr/sbin/ipsec whack --rereadsecrets >/dev/null"); - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec auto --replace %s >/dev/null", name); - safe_system(command); - if (strcmp(type, "net") == 0) { - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec whack --asynchronous --name %s --initiate >/dev/null", name); - safe_system(command); - } +/* + if you find a way to start a single connection without changing all add it + here. Change also vpn-watch. +*/ + safe_system("/etc/rc.d/init.d/ipsec restart >/dev/null"); } /* issue ipsec commmands to turn off connection 'name' */ void turn_connection_off (char *name) { char command[STRING_SIZE]; - - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec whack --name %s --terminate >/dev/null", name); - safe_system(command); memset(command, 0, STRING_SIZE); snprintf(command, STRING_SIZE - 1, "/usr/sbin/ipsec whack --delete --name %s >/dev/null", name); safe_system(command); - safe_system("/usr/sbin/ipsec whack --rereadsecrets >/dev/null"); + safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null"); }
@@ -183,13 +175,25 @@ int main(int argc, char *argv[]) {
FILE *file = NULL;
+ + if (strcmp(argv[1], "I") == 0) { + safe_system("/usr/sbin/ipsec whack --status"); + exit(0); + } + + if (strcmp(argv[1], "R") == 0) { + safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null"); + exit(0); + } + /* Get vpnwatch pid */
- if ( (argc == 2) && (file = fopen("/var/run/vpn-watch.pid", "r"))) { - safe_system("kill -9 $(cat /var/run/vpn-watch.pid)"); - safe_system("unlink /var/run/vpn-watch.pid"); - close(file); - } + + if ((argc == 2) && (file = fopen("/var/run/vpn-watch.pid", "r"))) { + safe_system("kill -9 $(cat /var/run/vpn-watch.pid)"); + safe_system("unlink /var/run/vpn-watch.pid"); + close(file); + }
/* FIXME: workaround for pclose() issue - still no real idea why * this is happening */ @@ -198,31 +202,18 @@ int main(int argc, char *argv[]) { /* handle operations that doesn't need start the ipsec system */ if (argc == 2) { if (strcmp(argv[1], "D") == 0) { - ipsec_norules(); /* Only shutdown pluto if it really is running */ /* Get pluto pid */ if (file = fopen("/var/run/pluto.pid", "r")) { safe_system("/etc/rc.d/init.d/ipsec stop 2> /dev/null >/dev/null"); close(file); } - exit(0); - } - - if (strcmp(argv[1], "R") == 0) { - safe_system("/usr/sbin/ipsec whack --rereadall"); - exit(0); - } - - if (strcmp(argv[1], "I") == 0) { - safe_system("/usr/sbin/ipsec whack --status"); + ipsec_norules(); exit(0); }
}
- /* clear iptables vpn rules */ - ipsec_norules(); - /* read vpn config */ kv=initkeyvalues(); if (!readkeyvalues(kv, CONFIG_ROOT "/vpn/settings")) @@ -348,15 +339,14 @@ int main(int argc, char *argv[]) {
// start the system if ((argc == 2) && strcmp(argv[1], "S") == 0) { - safe_system("/etc/rc.d/init.d/ipsec restart >/dev/null"); - safe_system("/usr/local/bin/vpn-watch &"); + safe_system("/etc/rc.d/init.d/ipsec restart >/dev/null"); + safe_system("/usr/local/bin/vpn-watch &"); exit(0); }
// it is a selective start or stop // second param is only a number 'key' if ((argc == 2) || strspn(argv[2], NUMBERS) != strlen(argv[2])) { - ipsec_norules(); fprintf(stderr, "Bad arg\n"); usage(); exit(1); @@ -364,7 +354,6 @@ int main(int argc, char *argv[]) {
// search the vpn pointed by 'key' if (!(file = fopen(CONFIG_ROOT "/vpn/config", "r"))) { - ipsec_norules(); fprintf(stderr, "Couldn't open vpn settings file"); exit(1); } @@ -394,7 +383,6 @@ int main(int argc, char *argv[]) { if (strcmp(argv[1], "D") == 0) turn_connection_off (name); else { - ipsec_norules(); fprintf(stderr, "Bad command\n"); exit(1); } diff --git a/src/misc-progs/rebuildhosts.c b/src/misc-progs/rebuildhosts.c index 115cdba..0840887 100644 --- a/src/misc-progs/rebuildhosts.c +++ b/src/misc-progs/rebuildhosts.c @@ -1,154 +1,176 @@ -/* IPCop helper program - rebuildhosts - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Alan Hourihane, 2003 - * - * - * $Id: rebuildhosts.c,v 1.3.2.6 2005/07/11 10:56:47 franck78 Exp $ - * - */ - -#include "libsmooth.h" -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <fcntl.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <signal.h> -#include "setuid.h" - -FILE *fd = NULL; -FILE *hosts = NULL; -struct keyvalue *kv = NULL; - -void exithandler(void) -{ - if (kv) - freekeyvalues(kv); - if (fd) - fclose(fd); - if (hosts) - fclose(hosts); -} - -int main(int argc, char *argv[]) -{ - int fdpid; - char hostname[STRING_SIZE]; - char domainname[STRING_SIZE] = ""; - char buffer[STRING_SIZE]; - char address[STRING_SIZE]; - char *active, *ip, *host, *domain; - int pid; - - if (!(initsetuid())) - exit(1); - - atexit(exithandler); - - memset(buffer, 0, STRING_SIZE); - - kv = initkeyvalues(); - if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))) - { - fprintf(stderr, "Couldn't read ethernet settings\n"); - exit(1); - } - findkey(kv, "GREEN_ADDRESS", address); - freekeyvalues(kv); - - kv = initkeyvalues(); - if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings"))) - { - fprintf(stderr, "Couldn't read main settings\n"); - exit(1); - } - strcpy(hostname, SNAME ); - findkey(kv, "HOSTNAME", hostname); - findkey(kv, "DOMAINNAME", domainname); - freekeyvalues(kv); - kv = NULL; - - if (!(fd = fopen(CONFIG_ROOT "/main/hosts", "r"))) - { - fprintf(stderr, "Couldn't open main hosts file\n"); - exit(1); - } - if (!(hosts = fopen("/etc/hosts", "w"))) - { - fprintf(stderr, "Couldn't open /etc/hosts file\n"); - fclose(fd); - fd = NULL; - exit(1); - } - fprintf(hosts, "127.0.0.1\tlocalhost\n"); - if (strlen(domainname)) - fprintf(hosts, "%s\t%s.%s\t%s\n",address,hostname,domainname,hostname); - else - fprintf(hosts, "%s\t%s\n",address,hostname); - while (fgets(buffer, STRING_SIZE, fd)) - { - buffer[strlen(buffer) - 1] = 0; - if (buffer[0]==',') continue; /* disabled if empty field */ - active = strtok(buffer, ","); - if (strcmp(active, "off")==0) continue; /* or 'off' */ - - ip = strtok(NULL, ","); - host = strtok(NULL, ","); - domain = strtok(NULL, ","); - - if (!(ip && host)) - continue; // bad line ? skip - - if (!VALID_IP(ip)) - { - fprintf(stderr, "Bad IP: %s\n", ip); - continue; /* bad ip, skip */ - } - - if (strspn(host, LETTERS_NUMBERS "-") != strlen(host)) - { - fprintf(stderr, "Bad Host: %s\n", host); - continue; /* bad name, skip */ - } - - if (domain) - fprintf(hosts, "%s\t%s.%s\t%s\n",ip,host,domain,host); - else - fprintf(hosts, "%s\t%s\n",ip,host); - } - fclose(fd); - fd = NULL; - fclose(hosts); - hosts = NULL; - - if ((fdpid = open("/var/run/dnsmasq.pid", O_RDONLY)) == -1) - { - fprintf(stderr, "Couldn't open pid file\n"); - exit(1); - } - if (read(fdpid, buffer, STRING_SIZE - 1) == -1) - { - fprintf(stderr, "Couldn't read from pid file\n"); - close(fdpid); - exit(1); - } - close(fdpid); - pid = atoi(buffer); - if (pid <= 1) - { - fprintf(stderr, "Bad pid value\n"); - exit(1); - } - if (kill(pid, SIGHUP) == -1) - { - fprintf(stderr, "Unable to send SIGHUP\n"); - exit(1); - } - - return 0; -} +/* IPCop helper program - rebuildhosts + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + * (c) Alan Hourihane, 2003 + * + * + * $Id: rebuildhosts.c,v 1.3.2.6 2005/07/11 10:56:47 franck78 Exp $ + * + */ + +#include "libsmooth.h" +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <signal.h> +#include "setuid.h" + +FILE *fd = NULL; +FILE *hosts = NULL; +FILE *gw = NULL; +struct keyvalue *kv = NULL; + +void exithandler(void) +{ + if (kv) + freekeyvalues(kv); + if (fd) + fclose(fd); + if (hosts) + fclose(hosts); + if (gw) + fclose(gw); +} + +int main(int argc, char *argv[]) +{ + int fdpid; + char hostname[STRING_SIZE]; + char domainname[STRING_SIZE] = ""; + char gateway[STRING_SIZE] = ""; + char buffer[STRING_SIZE]; + char address[STRING_SIZE]; + char *active, *ip, *host, *domain; + int pid; + + if (!(initsetuid())) + exit(1); + + atexit(exithandler); + + memset(buffer, 0, STRING_SIZE); + + kv = initkeyvalues(); + if (!(readkeyvalues(kv, CONFIG_ROOT "/ethernet/settings"))) + { + fprintf(stderr, "Couldn't read ethernet settings\n"); + exit(1); + } + findkey(kv, "GREEN_ADDRESS", address); + freekeyvalues(kv); + + kv = initkeyvalues(); + if (!(readkeyvalues(kv, CONFIG_ROOT "/main/settings"))) + { + fprintf(stderr, "Couldn't read main settings\n"); + exit(1); + } + strcpy(hostname, SNAME ); + findkey(kv, "HOSTNAME", hostname); + findkey(kv, "DOMAINNAME", domainname); + freekeyvalues(kv); + kv = NULL; + + if (!(gw = fopen(CONFIG_ROOT "/red/remote-ipaddress", "r"))) + { + fprintf(stderr, "Couldn't open remote-ipaddress file\n"); + fclose(gw); + gw = NULL; + exit(1); + } + + if (fgets(gateway, STRING_SIZE, gw) == NULL) + { + fprintf(stderr, "Couldn't read remote-ipaddress\n"); + exit(1); + } + + if (!(fd = fopen(CONFIG_ROOT "/main/hosts", "r"))) + { + fprintf(stderr, "Couldn't open main hosts file\n"); + exit(1); + } + + if (!(hosts = fopen("/etc/hosts", "w"))) + { + fprintf(stderr, "Couldn't open /etc/hosts file\n"); + fclose(fd); + fd = NULL; + exit(1); + } + fprintf(hosts, "127.0.0.1\tlocalhost\n"); + if (strlen(domainname)) + fprintf(hosts, "%s\t%s.%s\t%s\n",address,hostname,domainname,hostname); + else + fprintf(hosts, "%s\t%s\n",address,hostname); + + fprintf(hosts, "%s\tgateway\n",gateway); + + while (fgets(buffer, STRING_SIZE, fd)) + { + buffer[strlen(buffer) - 1] = 0; + if (buffer[0]==',') continue; /* disabled if empty field */ + active = strtok(buffer, ","); + if (strcmp(active, "off")==0) continue; /* or 'off' */ + + ip = strtok(NULL, ","); + host = strtok(NULL, ","); + domain = strtok(NULL, ","); + + if (!(ip && host)) + continue; // bad line ? skip + + if (!VALID_IP(ip)) + { + fprintf(stderr, "Bad IP: %s\n", ip); + continue; /* bad ip, skip */ + } + + if (strspn(host, LETTERS_NUMBERS "-") != strlen(host)) + { + fprintf(stderr, "Bad Host: %s\n", host); + continue; /* bad name, skip */ + } + + if (domain) + fprintf(hosts, "%s\t%s.%s\t%s\n",ip,host,domain,host); + else + fprintf(hosts, "%s\t%s\n",ip,host); + } + fclose(fd); + fd = NULL; + fclose(hosts); + hosts = NULL; + + if ((fdpid = open("/var/run/dnsmasq.pid", O_RDONLY)) == -1) + { + fprintf(stderr, "Couldn't open pid file\n"); + exit(1); + } + if (read(fdpid, buffer, STRING_SIZE - 1) == -1) + { + fprintf(stderr, "Couldn't read from pid file\n"); + close(fdpid); + exit(1); + } + close(fdpid); + pid = atoi(buffer); + if (pid <= 1) + { + fprintf(stderr, "Bad pid value\n"); + exit(1); + } + if (kill(pid, SIGHUP) == -1) + { + fprintf(stderr, "Unable to send SIGHUP\n"); + exit(1); + } + + return 0; +} diff --git a/src/misc-progs/syslogdctrl.c b/src/misc-progs/syslogdctrl.c index a470e47..993cc93 100644 --- a/src/misc-progs/syslogdctrl.c +++ b/src/misc-progs/syslogdctrl.c @@ -31,13 +31,14 @@ int main(void) { char buffer[STRING_SIZE], command[STRING_SIZE], hostname[STRING_SIZE]; - char varmessages[STRING_SIZE], enable_asynclog[STRING_SIZE]; + char varmessages[STRING_SIZE], asynclog[STRING_SIZE]; int config_fd,rc,fd,pid; struct stat st; struct keyvalue *kv = NULL; memset(buffer, 0, STRING_SIZE); memset(hostname, 0, STRING_SIZE); memset(varmessages, 0, STRING_SIZE); + memset(asynclog, 0, STRING_SIZE);
if (!(initsetuid())) exit(1); @@ -64,7 +65,7 @@ int main(void) exit(ERR_SETTINGS); }
- if (!findkey(kv, "ENABLE_ASYNCLOG", enable_asynclog)) + if (!findkey(kv, "ENABLE_ASYNCLOG", asynclog)) { fprintf(stderr, "Cannot read ENABLE_ASYNCLOG\n"); exit(ERR_SETTINGS); @@ -133,10 +134,10 @@ int main(void) /* Replace the logging option*/ safe_system("grep -v '/var/log/messages' < /etc/syslog.conf.new > /etc/syslog.conf.tmp && mv /etc/syslog.conf.tmp /etc/syslog.conf.new");
- if (strcmp(enable_asynclog,"on")) - snprintf(command, STRING_SIZE-1, "printf '%s -/var/log/messages' >> /etc/syslog.conf.new", varmessages ); + if (!strcmp(asynclog,"on")) + snprintf(command, STRING_SIZE - 1, "printf '%s -/var/log/messages' >> /etc/syslog.conf.new", varmessages ); else - snprintf(command, STRING_SIZE-1, "printf '%s /var/log/messages' >> /etc/syslog.conf.new", varmessages ); + snprintf(command, STRING_SIZE - 1, "printf '%s /var/log/messages' >> /etc/syslog.conf.new", varmessages );
safe_system(command);
diff --git a/src/misc-progs/updxlratorctrl.c b/src/misc-progs/updxlratorctrl.c new file mode 100644 index 0000000..cf58b5e --- /dev/null +++ b/src/misc-progs/updxlratorctrl.c @@ -0,0 +1,33 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <stdlib.h> +#include <sys/types.h> +#include <fcntl.h> +#include "setuid.h" + +int main(int argc, char *argv[]){ + if ( argc < 2 ){ + printf("invalid parameter(s)\n"); + return(1); + } + + if (!(initsetuid())) + exit(1); + + if (strcmp(argv[1], "cron") == 0){ + safe_system("rm /etc/fcron.*/updxlrator 2&>/dev/null"); + + if (strcmp(argv[2], "daily") == 0){ + safe_system("ln -s /var/ipfire/updatexlrator/bin/checkup /etc/fcron.daily/updxlrator"); + } else if (strcmp(argv[2], "weekly") == 0){ + safe_system("ln -s /var/ipfire/updatexlrator/bin/checkup /etc/fcron.weekly/updxlrator"); + } else if (strcmp(argv[2], "monthly") == 0){ + safe_system("ln -s /var/ipfire/updatexlrator/bin/checkup /etc/fcron.monthly/updxlrator"); + }else{ + printf("invalid parameter(s)\n"); + return(1); + } + } + return 0; +} diff --git a/src/misc-progs/urlfilterctrl.c b/src/misc-progs/urlfilterctrl.c new file mode 100644 index 0000000..6e2b306 --- /dev/null +++ b/src/misc-progs/urlfilterctrl.c @@ -0,0 +1,33 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <stdlib.h> +#include <sys/types.h> +#include <fcntl.h> +#include "setuid.h" + +int main(int argc, char *argv[]){ + if ( argc < 2 ){ + printf("invalid parameter(s)\n"); + return(1); + } + + if (!(initsetuid())) + exit(1); + + if (strcmp(argv[1], "cron") == 0){ + safe_system("rm /etc/fcron.*/urlfilter 2&>/dev/null"); + + if (strcmp(argv[2], "daily") == 0){ + safe_system("ln -s /var/ipfire/urlfilter/bin/autoupdate.pl /etc/fcron.daily/urlfilter"); + } else if (strcmp(argv[2], "weekly") == 0){ + safe_system("ln -s /var/ipfire/urlfilter/bin/autoupdate.pl /etc/fcron.weekly/urlfilter"); + } else if (strcmp(argv[2], "monthly") == 0){ + safe_system("ln -s /var/ipfire/urlfilter/bin/autoupdate.pl /etc/fcron.monthly/urlfilter"); + }else{ + printf("invalid parameter(s)\n"); + return(1); + } + } + return 0; +} diff --git a/src/misc-progs/wirelessctrl.c b/src/misc-progs/wirelessctrl.c index bfd4527..12b954b 100644 --- a/src/misc-progs/wirelessctrl.c +++ b/src/misc-progs/wirelessctrl.c @@ -101,6 +101,9 @@ int main(void) exit(0); }
+ if ((fd = fopen(CONFIG_ROOT "/wireless/nodrop", "r"))) + return 0; + /* register exit handler to ensure the block rule is always present */ atexit(exithandler);
@@ -148,7 +151,7 @@ int main(void)
/* both specified, added security */ if ((strlen(macaddress) == 17) && - (VALID_IP(ipaddress))) { + (VALID_IP_AND_MASK(ipaddress))) { snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -m mac --mac-source %s -s %s -i %s -j ACCEPT", macaddress, ipaddress, blue_dev); safe_system(command); snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s ! -o %s -j ACCEPT", macaddress, ipaddress, blue_dev, green_dev); @@ -167,7 +170,7 @@ int main(void) safe_system(command); }
- if (VALID_IP(ipaddress)) { + if (VALID_IP_AND_MASK(ipaddress)) { snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -s %s -i %s -j ACCEPT", ipaddress, blue_dev); safe_system(command); snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -s %s -i %s ! -o %s -j ACCEPT", ipaddress, blue_dev, green_dev); diff --git a/src/pakfire/lib/functions.pl b/src/pakfire/lib/functions.pl index 5aaa5f4..ba02423 100644 --- a/src/pakfire/lib/functions.pl +++ b/src/pakfire/lib/functions.pl @@ -220,7 +220,7 @@ sub fetchfile { $allok = 1; return 0; } else { - logger("DOWNLOAD ERROR: Could not open $Conf::cachedir/$bfile for writing."); + logger("DOWNLOAD ERROR: Could not open $Conf::tmpdir/$bfile for writing."); } } else { return 0; diff --git a/src/pakfire/pakfire.conf b/src/pakfire/pakfire.conf index 56786cf..16fee14 100644 --- a/src/pakfire/pakfire.conf +++ b/src/pakfire/pakfire.conf @@ -21,7 +21,7 @@
package Conf;
-$version = "2.5"; +$version = "2.7";
$mainserver = "pakfire.ipfire.org";
diff --git a/src/paks/esniper/install.sh b/src/paks/esniper/install.sh deleted file mode 100644 index d0a24a6..0000000 --- a/src/paks/esniper/install.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -extract_files -restore_backup ${NAME} -useradd -s /bin/false esniper -grep -v "esniper" /etc/sudoers > /tmp/sudoers -echo "# esniper user" >> /tmp/sudoers -echo "nobody ALL=(esniper) NOPASSWD: /usr/bin/sudo, /bin/sh, /bin/kill" >> /tmp/sudoers -mv /tmp/sudoers /etc/sudoers -chmod 0440 /etc/sudoers -chmod 777 /srv/web/esniper -chown nobody.nobody /srv/web/esniper -/etc/init.d/apache reload diff --git a/src/paks/esniper/uninstall.sh b/src/paks/esniper/uninstall.sh deleted file mode 100644 index d5fa162..0000000 --- a/src/paks/esniper/uninstall.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -make_backup ${NAME} -remove_files -grep -v "esniper" /etc/sudoers > /tmp/sudoers -mv /tmp/sudoers /etc/sudoers -chmod 0440 /etc/sudoers diff --git a/src/paks/esniper/update.sh b/src/paks/esniper/update.sh deleted file mode 100644 index 89c40d0..0000000 --- a/src/paks/esniper/update.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -./uninstall.sh -./install.sh diff --git a/src/paks/linux-xen/install.sh b/src/paks/linux-xen/install.sh index 539c2fa..eb2285b 100644 --- a/src/paks/linux-xen/install.sh +++ b/src/paks/linux-xen/install.sh @@ -17,14 +17,14 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # +# Copyright (C) 2010 IPFire-Team info@ipfire.org. # # # ############################################################################ # . /opt/pakfire/lib/functions.sh extract_files # -KVER=2.6.32.10 +KVER=2.6.32.15 ROOT=`grep "root=" /boot/grub/grub.conf | cut -d"=" -f2 | cut -d" " -f1 | tail -n 1` MOUNT=`grep "kernel" /boot/grub/grub.conf | tail -n 1` # Nur den letzten Parameter verwenden @@ -54,6 +54,8 @@ if [ ${?} = 0 ]; then #Xen Kernel is active #Set grub default entry to this kernel sed -i -e "s|^default saved|default $ENTRY|g" /boot/grub/grub.conf + #Remove ramdisk of normal kernel (not enough space) + rm -f /boot/ipfirerd-$KVER.img else #Normal Kernel #pygrub crash with "default saved" diff --git a/src/paks/linux-xen/uninstall.sh b/src/paks/linux-xen/uninstall.sh index ca65ef7..fe23165 100644 --- a/src/paks/linux-xen/uninstall.sh +++ b/src/paks/linux-xen/uninstall.sh @@ -17,10 +17,10 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # +# Copyright (C) 2010 IPFire-Team info@ipfire.org. # # # ############################################################################ # . /opt/pakfire/lib/functions.sh remove_files -mv -f /boot/grub/grub-backup-2.6.32.*.-xen.conf /boot/grub/grub.conf +mv -f /boot/grub/grub-backup-2.6.32.*-xen.conf /boot/grub/grub.conf diff --git a/src/paks/pound/install.sh b/src/paks/pound/install.sh new file mode 100644 index 0000000..c1748b0 --- /dev/null +++ b/src/paks/pound/install.sh @@ -0,0 +1,32 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +extract_files +restore_backup ${NAME} + +ln -svf ../init.d/pound /etc/rc.d/rc0.d/K20pound +ln -svf ../init.d/pound /etc/rc.d/rc3.d/S40pound +ln -svf ../init.d/pound /etc/rc.d/rc6.d/K20pound + +start_service --background ${NAME} diff --git a/src/paks/pound/uninstall.sh b/src/paks/pound/uninstall.sh new file mode 100644 index 0000000..aa2c63b --- /dev/null +++ b/src/paks/pound/uninstall.sh @@ -0,0 +1,29 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +stop_service ${NAME} +make_backup ${NAME} +remove_files + +rm -rf /etc/rc.d/rc*.d/*pound diff --git a/src/paks/pound/update.sh b/src/paks/pound/update.sh new file mode 100644 index 0000000..89c40d0 --- /dev/null +++ b/src/paks/pound/update.sh @@ -0,0 +1,26 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +./uninstall.sh +./install.sh diff --git a/src/paks/squidclamav/update.sh b/src/paks/squidclamav/update.sh index 3387a89..9551602 100644 --- a/src/paks/squidclamav/update.sh +++ b/src/paks/squidclamav/update.sh @@ -24,6 +24,15 @@ . /opt/pakfire/lib/functions.sh ./uninstall.sh extract_files -# Restoring the backup has to be excluded because config file changed -# restore_backup ${NAME} + +VERSION=$(cat /opt/pakfire/db/installed/meta-squidclamav | grep Release | cut -d" " -f2) + +if [ "$VERSION" -gt "10" ]; then + restore_backup ${NAME} +fi + +if [ "$VERSION" -lt "11" ]; then + sed -e "s|logfile.*|logfile /var/log/squid/squidclamav.log|g" /etc/squidclamav.conf +fi + /etc/init.d/squid restart diff --git a/src/patches/Python-2.4.3-gdbm-1.patch b/src/patches/Python-2.4.3-gdbm-1.patch deleted file mode 100644 index 532c871..0000000 --- a/src/patches/Python-2.4.3-gdbm-1.patch +++ /dev/null @@ -1,32 +0,0 @@ -Submitted By: Jim Gifford (jim at linuxfromscratch dot org) -Date: 2003-12-26 -Initial Package Version: 2.3.3 -Origin: Greg Schafer and Jim Gifford -Description: Fixes Python build issue with gdbm - - *** WARNING: renaming "dbm" since importing it failed: - build/lib.linux-i686-2.3/dbm.so: undefined symbol: dbm_firstkey - - - -$LastChangedBy: dnicholson $ -$Date: 2006-04-20 10:08:34 -0600 (Thu, 20 Apr 2006) $ - -diff -Naur Python-2.3.2.orig/setup.py Python-2.3.2/setup.py ---- Python-2.3.2.orig/setup.py 2003-09-22 01:19:45.000000000 +0000 -+++ Python-2.3.2/setup.py 2003-10-13 06:28:34.000000000 +0000 -@@ -596,12 +596,12 @@ - if self.compiler.find_library_file(lib_dirs, 'ndbm'): - ndbm_libs = ['ndbm'] - else: -- ndbm_libs = [] -+ ndbm_libs = ['gdbm', 'gdbm_compat'] - exts.append( Extension('dbm', ['dbmmodule.c'], - define_macros=[('HAVE_NDBM_H',None)], - libraries = ndbm_libs ) ) - elif (self.compiler.find_library_file(lib_dirs, 'gdbm') -- and find_file("gdbm/ndbm.h", inc_dirs, []) is not None): -+ and find_file("ndbm.h", inc_dirs, []) is not None): - exts.append( Extension('dbm', ['dbmmodule.c'], - define_macros=[('HAVE_GDBM_NDBM_H',None)], - libraries = ['gdbm'] ) ) diff --git a/src/patches/Python-2.7-gdbm-1.patch b/src/patches/Python-2.7-gdbm-1.patch new file mode 100644 index 0000000..c72b452 --- /dev/null +++ b/src/patches/Python-2.7-gdbm-1.patch @@ -0,0 +1,21 @@ +diff -Naur Python-2.7-org/setup.py Python-2.7/setup.py +--- Python-2.7-org/setup.py 2010-06-27 14:36:16.000000000 +0200 ++++ Python-2.7/setup.py 2010-07-13 22:23:04.000000000 +0200 +@@ -1125,7 +1125,7 @@ + 'ndbm'): + ndbm_libs = ['ndbm'] + else: +- ndbm_libs = [] ++ ndbm_libs = ['gdbm', 'gdbm_compat' ] + print "building dbm using ndbm" + dbmext = Extension('dbm', ['dbmmodule.c'], + define_macros=[ +@@ -1140,7 +1140,7 @@ + if self.compiler.find_library_file(lib_dirs, + 'gdbm_compat'): + gdbm_libs.append('gdbm_compat') +- if find_file("gdbm/ndbm.h", inc_dirs, []) is not None: ++ if find_file("ndbm.h", inc_dirs, []) is not None: + print "building dbm using gdbm" + dbmext = Extension( + 'dbm', ['dbmmodule.c'], diff --git a/src/patches/atl2_add_tx_bytes_statistic.patch b/src/patches/atl2_add_tx_bytes_statistic.patch deleted file mode 100644 index cea68a2..0000000 --- a/src/patches/atl2_add_tx_bytes_statistic.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -Naur atl2-2.0.5.org/atl2_main.c atl2-2.0.5/atl2_main.c ---- atl2-2.0.5.org/atl2_main.c 2008-08-04 17:53:21.000000000 +0200 -+++ atl2-2.0.5/atl2_main.c 2008-10-15 18:53:12.000000000 +0200 -@@ -572,8 +572,10 @@ - atomic_set(&adapter->txd_read_ptr, (int)txd_read_ptr); - - // tx statistics: -- if (txs->ok) -+ if (txs->ok) { -+ adapter->net_stats.tx_bytes += txs->pkt_size; - adapter->net_stats.tx_packets++; -+ } - else - adapter->net_stats.tx_errors++; - diff --git a/src/patches/ccache-2.4.patch b/src/patches/ccache-2.4.patch deleted file mode 100644 index 64d3eda..0000000 --- a/src/patches/ccache-2.4.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- /tmp/ccache.c 2004-04-15 13:49:38.000000000 +0100 -+++ ccache.c 2004-04-15 17:47:59.000000000 +0100 -@@ -322,7 +322,9 @@ - failed(); - } - hash_int(st.st_size); -+#if 0 /* don't hash on the modification time */ - hash_int(st.st_mtime); -+#endif - - /* possibly hash the current working directory */ - if (getenv("CCACHE_HASHDIR")) { diff --git a/src/patches/compat-wireless-2.6.34-usbnet_compile.patch b/src/patches/compat-wireless-2.6.34-usbnet_compile.patch new file mode 100644 index 0000000..36146fb --- /dev/null +++ b/src/patches/compat-wireless-2.6.34-usbnet_compile.patch @@ -0,0 +1,28 @@ +diff -Naur compat-wireless-2.6.34.org/include/linux/usb/usbnet.h compat-wireless-2.6.34/include/linux/usb/usbnet.h +--- compat-wireless-2.6.34.org/include/linux/usb/usbnet.h 2010-05-18 03:12:10.000000000 +0200 ++++ compat-wireless-2.6.34/include/linux/usb/usbnet.h 2010-05-22 22:18:34.000000000 +0200 +@@ -214,4 +214,24 @@ + extern void usbnet_get_drvinfo (struct net_device *, struct ethtool_drvinfo *); + extern int usbnet_nway_reset(struct net_device *net); + ++/* messaging support includes the interface name, so it must not be ++ * used before it has one ... notably, in minidriver bind() calls. ++ */ ++#ifdef DEBUG ++#define devdbg(usbnet, fmt, arg...) \ ++ printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , ## arg) ++#else ++#define devdbg(usbnet, fmt, arg...) \ ++ ({ if (0) printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , \ ++ ## arg); 0; }) ++#endif ++ ++#define deverr(usbnet, fmt, arg...) \ ++ printk(KERN_ERR "%s: " fmt "\n" , (usbnet)->net->name , ## arg) ++#define devwarn(usbnet, fmt, arg...) \ ++ printk(KERN_WARNING "%s: " fmt "\n" , (usbnet)->net->name , ## arg) ++ ++#define devinfo(usbnet, fmt, arg...) \ ++ printk(KERN_INFO "%s: " fmt "\n" , (usbnet)->net->name , ## arg); \ ++ + #endif /* __LINUX_USB_USBNET_H */ diff --git a/src/patches/compat-xen-1.patch b/src/patches/compat-xen-1.patch deleted file mode 100644 index e73fdda..0000000 --- a/src/patches/compat-xen-1.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- a/linux/include/linux/module.h 2009-07-27 09:17:57.000000000 +0000 -+++ b/linux/include/linux/module.h 2009-07-27 09:39:26.000000000 +0000 -@@ -16,7 +16,6 @@ - #include <linux/kobject.h> - #include <linux/moduleparam.h> - #include <linux/marker.h> --#include <linux/tracepoint.h> - #include <asm/local.h> - - #include <asm/module.h> -@@ -333,11 +332,6 @@ - unsigned int num_markers; - #endif - --#ifdef CONFIG_TRACEPOINTS -- struct tracepoint *tracepoints; -- unsigned int num_tracepoints; --#endif -- - #ifdef CONFIG_MODULE_UNLOAD - /* What modules depend on me? */ - struct list_head modules_which_use_me; -@@ -349,8 +343,9 @@ - void (*exit)(void); - - /* Reference counts */ -- struct module_ref *ref; -+ struct module_ref ref[NR_CPUS]; - #endif -+ - }; - #ifndef MODULE_ARCH_INIT - #define MODULE_ARCH_INIT {} -@@ -368,7 +363,6 @@ - struct module *module_text_address(unsigned long addr); - struct module *__module_text_address(unsigned long addr); - int is_module_address(unsigned long addr); --const char *supported_printable(int taint); - - /* Returns 0 and fills in value, defined and namebuf, or -ERANGE if - symnum out of range. */ -@@ -459,9 +453,6 @@ - - extern void module_update_markers(void); - --extern void module_update_tracepoints(void); --extern int module_get_iter_tracepoints(struct tracepoint_iter *iter); -- - #else /* !CONFIG_MODULES... */ - #define EXPORT_SYMBOL(sym) - #define EXPORT_SYMBOL_GPL(sym) -@@ -566,15 +557,6 @@ - { - } - --static inline void module_update_tracepoints(void) --{ --} -- --static inline int module_get_iter_tracepoints(struct tracepoint_iter *iter) --{ -- return 0; --} -- - #endif /* CONFIG_MODULES */ - - struct device_driver; diff --git a/src/patches/compat-xen-2.patch b/src/patches/compat-xen-2.patch deleted file mode 100644 index ea5f416..0000000 --- a/src/patches/compat-xen-2.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- a/linux/include/linux/module.h 2009-07-27 09:39:26.000000000 +0000 -+++ b/linux/include/linux/module.h 2009-07-27 09:17:57.000000000 +0000 -@@ -16,6 +16,7 @@ - #include <linux/kobject.h> - #include <linux/moduleparam.h> - #include <linux/marker.h> -+#include <linux/tracepoint.h> - #include <asm/local.h> - - #include <asm/module.h> -@@ -332,6 +333,11 @@ - unsigned int num_markers; - #endif - -+#ifdef CONFIG_TRACEPOINTS -+ struct tracepoint *tracepoints; -+ unsigned int num_tracepoints; -+#endif -+ - #ifdef CONFIG_MODULE_UNLOAD - /* What modules depend on me? */ - struct list_head modules_which_use_me; -@@ -343,9 +349,8 @@ - void (*exit)(void); - - /* Reference counts */ -- struct module_ref ref[NR_CPUS]; -+ struct module_ref *ref; - #endif -- - }; - #ifndef MODULE_ARCH_INIT - #define MODULE_ARCH_INIT {} -@@ -363,6 +368,7 @@ - struct module *module_text_address(unsigned long addr); - struct module *__module_text_address(unsigned long addr); - int is_module_address(unsigned long addr); -+const char *supported_printable(int taint); - - /* Returns 0 and fills in value, defined and namebuf, or -ERANGE if - symnum out of range. */ -@@ -453,6 +459,9 @@ - - extern void module_update_markers(void); - -+extern void module_update_tracepoints(void); -+extern int module_get_iter_tracepoints(struct tracepoint_iter *iter); -+ - #else /* !CONFIG_MODULES... */ - #define EXPORT_SYMBOL(sym) - #define EXPORT_SYMBOL_GPL(sym) -@@ -557,6 +566,15 @@ - { - } - -+static inline void module_update_tracepoints(void) -+{ -+} -+ -+static inline int module_get_iter_tracepoints(struct tracepoint_iter *iter) -+{ -+ return 0; -+} -+ - #endif /* CONFIG_MODULES */ - - struct device_driver; diff --git a/src/patches/cpio-2.6-security_fixes-1.patch b/src/patches/cpio-2.6-security_fixes-1.patch deleted file mode 100644 index 083c785..0000000 --- a/src/patches/cpio-2.6-security_fixes-1.patch +++ /dev/null @@ -1,370 +0,0 @@ -Submitted By: Ken Moffat ken@kenmoffat.uklinux.net -Date: 2005-07-29 -Initial Package Version: 2.6 -Upstream Status: Unknown -Origin: from Mandrake -Description: Vulnerability fixes, rediffed so that they all apply with - -p1 and consolidated to single patch. Also applicable to earlier versions. -(1.) CAN-1999-1572 (still seems to apply to 2.6) cpio uses a 0 umask when -creating files with -O or -F options, which creates the files with mode 0666 -and allows local users to overwrite them. Fix originally fom debian. -(2.) CAN-2005-1111 Race condition in 2.6 and earlier allows local users to -modify permissions of arbitrary files via a hard-link attack. Fix -originally from fedora. -(3.) CAN-2005-1229 Directory traversal vulnerability allows remote -attackers to write to arbitrary directories via a dot dot in a cpio file. -Fix by Peter Vrabec at RedHat. - -diff -Naur cpio-2.6.vanilla/doc/cpio.1 cpio-2.6/doc/cpio.1 ---- cpio-2.6.vanilla/doc/cpio.1 2004-08-30 17:21:48.000000000 +0100 -+++ cpio-2.6/doc/cpio.1 2005-07-29 13:46:42.000000000 +0100 -@@ -20,7 +20,7 @@ - [--unconditional] [--verbose] [--block-size=blocks] [--swap-halfwords] - [--io-size=bytes] [--pattern-file=file] [--format=format] - [--owner=[user][:.][group]] [--no-preserve-owner] [--message=message] --[--force-local] [--no-absolute-filenames] [--sparse] -+[--force-local] [--absolute-filenames] [--sparse] - [--only-verify-crc] [--quiet] [--rsh-command=command] [--help] - [--version] [pattern...] [< archive] - -diff -Naur cpio-2.6.vanilla/doc/cpio.info cpio-2.6/doc/cpio.info ---- cpio-2.6.vanilla/doc/cpio.info 2004-02-27 12:42:01.000000000 +0000 -+++ cpio-2.6/doc/cpio.info 2005-07-29 13:46:42.000000000 +0100 -@@ -203,7 +203,7 @@ - [--swap-halfwords] [--io-size=bytes] [--pattern-file=file] - [--format=format] [--owner=[user][:.][group]] - [--no-preserve-owner] [--message=message] [--help] [--version] -- [-no-absolute-filenames] [--sparse] [-only-verify-crc] [-quiet] -+ [--absolute-filenames] [--sparse] [-only-verify-crc] [-quiet] - [--rsh-command=command] [pattern...] [< archive] - - -@@ -358,9 +358,9 @@ - Show numeric UID and GID instead of translating them into names - when using the `--verbose option'. - --`--no-absolute-filenames' -- Create all files relative to the current directory in copy-in -- mode, even if they have an absolute file name in the archive. -+`--absolute-filenames' -+ Do not strip leading file name components that contain ".." -+ and leading slashes from file names in copy-in mode - - `--no-preserve-owner' - Do not change the ownership of the files; leave them owned by the -diff -Naur cpio-2.6.vanilla/src/copyin.c cpio-2.6/src/copyin.c ---- cpio-2.6.vanilla/src/copyin.c 2004-09-08 12:10:02.000000000 +0100 -+++ cpio-2.6/src/copyin.c 2005-07-29 13:46:42.000000000 +0100 -@@ -25,6 +25,7 @@ - #include "dstring.h" - #include "extern.h" - #include "defer.h" -+#include "dirname.h" - #include <rmt.h> - #ifndef FNM_PATHNAME - #include <fnmatch.h> -@@ -389,19 +390,26 @@ - continue; - } - -- if (close (out_file_des) < 0) -- error (0, errno, "%s", d->header.c_name); -- -+ /* -+ * Avoid race condition. -+ * Set chown and chmod before closing the file desc. -+ * pvrabec@redhat.com -+ */ -+ - /* File is now copied; set attributes. */ - if (!no_chown_flag) -- if ((chown (d->header.c_name, -+ if ((fchown (out_file_des, - set_owner_flag ? set_owner : d->header.c_uid, - set_group_flag ? set_group : d->header.c_gid) < 0) - && errno != EPERM) - error (0, errno, "%s", d->header.c_name); - /* chown may have turned off some permissions we wanted. */ -- if (chmod (d->header.c_name, (int) d->header.c_mode) < 0) -+ if (fchmod (out_file_des, (int) d->header.c_mode) < 0) - error (0, errno, "%s", d->header.c_name); -+ -+ if (close (out_file_des) < 0) -+ error (0, errno, "%s", d->header.c_name); -+ - if (retain_time_flag) - { - times.actime = times.modtime = d->header.c_mtime; -@@ -557,6 +565,25 @@ - write (out_file_des, "", 1); - delayed_seek_count = 0; - } -+ -+ /* -+ * Avoid race condition. -+ * Set chown and chmod before closing the file desc. -+ * pvrabec@redhat.com -+ */ -+ -+ /* File is now copied; set attributes. */ -+ if (!no_chown_flag) -+ if ((fchown (out_file_des, -+ set_owner_flag ? set_owner : file_hdr->c_uid, -+ set_group_flag ? set_group : file_hdr->c_gid) < 0) -+ && errno != EPERM) -+ error (0, errno, "%s", file_hdr->c_name); -+ -+ /* chown may have turned off some permissions we wanted. */ -+ if (fchmod (out_file_des, (int) file_hdr->c_mode) < 0) -+ error (0, errno, "%s", file_hdr->c_name); -+ - if (close (out_file_des) < 0) - error (0, errno, "%s", file_hdr->c_name); - -@@ -567,18 +594,6 @@ - file_hdr->c_name, crc, file_hdr->c_chksum); - } - -- /* File is now copied; set attributes. */ -- if (!no_chown_flag) -- if ((chown (file_hdr->c_name, -- set_owner_flag ? set_owner : file_hdr->c_uid, -- set_group_flag ? set_group : file_hdr->c_gid) < 0) -- && errno != EPERM) -- error (0, errno, "%s", file_hdr->c_name); -- -- /* chown may have turned off some permissions we wanted. */ -- if (chmod (file_hdr->c_name, (int) file_hdr->c_mode) < 0) -- error (0, errno, "%s", file_hdr->c_name); -- - if (retain_time_flag) - { - struct utimbuf times; /* For setting file times. */ -@@ -589,7 +604,7 @@ - if (utime (file_hdr->c_name, ×) < 0) - error (0, errno, "%s", file_hdr->c_name); - } -- -+ - tape_skip_padding (in_file_des, file_hdr->c_filesize); - if (file_hdr->c_nlink > 1 - && (archive_format == arf_newascii || archive_format == arf_crcascii) ) -@@ -1335,6 +1350,53 @@ - } - } - -+/* Return a safer suffix of FILE_NAME, or "." if it has no safer -+ suffix. Check for fully specified file names and other atrocities. */ -+ -+static const char * -+safer_name_suffix (char const *file_name) -+{ -+ char const *p; -+ -+ /* Skip file system prefixes, leading file name components that contain -+ "..", and leading slashes. */ -+ -+ size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (file_name); -+ -+ for (p = file_name + prefix_len; *p;) -+ { -+ if (p[0] == '.' && p[1] == '.' && (ISSLASH (p[2]) || !p[2])) -+ prefix_len = p + 2 - file_name; -+ -+ do -+ { -+ char c = *p++; -+ if (ISSLASH (c)) -+ break; -+ } -+ while (*p); -+ } -+ -+ for (p = file_name + prefix_len; ISSLASH (*p); p++) -+ continue; -+ prefix_len = p - file_name; -+ -+ if (prefix_len) -+ { -+ char *prefix = alloca (prefix_len + 1); -+ memcpy (prefix, file_name, prefix_len); -+ prefix[prefix_len] = '\0'; -+ -+ -+ error (0, 0, _("Removing leading `%s' from member names"), prefix); -+ } -+ -+ if (!*p) -+ p = "."; -+ -+ return p; -+} -+ - /* Read the collection from standard input and create files - in the file system. */ - -@@ -1445,18 +1507,11 @@ - - /* Do we have to ignore absolute paths, and if so, does the filename - have an absolute path? */ -- if (no_abs_paths_flag && file_hdr.c_name && file_hdr.c_name [0] == '/') -+ if (!abs_paths_flag && file_hdr.c_name && file_hdr.c_name [0]) - { -- char *p; -+ const char *p = safer_name_suffix (file_hdr.c_name); - -- p = file_hdr.c_name; -- while (*p == '/') -- ++p; -- if (*p == '\0') -- { -- strcpy (file_hdr.c_name, "."); -- } -- else -+ if (p != file_hdr.c_name) - { - /* Debian hack: file_hrd.c_name is sometimes set to - point to static memory by code in tar.c. This -diff -Naur cpio-2.6.vanilla/src/copypass.c cpio-2.6/src/copypass.c ---- cpio-2.6.vanilla/src/copypass.c 2004-09-06 13:09:04.000000000 +0100 -+++ cpio-2.6/src/copypass.c 2005-07-29 13:46:07.000000000 +0100 -@@ -181,19 +181,25 @@ - } - if (close (in_file_des) < 0) - error (0, errno, "%s", input_name.ds_string); -- if (close (out_file_des) < 0) -- error (0, errno, "%s", output_name.ds_string); -- -+ /* -+ * Avoid race condition. -+ * Set chown and chmod before closing the file desc. -+ * pvrabec@redhat.com -+ */ - /* Set the attributes of the new file. */ - if (!no_chown_flag) -- if ((chown (output_name.ds_string, -+ if ((fchown (out_file_des, - set_owner_flag ? set_owner : in_file_stat.st_uid, - set_group_flag ? set_group : in_file_stat.st_gid) < 0) - && errno != EPERM) - error (0, errno, "%s", output_name.ds_string); - /* chown may have turned off some permissions we wanted. */ -- if (chmod (output_name.ds_string, in_file_stat.st_mode) < 0) -+ if (fchmod (out_file_des, in_file_stat.st_mode) < 0) -+ error (0, errno, "%s", output_name.ds_string); -+ -+ if (close (out_file_des) < 0) - error (0, errno, "%s", output_name.ds_string); -+ - if (reset_time_flag) - { - times.actime = in_file_stat.st_atime; -diff -Naur cpio-2.6.vanilla/src/extern.h cpio-2.6/src/extern.h ---- cpio-2.6.vanilla/src/extern.h 2004-09-08 11:49:57.000000000 +0100 -+++ cpio-2.6/src/extern.h 2005-07-29 13:47:34.000000000 +0100 -@@ -46,7 +46,7 @@ - extern int sparse_flag; - extern int quiet_flag; - extern int only_verify_crc_flag; --extern int no_abs_paths_flag; -+extern int abs_paths_flag; - extern unsigned int warn_option; - - /* Values for warn_option */ -@@ -91,6 +91,7 @@ - extern char input_is_seekable; - extern char output_is_seekable; - extern char *program_name; -+extern mode_t sys_umask; - extern int (*xstat) (); - extern void (*copy_function) (); - -diff -Naur cpio-2.6.vanilla/src/global.c cpio-2.6/src/global.c ---- cpio-2.6.vanilla/src/global.c 2004-09-08 11:23:44.000000000 +0100 -+++ cpio-2.6/src/global.c 2005-07-29 13:47:34.000000000 +0100 -@@ -100,7 +100,7 @@ - int only_verify_crc_flag = false; - - /* If true, don't use any absolute paths, prefix them by `./'. */ --int no_abs_paths_flag = false; -+int abs_paths_flag = false; - - #ifdef DEBUG_CPIO - /* If true, print debugging information. */ -@@ -195,6 +195,9 @@ - /* The name this program was run with. */ - char *program_name; - -+/* Debian hack to make the -d option honor the umask. */ -+mode_t sys_umask; -+ - /* A pointer to either lstat or stat, depending on whether - dereferencing of symlinks is done for input files. */ - int (*xstat) (); -diff -Naur cpio-2.6.vanilla/src/main.c cpio-2.6/src/main.c ---- cpio-2.6.vanilla/src/main.c 2004-11-23 00:42:18.000000000 +0000 -+++ cpio-2.6/src/main.c 2005-07-29 13:47:34.000000000 +0100 -@@ -41,6 +41,7 @@ - - enum cpio_options { - NO_ABSOLUTE_FILENAMES_OPTION=256, -+ ABSOLUTE_FILENAMES_OPTION, - NO_PRESERVE_OWNER_OPTION, - ONLY_VERIFY_CRC_OPTION, - RENAME_BATCH_FILE_OPTION, -@@ -134,6 +135,8 @@ - N_("In copy-in mode, read additional patterns specifying filenames to extract or list from FILE"), 210}, - {"no-absolute-filenames", NO_ABSOLUTE_FILENAMES_OPTION, 0, 0, - N_("Create all files relative to the current directory"), 210}, -+ {"absolute-filenames", ABSOLUTE_FILENAMES_OPTION, 0, 0, -+ N_("do not strip leading file name components that contain ".." and leading slashes from file names"), 210}, - {"only-verify-crc", ONLY_VERIFY_CRC_OPTION, 0, 0, - N_("When reading a CRC format archive in copy-in mode, only verify the CRC's of each file in the archive, don't actually extract the files"), 210}, - {"rename", 'r', 0, 0, -@@ -392,7 +395,11 @@ - break; - - case NO_ABSOLUTE_FILENAMES_OPTION: /* --no-absolute-filenames */ -- no_abs_paths_flag = true; -+ abs_paths_flag = false; -+ break; -+ -+ case ABSOLUTE_FILENAMES_OPTION: /* --absolute-filenames */ -+ abs_paths_flag = true; - break; - - case NO_PRESERVE_OWNER_OPTION: /* --no-preserve-owner */ -@@ -631,7 +638,7 @@ - _("--append is used but no archive file name is given (use -F or -O options"))); - - CHECK_USAGE(rename_batch_file, "--rename-batch-file", "--create"); -- CHECK_USAGE(no_abs_paths_flag, "--no-absolute-pathnames", "--create"); -+ CHECK_USAGE(abs_paths_flag, "--absolute-pathnames", "--create"); - CHECK_USAGE(input_archive_name, "-I", "--create"); - if (archive_name && output_archive_name) - USAGE_ERROR ((0, 0, _("Both -O and -F are used in copy-out mode"))); -@@ -658,7 +665,7 @@ - CHECK_USAGE(rename_flag, "--rename", "--pass-through"); - CHECK_USAGE(append_flag, "--append", "--pass-through"); - CHECK_USAGE(rename_batch_file, "--rename-batch-file", "--pass-through"); -- CHECK_USAGE(no_abs_paths_flag, "--no-absolute-pathnames", -+ CHECK_USAGE(abs_paths_flag, "--absolute-pathnames", - "--pass-through"); - CHECK_USAGE(to_stdout_option, "--to-stdout", "--pass-through"); - -@@ -740,7 +747,6 @@ - textdomain (PACKAGE); - - program_name = argv[0]; -- umask (0); - - #ifdef __TURBOC__ - _fmode = O_BINARY; /* Put stdin and stdout in binary mode. */ -@@ -751,6 +757,7 @@ - #endif - - process_args (argc, argv); -+ sys_umask = umask (0); - - initialize_buffers (); - diff --git a/src/patches/grub-0.97_grub-install_virtio.patch b/src/patches/grub-0.97_grub-install_virtio.patch index 7941ca7..86afba9 100644 --- a/src/patches/grub-0.97_grub-install_virtio.patch +++ b/src/patches/grub-0.97_grub-install_virtio.patch @@ -1,40 +1,51 @@ -diff -Naur grub-0.97.org/util/grub-install.in grub-0.97/util/grub-install.in ---- grub-0.97.org/util/grub-install.in 2004-07-24 20:57:31.000000000 +0200 -+++ grub-0.97/util/grub-install.in 2009-08-14 20:01:20.000000000 +0200 -@@ -96,12 +96,12 @@ - # Break the device name into the disk part and the partition part. - case "$host_os" in +--- grub-0.97/util/grub-install.in 2010-06-24 08:47:23.000000000 +0200 ++++ grub-0.97/util/grub-install.in 2010-06-24 09:20:42.000000000 +0200 +@@ -102,7 +102,7 @@ linux*) -- tmp_disk=`echo "$1" | sed -e 's%([sh]d[a-z])[0-9]*$%\1%' \ -+ tmp_disk=`echo "$1" | sed -e 's%([vsh]d[a-z])[0-9]*$%\1%' \ - -e 's%(d[0-9]*)p[0-9]*$%\1%' \ - -e 's%(fd[0-9]*)$%\1%' \ - -e 's%/part[0-9]*$%/disc%' \ - -e 's%(c[0-7]d[0-9]*).*$%\1%'` -- tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]([0-9]*)$%\1%' \ -+ tmp_part=`echo "$1" | sed -e 's%.*/[vsh]d[a-z]([0-9]*)$%\1%' \ - -e 's%.*d[0-9]*p%%' \ - -e 's%.*/fd[0-9]*$%%' \ - -e 's%.*/floppy/[0-9]*$%%' \ -@@ -333,6 +333,10 @@ + # formats that need to be handled (disk name -> partition name): + # floppies: /dev/fd0 +- # normal sd/hd devices: /dev/hda -> /dev/hda3 ++ # normal sd/hd/vd devices: /dev/hda -> /dev/hda3 + # md: /dev/md0 -> /dev/md0p0 + # ide raid devs: /dev/ide/host0/bus0/target0/lun0/disc + # -> /dev/ide/host0/bus0/target0/lun0/part1 +@@ -134,7 +134,7 @@ + # more? + tmp_disk=`echo "$1" | grep -v '/mapper/control$' | + grep -v '/mapper/[[:alnum:]_]+-[[:digit:]]+$' | uniq | +- sed -e 's%([sh]d[a-z])[0-9]*$%\1%' \ ++ sed -e 's%([shv]d[a-z])[0-9]*$%\1%' \ + -e 's%(/c[0-9]+d[0-9]+).*$%\1%' \ + -e 's%(fd[0-9]*)$%\1%' \ + -e 's%/part[0-9]*$%/disc%' \ +@@ -142,7 +142,7 @@ + -e 's%(/mapper/[[:alnum:]]+(_[[:alnum:]]+)+)\p[[:digit:]]+$%\1%'` + tmp_part=`echo "$1" | grep -v '/mapper/control$' | + grep -v '/mapper/[[:alnum:]_]+-[[:digit:]]+$' | uniq | +- sed -e 's%.*/[sh]d[a-z]([0-9]*)$%\1%' \ ++ sed -e 's%.*/[shv]d[a-z]([0-9]*)$%\1%' \ + -e 's%.*/c[0-9]+d[0-9]+p([[:digit:]]+)%\1%' \ + -e 's%.*/c[0-9]+d[0-9]+$%%' \ + -e 's%.*/fd[0-9]+$%%' \ +@@ -509,6 +509,10 @@ if test -f "$device_map"; then : else + + tmp_disk=`echo "$install_device" | grep "/dev/vd"` + if test "x$tmp_disk" = x; then -+ ++ # Create a safe temporary file. test -n "$mklog" && log_file=`$mklog`
-@@ -345,6 +349,11 @@ +@@ -525,6 +529,11 @@ fi
rm -f $log_file + + else -+ echo "Create fake device.map for vitio device $1" 1>&2 -+ echo "(hd0) $install_device" > $device_map ++ echo "Create fake device.map for virtio device $1" 1>&2 ++ echo "(hd0) $install_device" > $device_map + fi fi
diff --git a/src/patches/hostapd-usb_hw_did_not_ack.patch b/src/patches/hostapd-usb_hw_did_not_ack.patch deleted file mode 100644 index 2f555e5..0000000 --- a/src/patches/hostapd-usb_hw_did_not_ack.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Naur hostapd-0.6.9.org/hostapd/ieee802_11.c hostapd-0.6.9/hostapd/ieee802_11.c ---- hostapd-0.6.9.org/hostapd/ieee802_11.c 2009-03-23 15:06:28.000000000 +0100 -+++ hostapd-0.6.9/hostapd/ieee802_11.c 2009-07-07 23:13:37.000000000 +0200 -@@ -1497,7 +1497,7 @@ - hostapd_logger(hapd, mgmt->da, HOSTAPD_MODULE_IEEE80211, - HOSTAPD_LEVEL_NOTICE, - "did not acknowledge authentication response"); -- return; -+ //return; - } - - if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) { -@@ -1571,7 +1571,7 @@ - hostapd_logger(hapd, mgmt->da, HOSTAPD_MODULE_IEEE80211, - HOSTAPD_LEVEL_DEBUG, - "did not acknowledge association response"); -- return; -+ //return; - } - - if (len < IEEE80211_HDRLEN + (reassoc ? sizeof(mgmt->u.reassoc_resp) : diff --git a/src/patches/imq-skbuff.patch b/src/patches/imq-skbuff.patch deleted file mode 100644 index fa9b7d6..0000000 --- a/src/patches/imq-skbuff.patch +++ /dev/null @@ -1,65 +0,0 @@ ---- linux-2.6.27.21/include/linux/skbuff.h 2009-07-22 08:06:40.000000000 +0000 -+++ linux-2.6.27.21/include/linux/skbuff.h.imq 2009-07-22 08:12:55.000000000 +0000 -@@ -28,6 +28,9 @@ - #include <linux/rcupdate.h> - #include <linux/dmaengine.h> - #include <linux/hrtimer.h> -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+#include <linux/imq.h> -+#endif - - #define HAVE_ALLOC_SKB /* For the drivers to know */ - #define HAVE_ALIGNABLE_SKB /* Ditto 8) */ -@@ -274,6 +277,9 @@ - * first. This is owned by whoever has the skb queued ATM. - */ - char cb[48]; -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ void *cb_next; -+#endif - - unsigned int len, - data_len; -@@ -304,6 +310,9 @@ - struct nf_conntrack *nfct; - struct sk_buff *nfct_reasm; - #endif -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ struct nf_queue_entry *nf_queue_entry; -+#endif - #ifdef CONFIG_BRIDGE_NETFILTER - struct nf_bridge_info *nf_bridge; - #endif -@@ -330,6 +339,9 @@ - proto_csum_blank:1; - #endif - /* 10-16 bit hole */ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ __u8 imq_flags:IMQ_F_BITS; -+#endif - - #ifdef CONFIG_NET_DMA - dma_cookie_t dma_cookie; -@@ -374,6 +386,11 @@ - #endif - } - -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+extern int skb_save_cb(struct sk_buff *skb); -+extern int skb_restore_cb(struct sk_buff *skb); -+#endif -+ - extern void kfree_skb(struct sk_buff *skb); - extern void __kfree_skb(struct sk_buff *skb); - extern struct sk_buff *__alloc_skb(unsigned int size, -@@ -1688,6 +1705,10 @@ - dst->nfct_reasm = src->nfct_reasm; - nf_conntrack_get_reasm(src->nfct_reasm); - #endif -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ dst->imq_flags = src->imq_flags; -+ dst->nf_queue_entry = src->nf_queue_entry; -+#endif - #ifdef CONFIG_BRIDGE_NETFILTER - dst->nf_bridge = src->nf_bridge; - nf_bridge_get(src->nf_bridge); diff --git a/src/patches/ip_conntrack_standalone-patch-for-ipfire.patch b/src/patches/ip_conntrack_standalone-patch-for-ipfire.patch deleted file mode 100644 index 183d053..0000000 --- a/src/patches/ip_conntrack_standalone-patch-for-ipfire.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- net/ipv4/netfilter/ip_conntrack_standalone.c~ 2006-12-12 01:50:40.000000000 +0000 -+++ net/ipv4/netfilter/ip_conntrack_standalone.c 2006-12-16 16:29:28.000000000 +0000 -@@ -804,7 +804,7 @@ - - #ifdef CONFIG_PROC_FS - ret = -ENOMEM; -- proc = proc_net_fops_create("ip_conntrack", 0440, &ct_file_ops); -+ proc = proc_net_fops_create("ip_conntrack", 0444, &ct_file_ops); - if (!proc) goto cleanup_init; - - proc_exp = proc_net_fops_create("ip_conntrack_expect", 0440, diff --git a/src/patches/iptables-1.4.1.1-ipp2p-0.8.2-pomng.patch b/src/patches/iptables-1.4.1.1-ipp2p-0.8.2-pomng.patch deleted file mode 100644 index ed71d4d..0000000 --- a/src/patches/iptables-1.4.1.1-ipp2p-0.8.2-pomng.patch +++ /dev/null @@ -1,481 +0,0 @@ -diff -Naur iptables-1.4.1.1.org/extensions/.ipp2p-test iptables-1.4.1.1/extensions/.ipp2p-test ---- iptables-1.4.1.1.org/extensions/.ipp2p-test 1970-01-01 00:00:00.000000000 +0000 -+++ iptables-1.4.1.1/extensions/.ipp2p-test 2008-09-22 21:58:41.000000000 +0000 -@@ -0,0 +1,2 @@ -+#! /bin/sh -+[ -f $KERNEL_DIR/include/linux/netfilter_ipv4/ipt_ipp2p.h ] && echo ipp2p -diff -Naur iptables-1.4.1.1.org/extensions/libipt_ipp2p.c iptables-1.4.1.1/extensions/libipt_ipp2p.c ---- iptables-1.4.1.1.org/extensions/libipt_ipp2p.c 1970-01-01 00:00:00.000000000 +0000 -+++ iptables-1.4.1.1/extensions/libipt_ipp2p.c 2008-09-22 21:58:41.000000000 +0000 -@@ -0,0 +1,424 @@ -+#include <stdio.h> -+#include <netdb.h> -+#include <string.h> -+#include <stdlib.h> -+#include <getopt.h> -+#include <ctype.h> -+ -+#include <iptables.h> -+ -+#include <linux/netfilter_ipv4/ipt_ipp2p.h> -+ -+#ifndef XTABLES_VERSION -+#define XTABLES_VERSION IPTABLES_VERSION -+#endif -+ -+#ifdef IPT_LIB_DIR -+#define xtables_target iptables_target -+#define xtables_register_target register_target -+#endif -+ -+static void -+help(void) -+{ -+ printf( -+ "IPP2P v%s options:\n" -+ " --ipp2p Grab all known p2p packets\n" -+ " --edk [TCP&UDP] All known eDonkey/eMule/Overnet packets\n" -+ " --dc [TCP] All known Direct Connect packets\n" -+ " --kazaa [TCP&UDP] All known KaZaA packets\n" -+ " --gnu [TCP&UDP] All known Gnutella packets\n" -+ " --bit [TCP&UDP] All known BitTorrent packets\n" -+ " --apple [TCP] All known AppleJuice packets\n" -+ " --winmx [TCP] All known WinMX\n" -+ " --soul [TCP] All known SoulSeek\n" -+ " --ares [TCP] All known Ares\n\n" -+ " EXPERIMENTAL protocols (please send feedback to: ipp2p@ipp2p.org) :\n" -+ " --mute [TCP] All known Mute packets\n" -+ " --waste [TCP] All known Waste packets\n" -+ " --xdcc [TCP] All known XDCC packets (only xdcc login)\n\n" -+ " DEBUG SUPPPORT, use only if you know why\n" -+ " --debug Generate kernel debug output, THIS WILL SLOW DOWN THE FILTER\n" -+ "\nNote that the follwing options will have the same meaning:\n" -+ " '--ipp2p' is equal to '--edk --dc --kazaa --gnu --bit --apple --winmx --soul --ares'\n" -+ "\nIPP2P was intended for TCP only. Due to increasing usage of UDP we needed to change this.\n" -+ "You can now use -p udp to search UDP packets only or without -p switch to search UDP and TCP packets.\n" -+ "\nSee README included with this package for more details or visit http://www.ipp2p.org%5Cn" -+ "\nExamples:\n" -+ " iptables -A FORWARD -m ipp2p --ipp2p -j MARK --set-mark 0x01\n" -+ " iptables -A FORWARD -p udp -m ipp2p --kazaa --bit -j DROP\n" -+ " iptables -A FORWARD -p tcp -m ipp2p --edk --soul -j DROP\n\n" -+ , IPP2P_VERSION); -+} -+ -+static struct option opts[] = { -+ { "ipp2p", 0, 0, '1' }, -+ { "edk", 0, 0, '2' }, -+ { "dc", 0, 0, '7' }, -+ { "gnu", 0, 0, '9' }, -+ { "kazaa", 0, 0, 'a' }, -+ { "bit", 0, 0, 'b' }, -+ { "apple", 0, 0, 'c' }, -+ { "soul", 0, 0, 'd' }, -+ { "winmx", 0, 0, 'e' }, -+ { "ares", 0, 0, 'f' }, -+ { "mute", 0, 0, 'g' }, -+ { "waste", 0, 0, 'h' }, -+ { "xdcc", 0, 0, 'i' }, -+ { "debug", 0, 0, 'j' }, -+ {0} -+}; -+ -+ -+static void -+#ifdef _XTABLES_H -+init(struct xt_entry_match *m) -+#else -+init(struct ipt_entry_match *t, unsigned int *nfcache) -+#endif -+{ -+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)m->data; -+ -+#ifndef _XTABLES_H -+ *nfcache |= NFC_UNKNOWN; -+#endif -+ -+ /*init the module with default values*/ -+ info->cmd = 0; -+ info->debug = 0; -+ -+} -+ -+ -+static int -+parse(int c, char **argv, int invert, unsigned int *flags, -+#ifdef _XTABLES_H -+ const void *entry, struct xt_entry_match **match) -+#else -+ const struct ipt_entry *entry, unsigned int *nfcache, struct ipt_entry_match **match) -+#endif -+{ -+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)(*match)->data; -+ -+ switch (c) { -+ case '1': /*cmd: ipp2p*/ -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified once!"); -+ -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!"); -+*/ -+ -+ if ((*flags) != 0) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += SHORT_HAND_IPP2P; -+ info->cmd = *flags; -+ break; -+ -+ case '2': /*cmd: edk*/ -+ if ((*flags & IPP2P_EDK) == IPP2P_EDK) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--edk' may only be " -+ "specified once"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!");*/ -+ if ((*flags & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: use `--edk' OR `--edk-data' but not both of them!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_EDK; -+ info->cmd = *flags; -+ break; -+ -+ -+ case '7': /*cmd: dc*/ -+ if ((*flags & IPP2P_DC) == IPP2P_DC) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--dc' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!");*/ -+ if ((*flags & IPP2P_DATA_DC) == IPP2P_DATA_DC) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: use `--dc' OR `--dc-data' but not both of them!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_DC; -+ info->cmd = *flags; -+ break; -+ -+ -+ case '9': /*cmd: gnu*/ -+ if ((*flags & IPP2P_GNU) == IPP2P_GNU) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--gnu' may only be " -+ "specified once!"); -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!");*/ -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if ((*flags & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: use `--gnu' OR `--gnu-data' but not both of them!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_GNU; -+ info->cmd = *flags; -+ break; -+ -+ case 'a': /*cmd: kazaa*/ -+ if ((*flags & IPP2P_KAZAA) == IPP2P_KAZAA) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--kazaa' may only be " -+ "specified once!"); -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!");*/ -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if ((*flags & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: use `--kazaa' OR `--kazaa-data' but not both of them!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_KAZAA; -+ info->cmd = *flags; -+ break; -+ -+ case 'b': /*cmd: bit*/ -+ if ((*flags & IPP2P_BIT) == IPP2P_BIT) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--bit' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_BIT; -+ info->cmd = *flags; -+ break; -+ -+ case 'c': /*cmd: apple*/ -+ if ((*flags & IPP2P_APPLE) == IPP2P_APPLE) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--apple' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_APPLE; -+ info->cmd = *flags; -+ break; -+ -+ -+ case 'd': /*cmd: soul*/ -+ if ((*flags & IPP2P_SOUL) == IPP2P_SOUL) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--soul' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_SOUL; -+ info->cmd = *flags; -+ break; -+ -+ -+ case 'e': /*cmd: winmx*/ -+ if ((*flags & IPP2P_WINMX) == IPP2P_WINMX) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--winmx' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_WINMX; -+ info->cmd = *flags; -+ break; -+ -+ case 'f': /*cmd: ares*/ -+ if ((*flags & IPP2P_ARES) == IPP2P_ARES) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ares' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_ARES; -+ info->cmd = *flags; -+ break; -+ -+ case 'g': /*cmd: mute*/ -+ if ((*flags & IPP2P_MUTE) == IPP2P_MUTE) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--mute' may only be " -+ "specified once!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_MUTE; -+ info->cmd = *flags; -+ break; -+ case 'h': /*cmd: waste*/ -+ if ((*flags & IPP2P_WASTE) == IPP2P_WASTE) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--waste' may only be " -+ "specified once!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_WASTE; -+ info->cmd = *flags; -+ break; -+ case 'i': /*cmd: xdcc*/ -+ if ((*flags & IPP2P_XDCC) == IPP2P_XDCC) -+ exit_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ares' may only be " -+ "specified once!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_XDCC; -+ info->cmd = *flags; -+ break; -+ -+ case 'j': /*cmd: debug*/ -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ info->debug = 1; -+ break; -+ -+ default: -+// exit_error(PARAMETER_PROBLEM, -+// "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n"); -+ return 0; -+ } -+ return 1; -+} -+ -+ -+static void -+final_check(unsigned int flags) -+{ -+ if (!flags) -+ exit_error(PARAMETER_PROBLEM, -+ "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n"); -+} -+ -+static void -+#ifdef _XTABLES_H -+print(const void *ip, -+ const struct xt_entry_match *match, -+#else -+print(const struct ipt_ip *ip, -+ const struct ipt_entry_match *match, -+#endif -+ int numeric) -+{ -+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data; -+ -+ printf("ipp2p v%s", IPP2P_VERSION); -+ if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf(" --ipp2p"); -+// if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf(" --ipp2p-data"); -+ if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf(" --kazaa"); -+// if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf(" --kazaa-data"); -+// if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf(" --gnu-data"); -+ if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf(" --gnu"); -+ if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf(" --edk"); -+// if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf(" --edk-data"); -+// if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf(" --dc-data"); -+ if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf(" --dc"); -+ if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf(" --bit"); -+ if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf(" --apple"); -+ if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf(" --soul"); -+ if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf(" --winmx"); -+ if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf(" --ares"); -+ if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute"); -+ if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste"); -+ if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc"); -+ if (info->debug != 0) printf(" --debug"); -+ printf(" "); -+} -+ -+static void -+#ifdef _XTABLES_H -+save(const void *ip, -+ const struct xt_entry_match *match) -+#else -+save(const struct ipt_ip *ip, -+ const struct ipt_entry_match *match) -+#endif -+{ -+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data; -+ -+ if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf("--ipp2p "); -+// if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf("--ipp2p-data "); -+ if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf("--kazaa "); -+// if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf("--kazaa-data "); -+// if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf("--gnu-data "); -+ if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf("--gnu "); -+ if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf("--edk "); -+// if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf("--edk-data "); -+// if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf("--dc-data "); -+ if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf("--dc "); -+ if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf("--bit "); -+ if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf("--apple "); -+ if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf("--soul "); -+ if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf("--winmx "); -+ if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf("--ares "); -+ if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute"); -+ if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste"); -+ if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc"); -+ if (info->debug != 0) printf("--debug "); -+} -+ -+ -+static -+struct xtables_match ipp2p= -+{ -+ .next = NULL, -+ .name = "ipp2p", -+ .version = XTABLES_VERSION, -+ .size = IPT_ALIGN(sizeof(struct ipt_p2p_info)), -+ .userspacesize = IPT_ALIGN(sizeof(struct ipt_p2p_info)), -+ .help = &help, -+ .init = &init, -+ .parse = &parse, -+ .final_check = &final_check, -+ .print = &print, -+ .save = &save, -+ .extra_opts = opts -+}; -+ -+ -+ -+void _init(void) -+{ -+ xtables_register_match(&ipp2p); -+} -+ -diff -Naur iptables-1.4.1.1.org/extensions/libipt_ipp2p.man iptables-1.4.1.1/extensions/libipt_ipp2p.man ---- iptables-1.4.1.1.org/extensions/libipt_ipp2p.man 1970-01-01 00:00:00.000000000 +0000 -+++ iptables-1.4.1.1/extensions/libipt_ipp2p.man 2008-09-22 21:58:41.000000000 +0000 -@@ -0,0 +1,43 @@ -+This module matches certain packets in P2P flows. It is not -+designed to match all packets belonging to a P2P connection - -+use IPP2P together with CONNMARK for this purpose. Also visit -+http://www.ipp2p.org for detailed information. -+ -+Use it together with -p tcp or -p udp to search these protocols -+only or without -p switch to search packets of both protocols. -+ -+IPP2P provides the following options: -+.TP -+.B "--edk " -+Matches as many eDonkey/eMule packets as possible. -+.TP -+.B "--kazaa " -+Matches as many KaZaA packets as possible. -+.TP -+.B "--gnu " -+Matches as many Gnutella packets as possible. -+.TP -+.B "--dc " -+Matches as many Direct Connect packets as possible. -+.TP -+.B "--bit " -+Matches BitTorrent packets. -+.TP -+.B "--apple " -+Matches AppleJuice packets. -+.TP -+.B "--soul " -+Matches some SoulSeek packets. Considered as beta, use careful! -+.TP -+.B "--winmx " -+Matches some WinMX packets. Considered as beta, use careful! -+.TP -+.B "--ares " -+Matches Ares and AresLite packets. Use together with -j DROP only. -+.TP -+.B "--ipp2p " -+Short hand for: --edk --kazaa --gnu --dc -+.TP -+.B "--debug " -+Prints some information about each hit into kernel logfile. May -+produce huge logfiles so beware! diff --git a/src/patches/iptables-1.4.2-imq.patch b/src/patches/iptables-1.4.2-imq.patch deleted file mode 100644 index 7fdcab8..0000000 --- a/src/patches/iptables-1.4.2-imq.patch +++ /dev/null @@ -1,99 +0,0 @@ -diff -Naur iptables-1.4.2/extensions/.IMQ-test iptables/extensions/.IMQ-test ---- iptables-1.4.2/extensions/.IMQ-test 1970-01-01 10:00:00.000000000 +1000 -+++ iptables/extensions/.IMQ-test 2008-06-08 22:41:49.000000000 +1000 -@@ -0,0 +1,3 @@ -+#!/bin/sh -+# True if IMQ target patch is applied. -+[ -f $KERNEL_DIR/include/linux/netfilter/xt_IMQ.h ] && echo IMQ -diff -Naur iptables-1.4.2/extensions/libipt_IMQ.c iptables/extensions/libipt_IMQ.c ---- iptables-1.4.2/extensions/libipt_IMQ.c 1970-01-01 10:00:00.000000000 +1000 -+++ iptables/extensions/libipt_IMQ.c 2008-06-08 22:46:25.000000000 +1000 -@@ -0,0 +1,88 @@ -+/* Shared library add-on to iptables to add IMQ target support. */ -+#include <stdio.h> -+#include <string.h> -+#include <stdlib.h> -+#include <getopt.h> -+ -+#include <xtables.h> -+#include <linux/netfilter/x_tables.h> -+#include <linux/netfilter/xt_IMQ.h> -+ -+/* Function which prints out usage message. */ -+static void IMQ_help(void) -+{ -+ printf( -+"IMQ target v%s options:\n" -+" --todev <N> enqueue to imq<N>, defaults to 0\n", -+XTABLES_VERSION); -+} -+ -+static struct option IMQ_opts[] = { -+ { "todev", 1, 0, '1' }, -+ { 0 } -+}; -+ -+/* Initialize the target. */ -+static void IMQ_init(struct xt_entry_target *t) -+{ -+ struct xt_imq_info *mr = (struct xt_imq_info*)t->data; -+ -+ mr->todev = 0; -+} -+ -+/* Function which parses command options; returns true if it -+ ate an option */ -+static int IMQ_parse(int c, char **argv, int invert, unsigned int *flags, -+ const void *entry, struct xt_entry_target **target) -+{ -+ struct xt_imq_info *mr = (struct xt_imq_info*)(*target)->data; -+ -+ switch(c) { -+ case '1': -+ if (check_inverse(optarg, &invert, NULL, 0)) -+ exit_error(PARAMETER_PROBLEM, -+ "Unexpected `!' after --todev"); -+ mr->todev=atoi(optarg); -+ break; -+ default: -+ return 0; -+ } -+ return 1; -+} -+ -+/* Prints out the targinfo. */ -+static void IMQ_print(const void *ip, -+ const struct xt_entry_target *target, -+ int numeric) -+{ -+ struct xt_imq_info *mr = (struct xt_imq_info*)target->data; -+ -+ printf("IMQ: todev %u ", mr->todev); -+} -+ -+/* Saves the union ipt_targinfo in parsable form to stdout. */ -+static void IMQ_save(const void *ip, const struct xt_entry_target *target) -+{ -+ struct xt_imq_info *mr = (struct xt_imq_info*)target->data; -+ -+ printf("--todev %u", mr->todev); -+} -+ -+static struct xtables_target imq = { -+ .name = "IMQ", -+ .version = XTABLES_VERSION, -+ .family = PF_INET, -+ .size = XT_ALIGN(sizeof(struct xt_imq_info)), -+ .userspacesize = XT_ALIGN(sizeof(struct xt_imq_info)), -+ .help = IMQ_help, -+ .init = IMQ_init, -+ .parse = IMQ_parse, -+ .print = IMQ_print, -+ .save = IMQ_save, -+ .extra_opts = IMQ_opts, -+}; -+ -+void _init(void) -+{ -+ xtables_register_target(&imq); -+} diff --git a/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch b/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch index 5f9c307..68e44b1 100644 --- a/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch +++ b/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch @@ -113,42 +113,42 @@ diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extension + switch (c) { + case '1': /*cmd: ipp2p*/ + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified once!"); + +/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p-data' may only be " + "specified alone!"); +*/ + + if ((*flags) != 0) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += SHORT_HAND_IPP2P; + info->cmd = *flags; + break; + + case '2': /*cmd: edk*/ + if ((*flags & IPP2P_EDK) == IPP2P_EDK) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--edk' may only be " + "specified once"); + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); +/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p-data' may only be " + "specified alone!");*/ + if ((*flags & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: use `--edk' OR `--edk-data' but not both of them!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_EDK; + info->cmd = *flags; + break; @@ -156,21 +156,21 @@ diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extension + + case '7': /*cmd: dc*/ + if ((*flags & IPP2P_DC) == IPP2P_DC) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--dc' may only be " + "specified once!"); + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); +/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p-data' may only be " + "specified alone!");*/ + if ((*flags & IPP2P_DATA_DC) == IPP2P_DATA_DC) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: use `--dc' OR `--dc-data' but not both of them!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_DC; + info->cmd = *flags; + break; @@ -178,70 +178,70 @@ diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extension + + case '9': /*cmd: gnu*/ + if ((*flags & IPP2P_GNU) == IPP2P_GNU) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--gnu' may only be " + "specified once!"); +/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p-data' may only be " + "specified alone!");*/ + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); + if ((*flags & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: use `--gnu' OR `--gnu-data' but not both of them!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_GNU; + info->cmd = *flags; + break; + + case 'a': /*cmd: kazaa*/ + if ((*flags & IPP2P_KAZAA) == IPP2P_KAZAA) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--kazaa' may only be " + "specified once!"); +/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p-data' may only be " + "specified alone!");*/ + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); + if ((*flags & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: use `--kazaa' OR `--kazaa-data' but not both of them!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_KAZAA; + info->cmd = *flags; + break; + + case 'b': /*cmd: bit*/ + if ((*flags & IPP2P_BIT) == IPP2P_BIT) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--bit' may only be " + "specified once!"); + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_BIT; + info->cmd = *flags; + break; + + case 'c': /*cmd: apple*/ + if ((*flags & IPP2P_APPLE) == IPP2P_APPLE) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--apple' may only be " + "specified once!"); + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_APPLE; + info->cmd = *flags; + break; @@ -249,14 +249,14 @@ diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extension + + case 'd': /*cmd: soul*/ + if ((*flags & IPP2P_SOUL) == IPP2P_SOUL) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--soul' may only be " + "specified once!"); + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_SOUL; + info->cmd = *flags; + break; @@ -264,67 +264,67 @@ diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extension + + case 'e': /*cmd: winmx*/ + if ((*flags & IPP2P_WINMX) == IPP2P_WINMX) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--winmx' may only be " + "specified once!"); + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_WINMX; + info->cmd = *flags; + break; + + case 'f': /*cmd: ares*/ + if ((*flags & IPP2P_ARES) == IPP2P_ARES) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ares' may only be " + "specified once!"); + if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ipp2p' may only be " + "specified alone!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_ARES; + info->cmd = *flags; + break; + + case 'g': /*cmd: mute*/ + if ((*flags & IPP2P_MUTE) == IPP2P_MUTE) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--mute' may only be " + "specified once!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_MUTE; + info->cmd = *flags; + break; + case 'h': /*cmd: waste*/ + if ((*flags & IPP2P_WASTE) == IPP2P_WASTE) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--waste' may only be " + "specified once!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_WASTE; + info->cmd = *flags; + break; + case 'i': /*cmd: xdcc*/ + if ((*flags & IPP2P_XDCC) == IPP2P_XDCC) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "ipp2p: `--ares' may only be " + "specified once!"); -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + *flags += IPP2P_XDCC; + info->cmd = *flags; + break; + + case 'j': /*cmd: debug*/ -+ if (invert) exit_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); + info->debug = 1; + break; + + default: -+// exit_error(PARAMETER_PROBLEM, ++// xtables_error(PARAMETER_PROBLEM, +// "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n"); + return 0; + } @@ -336,7 +336,7 @@ diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extension +final_check(unsigned int flags) +{ + if (!flags) -+ exit_error(PARAMETER_PROBLEM, ++ xtables_error(PARAMETER_PROBLEM, + "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n"); +} + diff --git a/src/patches/linux-2.6.24-leds-alix.patch b/src/patches/linux-2.6.24-leds-alix.patch deleted file mode 100644 index 13e5b35..0000000 --- a/src/patches/linux-2.6.24-leds-alix.patch +++ /dev/null @@ -1,203 +0,0 @@ -diff -Nur linux-2.6.24.old/drivers/leds/Kconfig linux-2.6.24/drivers/leds/Kconfig ---- linux-2.6.24.old/drivers/leds/Kconfig 2008-01-24 23:58:37.000000000 +0100 -+++ linux-2.6.24/drivers/leds/Kconfig 2008-05-24 09:32:18.000000000 +0200 -@@ -81,6 +81,12 @@ - help - This option enables support for the PCEngines WRAP programmable LEDs. - -+config LEDS_ALIX -+ tristate "LED Support for the ALIX 2/3 boards" -+ depends on LEDS_CLASS -+ help -+ This option enables support for the three LEDs on the PCEngines ALIX 2/3 boards. -+ - config LEDS_H1940 - tristate "LED Support for iPAQ H1940 device" - depends on LEDS_CLASS && ARCH_H1940 -diff -Nur linux-2.6.24.old/drivers/leds/leds-alix.c linux-2.6.24/drivers/leds/leds-alix.c ---- linux-2.6.24.old/drivers/leds/leds-alix.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.24/drivers/leds/leds-alix.c 2008-05-24 09:32:18.000000000 +0200 -@@ -0,0 +1,172 @@ -+/* -+ * LEDs driver for PCEngines ALIX 2/3 series -+ * -+ * Copyright (C) 2007 Petr Liebman -+ * -+ * Based on leds-wrap.c -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/platform_device.h> -+#include <linux/leds.h> -+#include <linux/err.h> -+#include <asm/io.h> -+ -+#define DRVNAME "alix-led" -+ -+#define ALIX_LED1_PORT (0x6100) -+#define ALIX_LED1_ON (1<<22) -+#define ALIX_LED1_OFF (1<<6) -+ -+#define ALIX_LED2_PORT (0x6180) -+#define ALIX_LED2_ON (1<<25) -+#define ALIX_LED2_OFF (1<<9) -+ -+#define ALIX_LED3_PORT (0x6180) -+#define ALIX_LED3_ON (1<<27) -+#define ALIX_LED3_OFF (1<<11) -+ -+ -+static struct platform_device *pdev; -+ -+static void alix_led_set_1(struct led_classdev *led_cdev, -+ enum led_brightness value) -+{ -+ if (value) -+ outl(ALIX_LED1_ON, ALIX_LED1_PORT); -+ else -+ outl(ALIX_LED1_OFF, ALIX_LED1_PORT); -+} -+ -+static void alix_led_set_2(struct led_classdev *led_cdev, -+ enum led_brightness value) -+{ -+ if (value) -+ outl(ALIX_LED2_ON, ALIX_LED2_PORT); -+ else -+ outl(ALIX_LED2_OFF, ALIX_LED2_PORT); -+} -+ -+static void alix_led_set_3(struct led_classdev *led_cdev, -+ enum led_brightness value) -+{ -+ if (value) -+ outl(ALIX_LED3_ON, ALIX_LED3_PORT); -+ else -+ outl(ALIX_LED3_OFF, ALIX_LED3_PORT); -+} -+ -+static struct led_classdev alix_led_1 = { -+ .name = "alix:1", -+ .brightness_set = alix_led_set_1, -+}; -+ -+static struct led_classdev alix_led_2 = { -+ .name = "alix:2", -+ .brightness_set = alix_led_set_2, -+}; -+ -+static struct led_classdev alix_led_3 = { -+ .name = "alix:3", -+ .brightness_set = alix_led_set_3, -+}; -+ -+ -+#ifdef CONFIG_PM -+static int alix_led_suspend(struct platform_device *dev, -+ pm_message_t state) -+{ -+ led_classdev_suspend(&alix_led_1); -+ led_classdev_suspend(&alix_led_2); -+ led_classdev_suspend(&alix_led_3); -+ return 0; -+} -+ -+static int alix_led_resume(struct platform_device *dev) -+{ -+ led_classdev_resume(&alix_led_1); -+ led_classdev_resume(&alix_led_2); -+ led_classdev_resume(&alix_led_3); -+ return 0; -+} -+#else -+#define alix_led_suspend NULL -+#define alix_led_resume NULL -+#endif -+ -+static int alix_led_probe(struct platform_device *pdev) -+{ -+ int ret; -+ -+ ret = led_classdev_register(&pdev->dev, &alix_led_1); -+ if (ret >= 0) -+ { -+ ret = led_classdev_register(&pdev->dev, &alix_led_2); -+ if (ret >= 0) -+ { -+ ret = led_classdev_register(&pdev->dev, &alix_led_3); -+ if (ret < 0) -+ led_classdev_unregister(&alix_led_2); -+ } -+ if (ret < 0) -+ led_classdev_unregister(&alix_led_1); -+ } -+ return ret; -+} -+ -+static int alix_led_remove(struct platform_device *pdev) -+{ -+ led_classdev_unregister(&alix_led_1); -+ led_classdev_unregister(&alix_led_2); -+ led_classdev_unregister(&alix_led_3); -+ return 0; -+} -+ -+static struct platform_driver alix_led_driver = { -+ .probe = alix_led_probe, -+ .remove = alix_led_remove, -+ .suspend = alix_led_suspend, -+ .resume = alix_led_resume, -+ .driver = { -+ .name = DRVNAME, -+ .owner = THIS_MODULE, -+ }, -+}; -+ -+static int __init alix_led_init(void) -+{ -+ int ret; -+ -+ ret = platform_driver_register(&alix_led_driver); -+ if (ret < 0) -+ goto out; -+ -+ pdev = platform_device_register_simple(DRVNAME, -1, NULL, 0); -+ if (IS_ERR(pdev)) { -+ ret = PTR_ERR(pdev); -+ platform_driver_unregister(&alix_led_driver); -+ goto out; -+ } -+ -+out: -+ return ret; -+} -+ -+static void __exit alix_led_exit(void) -+{ -+ platform_device_unregister(pdev); -+ platform_driver_unregister(&alix_led_driver); -+} -+ -+module_init(alix_led_init); -+module_exit(alix_led_exit); -+ -+MODULE_AUTHOR("Petr Liebman"); -+MODULE_DESCRIPTION("PCEngines ALIX LED driver"); -+MODULE_LICENSE("GPL"); -+ -diff -Nur linux-2.6.24.old/drivers/leds/Makefile linux-2.6.24/drivers/leds/Makefile ---- linux-2.6.24.old/drivers/leds/Makefile 2008-01-24 23:58:37.000000000 +0100 -+++ linux-2.6.24/drivers/leds/Makefile 2008-05-24 08:34:40.000000000 +0200 -@@ -14,6 +14,7 @@ - obj-$(CONFIG_LEDS_AMS_DELTA) += leds-ams-delta.o - obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o - obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o -+obj-$(CONFIG_LEDS_ALIX) += leds-alix.o - obj-$(CONFIG_LEDS_H1940) += leds-h1940.o - obj-$(CONFIG_LEDS_COBALT_QUBE) += leds-cobalt-qube.o - obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o diff --git a/src/patches/linux-2.6.27-atom-clockmod.patch b/src/patches/linux-2.6.27-atom-clockmod.patch deleted file mode 100644 index ef59fef..0000000 --- a/src/patches/linux-2.6.27-atom-clockmod.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur linux-2.6.27.45.org/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c linux-2.6.27.45/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c ---- linux-2.6.27.45.org/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c 2010-01-29 00:21:45.000000000 +0100 -+++ linux-2.6.27.45/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c 2010-02-11 15:21:39.000000000 +0100 -@@ -160,6 +160,8 @@ - switch (c->x86_model) { - case 0x0E: /* Core */ - case 0x0F: /* Core Duo */ -+ case 0x16: /* Celeron Core */ -+ case 0x1c: /* Atom */ - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS; - return speedstep_get_processor_frequency(SPEEDSTEP_PROCESSOR_PCORE); - case 0x0D: /* Pentium M (Dothan) */ diff --git a/src/patches/linux-2.6.27-atom-coretemp.patch b/src/patches/linux-2.6.27-atom-coretemp.patch deleted file mode 100644 index 0084311..0000000 --- a/src/patches/linux-2.6.27-atom-coretemp.patch +++ /dev/null @@ -1,58 +0,0 @@ -diff -Naur linux-2.6.27.42.org/drivers/hwmon/coretemp.c linux-2.6.27.42/drivers/hwmon/coretemp.c ---- linux-2.6.27.42.org/drivers/hwmon/coretemp.c 2009-12-18 22:31:34.000000000 +0100 -+++ linux-2.6.27.42/drivers/hwmon/coretemp.c 2010-02-07 12:36:39.000000000 +0100 -@@ -1,7 +1,7 @@ - /* - * coretemp.c - Linux kernel module for hardware monitoring - * -- * Copyright (C) 2007 Rudolf Marek r.marek@assembler.cz -+ * Copyright (C) 2007, 2008 Rudolf Marek r.marek@assembler.cz - * - * Inspired from many hwmon drivers - * -@@ -244,8 +244,14 @@ - } - } - -- data->tjmax = adjust_tjmax(c, data->id, &pdev->dev); -- platform_set_drvdata(pdev, data); -+ /* Intel Atom has only fixed TjMax at 95C */ -+ -+ if (c->x86_model == 0x1c) { -+ data->tjmax = 95000; -+ } else { -+ /* Adjust the TjMax for the rest of Core2 family */ -+ data->tjmax = adjust_tjmax(c, data->id, &pdev->dev); -+ } - - /* read the still undocumented IA32_TEMPERATURE_TARGET it exists - on older CPUs but not in this register */ -@@ -265,6 +271,8 @@ - } - } - -+ platform_set_drvdata(pdev, data); -+ - if ((err = sysfs_create_group(&pdev->dev.kobj, &coretemp_group))) - goto exit_dev; - -@@ -409,15 +417,15 @@ - err = platform_driver_register(&coretemp_driver); - if (err) - goto exit; -- -+ - for_each_online_cpu(i) { - struct cpuinfo_x86 *c = &cpu_data(i); - -- /* check if family 6, models 0xe, 0xf, 0x16, 0x17, 0x1A */ -+ /* check if family 6, models 0xe, 0xf, 0x16, 0x17, 0x1A, 0x1c */ - if ((c->cpuid_level < 0) || (c->x86 != 0x6) || - !((c->x86_model == 0xe) || (c->x86_model == 0xf) || -- (c->x86_model == 0x16) || (c->x86_model == 0x17) || -- (c->x86_model == 0x1A))) { -+ (c->x86_model == 0x16) || (c->x86_model == 0x17) || -+ (c->x86_model == 0x1c) || (c->x86_model == 0x1A))) { - - /* supported CPU not found, but report the unknown - family 6 CPU */ diff --git a/src/patches/linux-2.6.27-imq.patch b/src/patches/linux-2.6.27-imq.patch deleted file mode 100644 index f907a07..0000000 --- a/src/patches/linux-2.6.27-imq.patch +++ /dev/null @@ -1,1150 +0,0 @@ ---- a/drivers/net/Kconfig -+++ b/drivers/net/Kconfig -@@ -109,6 +109,129 @@ config EQUALIZER - To compile this driver as a module, choose M here: the module - will be called eql. If unsure, say N. - -+config IMQ -+ tristate "IMQ (intermediate queueing device) support" -+ depends on NETDEVICES && NETFILTER -+ ---help--- -+ The IMQ device(s) is used as placeholder for QoS queueing -+ disciplines. Every packet entering/leaving the IP stack can be -+ directed through the IMQ device where it's enqueued/dequeued to the -+ attached qdisc. This allows you to treat network devices as classes -+ and distribute bandwidth among them. Iptables is used to specify -+ through which IMQ device, if any, packets travel. -+ -+ More information at: http://www.linuximq.net/ -+ -+ To compile this driver as a module, choose M here: the module -+ will be called imq. If unsure, say N. -+ -+choice -+ prompt "IMQ behavior (PRE/POSTROUTING)" -+ depends on IMQ -+ default IMQ_BEHAVIOR_AB -+ help -+ -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ IMQ can work in any of the following ways: -+ -+ PREROUTING | POSTROUTING -+ -----------------|------------------- -+ #1 After NAT | After NAT -+ #2 After NAT | Before NAT -+ #3 Before NAT | After NAT -+ #4 Before NAT | Before NAT -+ -+ The default behavior is to hook before NAT on PREROUTING -+ and after NAT on POSTROUTING (#3). -+ -+ This settings are specially usefull when trying to use IMQ -+ to shape NATed clients. -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_AA -+ bool "IMQ AA" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: After NAT -+ POSTROUTING: After NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_AB -+ bool "IMQ AB" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: After NAT -+ POSTROUTING: Before NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_BA -+ bool "IMQ BA" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: Before NAT -+ POSTROUTING: After NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_BB -+ bool "IMQ BB" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: Before NAT -+ POSTROUTING: Before NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+endchoice -+ -+config IMQ_NUM_DEVS -+ -+ int "Number of IMQ devices" -+ range 2 16 -+ depends on IMQ -+ default "16" -+ help -+ -+ This settings defines how many IMQ devices will be -+ created. -+ -+ The default value is 16. -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ - config TUN - tristate "Universal TUN/TAP device driver support" - select CRC32 ---- a/drivers/net/Makefile -+++ b/drivers/net/Makefile -@@ -144,6 +144,7 @@ obj-$(CONFIG_SLHC) += slhc.o - obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o - - obj-$(CONFIG_DUMMY) += dummy.o -+obj-$(CONFIG_IMQ) += imq.o - obj-$(CONFIG_IFB) += ifb.o - obj-$(CONFIG_MACVLAN) += macvlan.o - obj-$(CONFIG_DE600) += de600.o ---- /dev/null -+++ b/drivers/net/imq.c -@@ -0,0 +1,533 @@ -+/* -+ * Pseudo-driver for the intermediate queue device. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version -+ * 2 of the License, or (at your option) any later version. -+ * -+ * Authors: Patrick McHardy, kaber@trash.net -+ * -+ * The first version was written by Martin Devera, devik@cdi.cz -+ * -+ * Credits: Jan Rafaj imq2t@cedric.vabo.cz -+ * - Update patch to 2.4.21 -+ * Sebastian Strollo sstrollo@nortelnetworks.com -+ * - Fix "Dead-loop on netdevice imq"-issue -+ * Marcel Sebek sebek64@post.cz -+ * - Update to 2.6.2-rc1 -+ * -+ * After some time of inactivity there is a group taking care -+ * of IMQ again: http://www.linuximq.net -+ * -+ * -+ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 -+ * including the following changes: -+ * -+ * - Correction of ipv6 support "+"s issue (Hasso Tepper) -+ * - Correction of imq_init_devs() issue that resulted in -+ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) -+ * - Addition of functionality to choose number of IMQ devices -+ * during kernel config (Andre Correa) -+ * - Addition of functionality to choose how IMQ hooks on -+ * PRE and POSTROUTING (after or before NAT) (Andre Correa) -+ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) -+ * -+ * -+ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were -+ * released with almost no problems. 2.6.14-x was released -+ * with some important changes: nfcache was removed; After -+ * some weeks of trouble we figured out that some IMQ fields -+ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. -+ * These functions are correctly patched by this new patch version. -+ * -+ * Thanks for all who helped to figure out all the problems with -+ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, -+ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully -+ * I didn't forget anybody). I apologize again for my lack of time. -+ * -+ * -+ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead -+ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid -+ * recursive locking. New initialization routines to fix 'rmmod' not -+ * working anymore. Used code from ifb.c. (Jussi Kivilinna) -+ * -+ * 2008/08/06 - 2.6.27 - (JK) -+ * - Replaced tasklet with 'netif_schedule()'. -+ * - Cleaned up and added comments for imq_nf_queue(). -+ * -+ * Also, many thanks to pablo Sebastian Greco for making the initial -+ * patch and to those who helped the testing. -+ * -+ * More info at: http://www.linuximq.net/ (Andre Correa) -+ */ -+ -+#include <linux/module.h> -+#include <linux/kernel.h> -+#include <linux/moduleparam.h> -+#include <linux/skbuff.h> -+#include <linux/netdevice.h> -+#include <linux/etherdevice.h> -+#include <linux/rtnetlink.h> -+#include <linux/if_arp.h> -+#include <linux/netfilter.h> -+#include <linux/netfilter_ipv4.h> -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ #include <linux/netfilter_ipv6.h> -+#endif -+#include <linux/imq.h> -+#include <net/pkt_sched.h> -+#include <net/netfilter/nf_queue.h> -+ -+static nf_hookfn imq_nf_hook; -+ -+static struct nf_hook_ops imq_ingress_ipv4 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET, -+ .hooknum = NF_INET_PRE_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ .priority = NF_IP_PRI_MANGLE + 1 -+#else -+ .priority = NF_IP_PRI_NAT_DST + 1 -+#endif -+}; -+ -+static struct nf_hook_ops imq_egress_ipv4 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET, -+ .hooknum = NF_INET_POST_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) -+ .priority = NF_IP_PRI_LAST -+#else -+ .priority = NF_IP_PRI_NAT_SRC - 1 -+#endif -+}; -+ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+static struct nf_hook_ops imq_ingress_ipv6 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET6, -+ .hooknum = NF_INET_PRE_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ .priority = NF_IP6_PRI_MANGLE + 1 -+#else -+ .priority = NF_IP6_PRI_NAT_DST + 1 -+#endif -+}; -+ -+static struct nf_hook_ops imq_egress_ipv6 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET6, -+ .hooknum = NF_INET_POST_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) -+ .priority = NF_IP6_PRI_LAST -+#else -+ .priority = NF_IP6_PRI_NAT_SRC - 1 -+#endif -+}; -+#endif -+ -+#if defined(CONFIG_IMQ_NUM_DEVS) -+static unsigned int numdevs = CONFIG_IMQ_NUM_DEVS; -+#else -+static unsigned int numdevs = IMQ_MAX_DEVS; -+#endif -+ -+static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; -+ -+static struct net_device_stats *imq_get_stats(struct net_device *dev) -+{ -+ return &dev->stats; -+} -+ -+/* called for packets kfree'd in qdiscs at places other than enqueue */ -+static void imq_skb_destructor(struct sk_buff *skb) -+{ -+ struct nf_queue_entry *entry = skb->nf_queue_entry; -+ -+ if (likely(entry)) { -+ nf_queue_entry_release_refs(entry); -+ kfree(entry); -+ } -+} -+ -+static void imq_nf_reinject(struct nf_queue_entry *entry, unsigned int verdict) -+{ -+ int status; -+ -+ if (!entry->next_outfn) { -+ nf_reinject(entry, verdict); -+ return; -+ } -+ -+ status = entry->next_outfn(entry, entry->next_queuenum); -+ if (status < 0) { -+ nf_queue_entry_release_refs(entry); -+ kfree_skb(entry->skb); -+ kfree(entry); -+ } -+} -+ -+static int imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) -+{ -+ struct nf_queue_entry *entry = skb->nf_queue_entry; -+ -+ BUG_ON(entry == NULL); -+ -+ dev->stats.tx_bytes += skb->len; -+ dev->stats.tx_packets++; -+ -+ skb->imq_flags = 0; -+ skb->destructor = NULL; -+ -+ dev->trans_start = jiffies; -+ imq_nf_reinject(entry, NF_ACCEPT); -+ return 0; -+} -+ -+static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num) -+{ -+ struct net_device *dev; -+ struct sk_buff *skb_orig, *skb, *skb_shared; -+ struct Qdisc *q; -+ spinlock_t *root_lock; -+ struct netdev_queue *txq; -+ int users, index; -+ -+ index = entry->skb->imq_flags & IMQ_F_IFMASK; -+ if (unlikely(index > numdevs - 1)) { -+ if (net_ratelimit()) -+ printk(KERN_WARNING -+ "IMQ: invalid device specified, highest is %u\n", -+ numdevs - 1); -+ return -EINVAL; -+ } -+ -+ /* check for imq device by index from cache */ -+ dev = imq_devs_cache[index]; -+ if (unlikely(!dev)) { -+ char buf[8]; -+ -+ /* get device by name and cache result */ -+ snprintf(buf, sizeof(buf), "imq%d", index); -+ dev = dev_get_by_name(&init_net, buf); -+ if (!dev) { -+ /* not found ?!*/ -+ BUG(); -+ return -ENODEV; -+ } -+ -+ imq_devs_cache[index] = dev; -+ } -+ -+ if (unlikely(!(dev->flags & IFF_UP))) { -+ entry->skb->imq_flags = 0; -+ imq_nf_reinject(entry, NF_ACCEPT); -+ return 0; -+ } -+ dev->last_rx = jiffies; -+ -+ skb = entry->skb; -+ skb_orig = NULL; -+ -+ /* skb has owner? => make clone */ -+ if (unlikely(skb->destructor)) { -+ skb_orig = skb; -+ skb = skb_clone(skb, GFP_ATOMIC); -+ if (!skb) -+ return -ENOMEM; -+ entry->skb = skb; -+ } -+ -+ skb->nf_queue_entry = entry; -+ -+ dev->stats.rx_bytes += skb->len; -+ dev->stats.rx_packets++; -+ -+ txq = dev_pick_tx(dev, skb); -+ q = txq->qdisc; -+ -+ if (unlikely(!q->enqueue)) -+ goto packet_not_eaten_by_imq_dev; -+ -+ if (unlikely(!rtnl_trylock())) -+ goto packet_not_eaten_by_imq_dev; -+ -+ root_lock = qdisc_root_lock(q); -+ spin_lock(root_lock); -+ -+ users = atomic_read(&skb->users); -+ -+ skb_shared = skb_get(skb); /* increase reference count by one */ -+ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ -+ -+ if (likely(atomic_read(&skb_shared->users) == users + 1)) { -+ kfree_skb(skb_shared); /* decrease reference count by one */ -+ -+ /* imq_skb_destructor frees the skb and entry */ -+ skb->destructor = &imq_skb_destructor; -+ -+ /* cloned? */ -+ if (skb_orig) -+ kfree_skb(skb_orig); /* free original */ -+ -+ /* schedule qdisc dequeue */ -+ netif_tx_schedule_all(dev); -+ -+ spin_unlock(root_lock); -+ __rtnl_unlock(); -+ return 0; -+ } else { -+ /* qdisc dropped packet and decreased skb reference count of -+ * skb, so we don't really want to and try refree as that would -+ * actually destroy the skb. */ -+ spin_unlock(root_lock); -+ __rtnl_unlock(); -+ goto packet_not_eaten_by_imq_dev; -+ } -+ -+packet_not_eaten_by_imq_dev: -+ /* cloned? restore original */ -+ if (skb_orig) { -+ kfree_skb(skb); -+ entry->skb = skb_orig; -+ } -+ return -1; -+} -+ -+static struct nf_queue_handler nfqh = { -+ .name = "imq", -+ .outfn = imq_nf_queue, -+}; -+ -+static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, -+ const struct net_device *indev, -+ const struct net_device *outdev, -+ int (*okfn)(struct sk_buff *)) -+{ -+ if (pskb->imq_flags & IMQ_F_ENQUEUE) -+ return NF_QUEUE; -+ -+ return NF_ACCEPT; -+} -+ -+static int imq_close(struct net_device *dev) -+{ -+ netif_stop_queue(dev); -+ return 0; -+} -+ -+static int imq_open(struct net_device *dev) -+{ -+ netif_start_queue(dev); -+ return 0; -+} -+ -+static void imq_setup(struct net_device *dev) -+{ -+ dev->hard_start_xmit = imq_dev_xmit; -+ dev->open = imq_open; -+ dev->get_stats = imq_get_stats; -+ dev->stop = imq_close; -+ dev->type = ARPHRD_VOID; -+ dev->mtu = 1500; -+ dev->tx_queue_len = 10000; -+ dev->flags = IFF_NOARP; -+} -+ -+static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) -+{ -+ int ret = 0; -+ -+ if (tb[IFLA_ADDRESS]) { -+ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { -+ ret = -EINVAL; -+ goto end; -+ } -+ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { -+ ret = -EADDRNOTAVAIL; -+ goto end; -+ } -+ } -+ return 0; -+end: -+ printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret); -+ return ret; -+} -+ -+static struct rtnl_link_ops imq_link_ops __read_mostly = { -+ .kind = "imq", -+ .priv_size = 0, -+ .setup = imq_setup, -+ .validate = imq_validate, -+}; -+ -+static int __init imq_init_hooks(void) -+{ -+ int err; -+ -+ nf_register_queue_imq_handler(&nfqh); -+ -+ err = nf_register_hook(&imq_ingress_ipv4); -+ if (err) -+ goto err1; -+ -+ err = nf_register_hook(&imq_egress_ipv4); -+ if (err) -+ goto err2; -+ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ err = nf_register_hook(&imq_ingress_ipv6); -+ if (err) -+ goto err3; -+ -+ err = nf_register_hook(&imq_egress_ipv6); -+ if (err) -+ goto err4; -+#endif -+ -+ return 0; -+ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+err4: -+ nf_unregister_hook(&imq_ingress_ipv6); -+err3: -+ nf_unregister_hook(&imq_egress_ipv4); -+#endif -+err2: -+ nf_unregister_hook(&imq_ingress_ipv4); -+err1: -+ nf_unregister_queue_imq_handler(); -+ return err; -+} -+ -+static int __init imq_init_one(int index) -+{ -+ struct net_device *dev; -+ int ret; -+ -+ dev = alloc_netdev(0, "imq%d", imq_setup); -+ if (!dev) -+ return -ENOMEM; -+ -+ ret = dev_alloc_name(dev, dev->name); -+ if (ret < 0) -+ goto fail; -+ -+ dev->rtnl_link_ops = &imq_link_ops; -+ ret = register_netdevice(dev); -+ if (ret < 0) -+ goto fail; -+ -+ return 0; -+fail: -+ free_netdev(dev); -+ return ret; -+} -+ -+static int __init imq_init_devs(void) -+{ -+ int err, i; -+ -+ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { -+ printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n", -+ IMQ_MAX_DEVS); -+ return -EINVAL; -+ } -+ -+ rtnl_lock(); -+ err = __rtnl_link_register(&imq_link_ops); -+ -+ for (i = 0; i < numdevs && !err; i++) -+ err = imq_init_one(i); -+ -+ if (err) { -+ __rtnl_link_unregister(&imq_link_ops); -+ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); -+ } -+ rtnl_unlock(); -+ -+ return err; -+} -+ -+static int __init imq_init_module(void) -+{ -+ int err; -+ -+#if defined(CONFIG_IMQ_NUM_DEVS) -+ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); -+ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); -+ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); -+#endif -+ -+ err = imq_init_devs(); -+ if (err) { -+ printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n"); -+ return err; -+ } -+ -+ err = imq_init_hooks(); -+ if (err) { -+ printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); -+ rtnl_link_unregister(&imq_link_ops); -+ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); -+ return err; -+ } -+ -+ printk(KERN_INFO "IMQ driver loaded successfully.\n"); -+ -+#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n"); -+#else -+ printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n"); -+#endif -+#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n"); -+#else -+ printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n"); -+#endif -+ -+ return 0; -+} -+ -+static void __exit imq_unhook(void) -+{ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ nf_unregister_hook(&imq_ingress_ipv6); -+ nf_unregister_hook(&imq_egress_ipv6); -+#endif -+ nf_unregister_hook(&imq_ingress_ipv4); -+ nf_unregister_hook(&imq_egress_ipv4); -+ -+ nf_unregister_queue_imq_handler(); -+} -+ -+static void __exit imq_cleanup_devs(void) -+{ -+ rtnl_link_unregister(&imq_link_ops); -+ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); -+} -+ -+static void __exit imq_exit_module(void) -+{ -+ imq_unhook(); -+ imq_cleanup_devs(); -+ printk(KERN_INFO "IMQ driver unloaded successfully.\n"); -+} -+ -+module_init(imq_init_module); -+module_exit(imq_exit_module); -+ -+module_param(numdevs, int, 0); -+MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will " -+ "be created)"); -+MODULE_AUTHOR("http://www.linuximq.net"); -+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See " -+ "http://www.linuximq.net/ for more information."); -+MODULE_LICENSE("GPL"); -+MODULE_ALIAS_RTNL_LINK("imq"); -+ ---- /dev/null -+++ b/include/linux/imq.h -@@ -0,0 +1,13 @@ -+#ifndef _IMQ_H -+#define _IMQ_H -+ -+/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ -+#define IMQ_F_BITS 5 -+ -+#define IMQ_F_IFMASK 0x0f -+#define IMQ_F_ENQUEUE 0x10 -+ -+#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) -+ -+#endif /* _IMQ_H */ -+ ---- /dev/null -+++ b/include/linux/netfilter/xt_IMQ.h -@@ -0,0 +1,9 @@ -+#ifndef _XT_IMQ_H -+#define _XT_IMQ_H -+ -+struct xt_imq_info { -+ unsigned int todev; /* target imq device */ -+}; -+ -+#endif /* _XT_IMQ_H */ -+ ---- /dev/null -+++ b/include/linux/netfilter_ipv6/ip6t_IMQ.h -@@ -0,0 +1,10 @@ -+#ifndef _IP6T_IMQ_H -+#define _IP6T_IMQ_H -+ -+/* Backwards compatibility for old userspace */ -+#include <linux/netfilter/xt_IMQ.h> -+ -+#define ip6t_imq_info xt_imq_info -+ -+#endif /* _IP6T_IMQ_H */ -+ ---- a/include/linux/skbuff.h -+++ b/include/linux/skbuff.h -@@ -28,6 +28,9 @@ - #include <linux/rcupdate.h> - #include <linux/dmaengine.h> - #include <linux/hrtimer.h> -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+#include <linux/imq.h> -+#endif - - #define HAVE_ALLOC_SKB /* For the drivers to know */ - #define HAVE_ALIGNABLE_SKB /* Ditto 8) */ -@@ -302,6 +305,13 @@ struct sk_buff { - struct nf_conntrack *nfct; - struct sk_buff *nfct_reasm; - #endif -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ struct nf_queue_entry *nf_queue_entry; -+/* 2.6.27 started using skb->cb for qdiscs. Problem here is that IMQ run qdisc -+ * on wrong layer and skb->cb is already used by TCP. So we need to make qdisc -+ * not use skb, this adds 4 extra bytes to skbuff. */ -+ unsigned int qdisc_skb_cb_pkt_len; -+#endif - #ifdef CONFIG_BRIDGE_NETFILTER - struct nf_bridge_info *nf_bridge; - #endif -@@ -321,6 +331,9 @@ struct sk_buff { - __u8 do_not_encrypt:1; - #endif - /* 0/13/14 bit hole */ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ __u8 imq_flags:IMQ_F_BITS; -+#endif - - #ifdef CONFIG_NET_DMA - dma_cookie_t dma_cookie; -@@ -1638,6 +1651,10 @@ static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src) - dst->nfct_reasm = src->nfct_reasm; - nf_conntrack_get_reasm(src->nfct_reasm); - #endif -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ dst->imq_flags = src->imq_flags; -+ dst->nf_queue_entry = src->nf_queue_entry; -+#endif - #ifdef CONFIG_BRIDGE_NETFILTER - dst->nf_bridge = src->nf_bridge; - nf_bridge_get(src->nf_bridge); ---- a/include/net/netfilter/nf_queue.h -+++ b/include/net/netfilter/nf_queue.h -@@ -13,6 +13,13 @@ struct nf_queue_entry { - struct net_device *indev; - struct net_device *outdev; - int (*okfn)(struct sk_buff *); -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ /* following allow IMQ work when other nf_queue handlers are set up */ -+ int (*next_outfn)(struct nf_queue_entry *entry, -+ unsigned int queuenum); -+ unsigned int next_queuenum; -+#endif - }; - - #define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry)) -@@ -30,5 +37,11 @@ extern int nf_unregister_queue_handler(int pf, - const struct nf_queue_handler *qh); - extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); - extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); -+extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); -+extern void nf_unregister_queue_imq_handler(void); -+#endif - - #endif /* _NF_QUEUE_H */ ---- a/include/net/sch_generic.h -+++ b/include/net/sch_generic.h -@@ -174,7 +174,11 @@ struct tcf_proto - }; - - struct qdisc_skb_cb { -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ unsigned int __imq_do_not_use; -+#else - unsigned int pkt_len; -+#endif - char data[]; - }; - -@@ -275,6 +279,8 @@ extern void qdisc_class_hash_remove(struct Qdisc_class_hash *, struct Qdisc_clas - extern void qdisc_class_hash_grow(struct Qdisc *, struct Qdisc_class_hash *); - extern void qdisc_class_hash_destroy(struct Qdisc_class_hash *); - -+extern struct netdev_queue *dev_pick_tx(struct net_device *dev, -+ struct sk_buff *skb); - extern void dev_init_scheduler(struct net_device *dev); - extern void dev_shutdown(struct net_device *dev); - extern void dev_activate(struct net_device *dev); -@@ -340,7 +346,11 @@ static inline bool qdisc_tx_is_noop(const struct net_device *dev) - - static inline unsigned int qdisc_pkt_len(struct sk_buff *skb) - { -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ return skb->qdisc_skb_cb_pkt_len; /* see skbuff.h why */ -+#else - return qdisc_skb_cb(skb)->pkt_len; -+#endif - } - - /* additional qdisc xmit flags (NET_XMIT_MASK in linux/netdevice.h) */ -@@ -366,7 +376,11 @@ static inline int qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch) - - static inline int qdisc_enqueue_root(struct sk_buff *skb, struct Qdisc *sch) - { -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ skb->qdisc_skb_cb_pkt_len = skb->len; /* see skbuff.h why */ -+#else - qdisc_skb_cb(skb)->pkt_len = skb->len; -+#endif - return qdisc_enqueue(skb, sch) & NET_XMIT_MASK; - } - ---- a/net/core/dev.c -+++ b/net/core/dev.c -@@ -96,6 +96,9 @@ - #include <net/net_namespace.h> - #include <net/sock.h> - #include <linux/rtnetlink.h> -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+#include <linux/imq.h> -+#endif - #include <linux/proc_fs.h> - #include <linux/seq_file.h> - #include <linux/stat.h> -@@ -1619,7 +1622,11 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, - struct netdev_queue *txq) - { - if (likely(!skb->next)) { -- if (!list_empty(&ptype_all)) -+ if (!list_empty(&ptype_all) -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ && !(skb->imq_flags & IMQ_F_ENQUEUE) -+#endif -+ ) - dev_queue_xmit_nit(skb, dev); - - if (netif_needs_gso(dev, skb)) { -@@ -1709,8 +1716,7 @@ static u16 simple_tx_hash(struct net_device *dev, struct sk_buff *skb) - return (u16) (((u64) hash * dev->real_num_tx_queues) >> 32); - } - --static struct netdev_queue *dev_pick_tx(struct net_device *dev, -- struct sk_buff *skb) -+struct netdev_queue *dev_pick_tx(struct net_device *dev, struct sk_buff *skb) - { - u16 queue_index = 0; - -@@ -1722,6 +1728,7 @@ static struct netdev_queue *dev_pick_tx(struct net_device *dev, - skb_set_queue_mapping(skb, queue_index); - return netdev_get_tx_queue(dev, queue_index); - } -+EXPORT_SYMBOL(dev_pick_tx); - - /** - * dev_queue_xmit - transmit a buffer ---- a/net/core/rtnetlink.c -+++ b/net/core/rtnetlink.c -@@ -1406,6 +1406,7 @@ EXPORT_SYMBOL(rtnetlink_put_metrics); - EXPORT_SYMBOL(rtnl_lock); - EXPORT_SYMBOL(rtnl_trylock); - EXPORT_SYMBOL(rtnl_unlock); -+EXPORT_SYMBOL(__rtnl_unlock); - EXPORT_SYMBOL(rtnl_is_locked); - EXPORT_SYMBOL(rtnl_unicast); - EXPORT_SYMBOL(rtnl_notify); ---- a/net/core/skbuff.c -+++ b/net/core/skbufc -@@ -436,6 +436,9 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old) - new->sp = secpath_get(old->sp); - #endif - memcpy(new->cb, old->cb, sizeof(old->cb)); -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ new->qdisc_skb_cb_pkt_len = old->qdisc_skb_cb_pkt_len; -+#endif - new->csum_start = old->csum_start; - new->csum_offset = old->csum_offset; - new->local_df = old->local_df; -@@ -2258,7 +2258,9 @@ - - __copy_skb_header(nskb, skb); - nskb->mac_len = skb->mac_len; -- -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ nskb->qdisc_skb_cb_pkt_len = skb->qdisc_skb_cb_pkt_len; -+#endif - skb_reserve(nskb, headroom); - skb_reset_mac_header(nskb); - skb_set_network_header(nskb, skb->mac_len); ---- a/net/netfilter/Kconfig -+++ b/net/netfilter/Kconfig -@@ -342,6 +342,18 @@ config NETFILTER_XT_TARGET_DSCP - - To compile it as a module, choose M here. If unsure, say N. - -+config NETFILTER_XT_TARGET_IMQ -+ tristate '"IMQ" target support' -+ depends on NETFILTER_XTABLES -+ depends on IP_NF_MANGLE || IP6_NF_MANGLE -+ select IMQ -+ default m if NETFILTER_ADVANCED=n -+ help -+ This option adds a `IMQ' target which is used to specify if and -+ to which imq device packets should get enqueued/dequeued. -+ -+ To compile it as a module, choose M here. If unsure, say N. -+ - config NETFILTER_XT_TARGET_MARK - tristate '"MARK" target support' - depends on NETFILTER_XTABLES ---- a/net/netfilter/Makefile -+++ b/net/netfilter/Makefile -@@ -42,6 +42,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CLASSIFY) += xt_CLASSIFY.o - obj-$(CONFIG_NETFILTER_XT_TARGET_CONNMARK) += xt_CONNMARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o -+obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o - obj-$(CONFIG_NETFILTER_XT_TARGET_MARK) += xt_MARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o - obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o ---- a/net/netfilter/nf_queue.c -+++ b/net/netfilter/nf_queue.c -@@ -20,6 +20,26 @@ static const struct nf_queue_handler *queue_handler[NPROTO]; - - static DEFINE_MUTEX(queue_handler_mutex); - -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+static const struct nf_queue_handler *queue_imq_handler; -+ -+void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) -+{ -+ mutex_lock(&queue_handler_mutex); -+ rcu_assign_pointer(queue_imq_handler, qh); -+ mutex_unlock(&queue_handler_mutex); -+} -+EXPORT_SYMBOL(nf_register_queue_imq_handler); -+ -+void nf_unregister_queue_imq_handler(void) -+{ -+ mutex_lock(&queue_handler_mutex); -+ rcu_assign_pointer(queue_imq_handler, NULL); -+ mutex_unlock(&queue_handler_mutex); -+} -+EXPORT_SYMBOL(nf_unregister_queue_imq_handler); -+#endif -+ - /* return EBUSY when somebody else is registered, return EEXIST if the - * same handler is registered, return 0 in case of success. */ - int nf_register_queue_handler(int pf, const struct nf_queue_handler *qh) -@@ -80,7 +100,7 @@ void nf_unregister_queue_handlers(const struct nf_queue_handler *qh) - } - EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers); - --static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) -+void nf_queue_entry_release_refs(struct nf_queue_entry *entry) - { - /* Release those devices we held, or Alexey will kill me. */ - if (entry->indev) -@@ -100,6 +120,7 @@ static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) - /* Drop reference to owner of hook which queued us. */ - module_put(entry->elem->owner); - } -+EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs); - - /* - * Any packet that leaves via this function must come back -@@ -121,12 +142,26 @@ static int __nf_queue(struct sk_buff *skb, - #endif - const struct nf_afinfo *afinfo; - const struct nf_queue_handler *qh; -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ const struct nf_queue_handler *qih = NULL; -+#endif - - /* QUEUE == DROP if noone is waiting, to be safe. */ - rcu_read_lock(); - - qh = rcu_dereference(queue_handler[pf]); -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ if (pf == PF_INET || pf == PF_INET6) -+#else -+ if (pf == PF_INET) -+#endif -+ qih = rcu_dereference(queue_imq_handler); -+ -+ if (!qh && !qih) -+#else /* !IMQ */ - if (!qh) -+#endif - goto err_unlock; - - afinfo = nf_get_afinfo(pf); -@@ -145,6 +180,10 @@ static int __nf_queue(struct sk_buff *skb, - .indev = indev, - .outdev = outdev, - .okfn = okfn, -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ .next_outfn = qh ? qh->outfn : NULL, -+ .next_queuenum = queuenum, -+#endif - }; - - /* If it's going away, ignore hook. */ -@@ -170,8 +209,19 @@ static int __nf_queue(struct sk_buff *skb, - } - #endif - afinfo->saveroute(skb, entry); -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ if (qih) { -+ status = qih->outfn(entry, queuenum); -+ goto imq_skip_queue; -+ } -+#endif -+ - status = qh->outfn(entry, queuenum); - -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+imq_skip_queue: -+#endif - rcu_read_unlock(); - - if (status < 0) { ---- /dev/null -+++ b/net/netfilter/xt_IMQ.c -@@ -0,0 +1,81 @@ -+/* -+ * This target marks packets to be enqueued to an imq device -+ */ -+#include <linux/module.h> -+#include <linux/skbuff.h> -+#include <linux/netfilter/x_tables.h> -+#include <linux/netfilter/xt_IMQ.h> -+#include <linux/imq.h> -+ -+static unsigned int imq_target(struct sk_buff *pskb, -+ const struct net_device *in, -+ const struct net_device *out, -+ unsigned int hooknum, -+ const struct xt_target *target, -+ const void *targinfo) -+{ -+ const struct xt_imq_info *mr = targinfo; -+ -+ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; -+ -+ return XT_CONTINUE; -+} -+ -+static bool imq_checkentry(const char *tablename, -+ const void *entry, -+ const struct xt_target *target, -+ void *targinfo, -+ unsigned int hook_mask) -+{ -+ struct xt_imq_info *mr = targinfo; -+ -+ if (mr->todev > IMQ_MAX_DEVS - 1) { -+ printk(KERN_WARNING -+ "IMQ: invalid device specified, highest is %u\n", -+ IMQ_MAX_DEVS - 1); -+ return 0; -+ } -+ -+ return 1; -+} -+ -+static struct xt_target xt_imq_reg[] __read_mostly = { -+ { -+ .name = "IMQ", -+ .family = AF_INET, -+ .target = imq_target, -+ .targetsize = sizeof(struct xt_imq_info), -+ .table = "mangle", -+ .checkentry = imq_checkentry, -+ .me = THIS_MODULE -+ }, -+ { -+ .name = "IMQ", -+ .family = AF_INET6, -+ .target = imq_target, -+ .targetsize = sizeof(struct xt_imq_info), -+ .table = "mangle", -+ .checkentry = imq_checkentry, -+ .me = THIS_MODULE -+ }, -+}; -+ -+static int __init imq_init(void) -+{ -+ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); -+} -+ -+static void __exit imq_fini(void) -+{ -+ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); -+} -+ -+module_init(imq_init); -+module_exit(imq_fini); -+ -+MODULE_AUTHOR("http://www.linuximq.net"); -+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); -+MODULE_LICENSE("GPL"); -+MODULE_ALIAS("ipt_IMQ"); -+MODULE_ALIAS("ip6t_IMQ"); -+ ---- a/net/sched/sch_api.c -+++ b/net/sched/sch_api.c -@@ -405,7 +405,11 @@ void qdisc_calculate_pkt_len(struct sk_buff *skb, struct qdisc_size_table *stab) - out: - if (unlikely(pkt_len < 1)) - pkt_len = 1; -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ skb->qdisc_skb_cb_pkt_len = pkt_len; /* see skbuff.h why */ -+#else - qdisc_skb_cb(skb)->pkt_len = pkt_len; -+#endif - } - EXPORT_SYMBOL(qdisc_calculate_pkt_len); - diff --git a/src/patches/linux-2.6.27.19-ipp2p-0.8.2-pomng.patch b/src/patches/linux-2.6.27.19-ipp2p-0.8.2-pomng.patch deleted file mode 100644 index 4b99aa6..0000000 --- a/src/patches/linux-2.6.27.19-ipp2p-0.8.2-pomng.patch +++ /dev/null @@ -1,980 +0,0 @@ -diff -Naur linux-2.6.27.19.org/include/linux/netfilter_ipv4/ipt_ipp2p.h linux-2.6.27.19/include/linux/netfilter_ipv4/ipt_ipp2p.h ---- linux-2.6.27.19.org/include/linux/netfilter_ipv4/ipt_ipp2p.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.27.19/include/linux/netfilter_ipv4/ipt_ipp2p.h 2009-03-17 19:31:50.000000000 +0100 -@@ -0,0 +1,31 @@ -+#ifndef __IPT_IPP2P_H -+#define __IPT_IPP2P_H -+#define IPP2P_VERSION "0.8.2-pomng" -+ -+struct ipt_p2p_info { -+ int cmd; -+ int debug; -+}; -+ -+#endif //__IPT_IPP2P_H -+ -+#define SHORT_HAND_IPP2P 1 /* --ipp2p switch*/ -+//#define SHORT_HAND_DATA 4 /* --ipp2p-data switch*/ -+#define SHORT_HAND_NONE 5 /* no short hand*/ -+ -+#define IPP2P_EDK (1 << 1) -+#define IPP2P_DATA_KAZAA (1 << 2) -+#define IPP2P_DATA_EDK (1 << 3) -+#define IPP2P_DATA_DC (1 << 4) -+#define IPP2P_DC (1 << 5) -+#define IPP2P_DATA_GNU (1 << 6) -+#define IPP2P_GNU (1 << 7) -+#define IPP2P_KAZAA (1 << 8) -+#define IPP2P_BIT (1 << 9) -+#define IPP2P_APPLE (1 << 10) -+#define IPP2P_SOUL (1 << 11) -+#define IPP2P_WINMX (1 << 12) -+#define IPP2P_ARES (1 << 13) -+#define IPP2P_MUTE (1 << 14) -+#define IPP2P_WASTE (1 << 15) -+#define IPP2P_XDCC (1 << 16) -diff -Naur linux-2.6.27.19.org/net/ipv4/netfilter/ipt_ipp2p.c linux-2.6.27.19/net/ipv4/netfilter/ipt_ipp2p.c ---- linux-2.6.27.19.org/net/ipv4/netfilter/ipt_ipp2p.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.27.19/net/ipv4/netfilter/ipt_ipp2p.c 2009-03-17 19:31:50.000000000 +0100 -@@ -0,0 +1,911 @@ -+#if defined(MODVERSIONS) -+#include <linux/modversions.h> -+#endif -+#include <linux/module.h> -+#include <linux/version.h> -+#include <linux/netfilter_ipv4/ip_tables.h> -+#include <linux/netfilter_ipv4/ipt_ipp2p.h> -+#include <net/tcp.h> -+#include <net/udp.h> -+ -+#define get_u8(X,O) (*(__u8 *)(X + O)) -+#define get_u16(X,O) (*(__u16 *)(X + O)) -+#define get_u32(X,O) (*(__u32 *)(X + O)) -+ -+MODULE_AUTHOR("Eicke Friedrich/Klaus Degner ipp2p@ipp2p.org"); -+MODULE_DESCRIPTION("An extension to iptables to identify P2P traffic."); -+MODULE_LICENSE("GPL"); -+ -+ -+/*Search for UDP eDonkey/eMule/Kad commands*/ -+int -+udp_search_edk (unsigned char *haystack, int packet_len) -+{ -+ unsigned char *t = haystack; -+ t += 8; -+ -+ switch (t[0]) { -+ case 0xe3: -+ { /*edonkey*/ -+ switch (t[1]) -+ { -+ /* client -> server status request */ -+ case 0x96: -+ if (packet_len == 14) return ((IPP2P_EDK * 100) + 50); -+ break; -+ /* server -> client status request */ -+ case 0x97: if (packet_len == 42) return ((IPP2P_EDK * 100) + 51); -+ break; -+ /* server description request */ -+ /* e3 2a ff f0 .. | size == 6 */ -+ case 0xa2: if ( (packet_len == 14) && ( get_u16(t,2) == __constant_htons(0xfff0) ) ) return ((IPP2P_EDK * 100) + 52); -+ break; -+ /* server description response */ -+ /* e3 a3 ff f0 .. | size > 40 && size < 200 */ -+ //case 0xa3: return ((IPP2P_EDK * 100) + 53); -+ // break; -+ case 0x9a: if (packet_len==26) return ((IPP2P_EDK * 100) + 54); -+ break; -+ -+ case 0x92: if (packet_len==18) return ((IPP2P_EDK * 100) + 55); -+ break; -+ } -+ break; -+ } -+ case 0xe4: -+ { -+ switch (t[1]) -+ { -+ /* e4 20 .. | size == 43 */ -+ case 0x20: if ((packet_len == 43) && (t[2] != 0x00) && (t[34] != 0x00)) return ((IPP2P_EDK * 100) + 60); -+ break; -+ /* e4 00 .. 00 | size == 35 ? */ -+ case 0x00: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 61); -+ break; -+ /* e4 10 .. 00 | size == 35 ? */ -+ case 0x10: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 62); -+ break; -+ /* e4 18 .. 00 | size == 35 ? */ -+ case 0x18: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 63); -+ break; -+ /* e4 52 .. | size = 44 */ -+ case 0x52: if (packet_len == 44 ) return ((IPP2P_EDK * 100) + 64); -+ break; -+ /* e4 58 .. | size == 6 */ -+ case 0x58: if (packet_len == 14 ) return ((IPP2P_EDK * 100) + 65); -+ break; -+ /* e4 59 .. | size == 2 */ -+ case 0x59: if (packet_len == 10 )return ((IPP2P_EDK * 100) + 66); -+ break; -+ /* e4 28 .. | packet_len == 52,77,102,127... */ -+ case 0x28: if (((packet_len-52) % 25) == 0) return ((IPP2P_EDK * 100) + 67); -+ break; -+ /* e4 50 xx xx | size == 4 */ -+ case 0x50: if (packet_len == 12) return ((IPP2P_EDK * 100) + 68); -+ break; -+ /* e4 40 xx xx | size == 48 */ -+ case 0x40: if (packet_len == 56) return ((IPP2P_EDK * 100) + 69); -+ break; -+ } -+ break; -+ } -+ } /* end of switch (t[0]) */ -+ return 0; -+}/*udp_search_edk*/ -+ -+ -+/*Search for UDP Gnutella commands*/ -+int -+udp_search_gnu (unsigned char *haystack, int packet_len) -+{ -+ unsigned char *t = haystack; -+ t += 8; -+ -+ if (memcmp(t, "GND", 3) == 0) return ((IPP2P_GNU * 100) + 51); -+ if (memcmp(t, "GNUTELLA ", 9) == 0) return ((IPP2P_GNU * 100) + 52); -+ return 0; -+}/*udp_search_gnu*/ -+ -+ -+/*Search for UDP KaZaA commands*/ -+int -+udp_search_kazaa (unsigned char *haystack, int packet_len) -+{ -+ unsigned char *t = haystack; -+ -+ if (t[packet_len-1] == 0x00){ -+ t += (packet_len - 6); -+ if (memcmp(t, "KaZaA", 5) == 0) return (IPP2P_KAZAA * 100 +50); -+ } -+ -+ return 0; -+}/*udp_search_kazaa*/ -+ -+/*Search for UDP DirectConnect commands*/ -+int -+udp_search_directconnect (unsigned char *haystack, int packet_len) -+{ -+ unsigned char *t = haystack; -+ if ((*(t + 8) == 0x24) && (*(t + packet_len - 1) == 0x7c)) { -+ t+=8; -+ if (memcmp(t, "SR ", 3) == 0) return ((IPP2P_DC * 100) + 60); -+ if (memcmp(t, "Ping ", 5) == 0) return ((IPP2P_DC * 100) + 61); -+ } -+ return 0; -+}/*udp_search_directconnect*/ -+ -+ -+ -+/*Search for UDP BitTorrent commands*/ -+int -+udp_search_bit (unsigned char *haystack, int packet_len) -+{ -+ switch(packet_len) -+ { -+ case 24: -+ /* ^ 00 00 04 17 27 10 19 80 */ -+ if ((ntohl(get_u32(haystack, 8)) == 0x00000417) && (ntohl(get_u32(haystack, 12)) == 0x27101980)) -+ return (IPP2P_BIT * 100 + 50); -+ break; -+ case 44: -+ if (get_u32(haystack, 16) == __constant_htonl(0x00000400) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) -+ return (IPP2P_BIT * 100 + 51); -+ if (get_u32(haystack, 16) == __constant_htonl(0x00000400)) -+ return (IPP2P_BIT * 100 + 61); -+ break; -+ case 65: -+ if (get_u32(haystack, 16) == __constant_htonl(0x00000404) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) -+ return (IPP2P_BIT * 100 + 52); -+ if (get_u32(haystack, 16) == __constant_htonl(0x00000404)) -+ return (IPP2P_BIT * 100 + 62); -+ break; -+ case 67: -+ if (get_u32(haystack, 16) == __constant_htonl(0x00000406) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) -+ return (IPP2P_BIT * 100 + 53); -+ if (get_u32(haystack, 16) == __constant_htonl(0x00000406)) -+ return (IPP2P_BIT * 100 + 63); -+ break; -+ case 211: -+ if (get_u32(haystack, 8) == __constant_htonl(0x00000405)) -+ return (IPP2P_BIT * 100 + 54); -+ break; -+ case 29: -+ if ((get_u32(haystack, 8) == __constant_htonl(0x00000401))) -+ return (IPP2P_BIT * 100 + 55); -+ break; -+ case 52: -+ if (get_u32(haystack,8) == __constant_htonl(0x00000827) && -+ get_u32(haystack,12) == __constant_htonl(0x37502950)) -+ return (IPP2P_BIT * 100 + 80); -+ break; -+ default: -+ /* this packet does not have a constant size */ -+ if (packet_len >= 40 && get_u32(haystack, 16) == __constant_htonl(0x00000402) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) -+ return (IPP2P_BIT * 100 + 56); -+ break; -+ } -+ -+ /* some extra-bitcomet rules: -+ * "d1:" [a|r] "d2:id20:" -+ */ -+ if (packet_len > 30 && get_u8(haystack, 8) == 'd' && get_u8(haystack, 9) == '1' && get_u8(haystack, 10) == ':' ) -+ { -+ if (get_u8(haystack, 11) == 'a' || get_u8(haystack, 11) == 'r') -+ { -+ if (memcmp(haystack+12,"d2:id20:",8)==0) -+ return (IPP2P_BIT * 100 + 57); -+ } -+ } -+ -+#if 0 -+ /* bitlord rules */ -+ /* packetlen must be bigger than 40 */ -+ /* first 4 bytes are zero */ -+ if (packet_len > 40 && get_u32(haystack, 8) == 0x00000000) -+ { -+ /* first rule: 00 00 00 00 01 00 00 xx xx xx xx 00 00 00 00*/ -+ if (get_u32(haystack, 12) == 0x00000000 && -+ get_u32(haystack, 16) == 0x00010000 && -+ get_u32(haystack, 24) == 0x00000000 ) -+ return (IPP2P_BIT * 100 + 71); -+ -+ /* 00 01 00 00 0d 00 00 xx xx xx xx 00 00 00 00*/ -+ if (get_u32(haystack, 12) == 0x00000001 && -+ get_u32(haystack, 16) == 0x000d0000 && -+ get_u32(haystack, 24) == 0x00000000 ) -+ return (IPP2P_BIT * 100 + 71); -+ -+ -+ } -+#endif -+ -+ return 0; -+}/*udp_search_bit*/ -+ -+ -+ -+/*Search for Ares commands*/ -+//#define IPP2P_DEBUG_ARES -+int -+search_ares (const unsigned char *payload, const u16 plen) -+//int search_ares (unsigned char *haystack, int packet_len, int head_len) -+{ -+// const unsigned char *t = haystack + head_len; -+ -+ /* all ares packets start with */ -+ if (payload[1] == 0 && (plen - payload[0]) == 3) -+ { -+ switch (payload[2]) -+ { -+ case 0x5a: -+ /* ares connect */ -+ if ( plen == 6 && payload[5] == 0x05 ) return ((IPP2P_ARES * 100) + 1); -+ break; -+ case 0x09: -+ /* ares search, min 3 chars --> 14 bytes -+ * lets define a search can be up to 30 chars --> max 34 bytes -+ */ -+ if ( plen >= 14 && plen <= 34 ) return ((IPP2P_ARES * 100) + 1); -+ break; -+#ifdef IPP2P_DEBUG_ARES -+ default: -+ printk(KERN_DEBUG "Unknown Ares command %x recognized, len: %u \n", (unsigned int) payload[2],plen); -+#endif /* IPP2P_DEBUG_ARES */ -+ } -+ } -+ -+#if 0 -+ /* found connect packet: 03 00 5a 04 03 05 */ -+ /* new version ares 1.8: 03 00 5a xx xx 05 */ -+ if ((plen) == 6){ /* possible connect command*/ -+ if ((payload[0] == 0x03) && (payload[1] == 0x00) && (payload[2] == 0x5a) && (payload[5] == 0x05)) -+ return ((IPP2P_ARES * 100) + 1); -+ } -+ if ((plen) == 60){ /* possible download command*/ -+ if ((payload[59] == 0x0a) && (payload[58] == 0x0a)){ -+ if (memcmp(t, "PUSH SHA1:", 10) == 0) /* found download command */ -+ return ((IPP2P_ARES * 100) + 2); -+ } -+ } -+#endif -+ -+ return 0; -+} /*search_ares*/ -+ -+/*Search for SoulSeek commands*/ -+int -+search_soul (const unsigned char *payload, const u16 plen) -+{ -+//#define IPP2P_DEBUG_SOUL -+ /* match: xx xx xx xx | xx = sizeof(payload) - 4 */ -+ if (get_u32(payload, 0) == (plen - 4)){ -+ const __u32 m=get_u32(payload, 4); -+ /* match 00 yy yy 00, yy can be everything */ -+ if ( get_u8(payload, 4) == 0x00 && get_u8(payload, 7) == 0x00 ) -+ { -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "0: Soulseek command 0x%x recognized\n",get_u32(payload, 4)); -+#endif /* IPP2P_DEBUG_SOUL */ -+ return ((IPP2P_SOUL * 100) + 1); -+ } -+ -+ /* next match: 01 yy 00 00 | yy can be everything */ -+ if ( get_u8(payload, 4) == 0x01 && get_u16(payload, 6) == 0x0000 ) -+ { -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "1: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); -+#endif /* IPP2P_DEBUG_SOUL */ -+ return ((IPP2P_SOUL * 100) + 2); -+ } -+ -+ /* other soulseek commandos are: 1-5,7,9,13-18,22,23,26,28,35-37,40-46,50,51,60,62-69,91,92,1001 */ -+ /* try to do this in an intelligent way */ -+ /* get all small commandos */ -+ switch(m) -+ { -+ case 7: -+ case 9: -+ case 22: -+ case 23: -+ case 26: -+ case 28: -+ case 50: -+ case 51: -+ case 60: -+ case 91: -+ case 92: -+ case 1001: -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "2: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); -+#endif /* IPP2P_DEBUG_SOUL */ -+ return ((IPP2P_SOUL * 100) + 3); -+ } -+ -+ if (m > 0 && m < 6 ) -+ { -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "3: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); -+#endif /* IPP2P_DEBUG_SOUL */ -+ return ((IPP2P_SOUL * 100) + 4); -+ } -+ if (m > 12 && m < 19 ) -+ { -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "4: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); -+#endif /* IPP2P_DEBUG_SOUL */ -+ return ((IPP2P_SOUL * 100) + 5); -+ } -+ -+ if (m > 34 && m < 38 ) -+ { -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "5: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); -+#endif /* IPP2P_DEBUG_SOUL */ -+ return ((IPP2P_SOUL * 100) + 6); -+ } -+ -+ if (m > 39 && m < 47 ) -+ { -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "6: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); -+#endif /* IPP2P_DEBUG_SOUL */ -+ return ((IPP2P_SOUL * 100) + 7); -+ } -+ -+ if (m > 61 && m < 70 ) -+ { -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "7: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); -+#endif /* IPP2P_DEBUG_SOUL */ -+ return ((IPP2P_SOUL * 100) + 8); -+ } -+ -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "unknown SOULSEEK command: 0x%x, first 16 bit: 0x%x, first 8 bit: 0x%x ,soulseek ???\n",get_u32(payload, 4),get_u16(payload, 4) >> 16,get_u8(payload, 4) >> 24); -+#endif /* IPP2P_DEBUG_SOUL */ -+ } -+ -+ /* match 14 00 00 00 01 yy 00 00 00 STRING(YY) 01 00 00 00 00 46|50 00 00 00 00 */ -+ /* without size at the beginning !!! */ -+ if ( get_u32(payload, 0) == 0x14 && get_u8(payload, 4) == 0x01 ) -+ { -+ __u32 y=get_u32(payload, 5); -+ /* we need 19 chars + string */ -+ if ( (y + 19) <= (plen) ) -+ { -+ const unsigned char *w=payload+9+y; -+ if (get_u32(w, 0) == 0x01 && ( get_u16(w, 4) == 0x4600 || get_u16(w, 4) == 0x5000) && get_u32(w, 6) == 0x00); -+#ifdef IPP2P_DEBUG_SOUL -+ printk(KERN_DEBUG "Soulssek special client command recognized\n"); -+#endif /* IPP2P_DEBUG_SOUL */ -+ return ((IPP2P_SOUL * 100) + 9); -+ } -+ } -+ return 0; -+} -+ -+ -+/*Search for WinMX commands*/ -+int -+search_winmx (const unsigned char *payload, const u16 plen) -+{ -+//#define IPP2P_DEBUG_WINMX -+ if (((plen) == 4) && (memcmp(payload, "SEND", 4) == 0)) return ((IPP2P_WINMX * 100) + 1); -+ if (((plen) == 3) && (memcmp(payload, "GET", 3) == 0)) return ((IPP2P_WINMX * 100) + 2); -+ //if (packet_len < (head_len + 10)) return 0; -+ if (plen < 10) return 0; -+ -+ if ((memcmp(payload, "SEND", 4) == 0) || (memcmp(payload, "GET", 3) == 0)){ -+ u16 c=4; -+ const u16 end=plen-2; -+ u8 count=0; -+ while (c < end) -+ { -+ if (payload[c]== 0x20 && payload[c+1] == 0x22) -+ { -+ c++; -+ count++; -+ if (count>=2) return ((IPP2P_WINMX * 100) + 3); -+ } -+ c++; -+ } -+ } -+ -+ if ( plen == 149 && payload[0] == '8' ) -+ { -+#ifdef IPP2P_DEBUG_WINMX -+ printk(KERN_INFO "maybe WinMX\n"); -+#endif -+ if (get_u32(payload,17) == 0 && get_u32(payload,21) == 0 && get_u32(payload,25) == 0 && -+// get_u32(payload,33) == __constant_htonl(0x71182b1a) && get_u32(payload,37) == __constant_htonl(0x05050000) && -+// get_u32(payload,133) == __constant_htonl(0x31097edf) && get_u32(payload,145) == __constant_htonl(0xdcb8f792)) -+ get_u16(payload,39) == 0 && get_u16(payload,135) == __constant_htons(0x7edf) && get_u16(payload,147) == __constant_htons(0xf792)) -+ -+ { -+#ifdef IPP2P_DEBUG_WINMX -+ printk(KERN_INFO "got WinMX\n"); -+#endif -+ return ((IPP2P_WINMX * 100) + 4); -+ } -+ } -+ return 0; -+} /*search_winmx*/ -+ -+ -+/*Search for appleJuice commands*/ -+int -+search_apple (const unsigned char *payload, const u16 plen) -+{ -+ if ( (plen > 7) && (payload[6] == 0x0d) && (payload[7] == 0x0a) && (memcmp(payload, "ajprot", 6) == 0)) return (IPP2P_APPLE * 100); -+ -+ return 0; -+} -+ -+ -+/*Search for BitTorrent commands*/ -+int -+search_bittorrent (const unsigned char *payload, const u16 plen) -+{ -+ if (plen > 20) -+ { -+ /* test for match 0x13+"BitTorrent protocol" */ -+ if (payload[0] == 0x13) -+ { -+ if (memcmp(payload+1, "BitTorrent protocol", 19) == 0) return (IPP2P_BIT * 100); -+ } -+ -+ /* get tracker commandos, all starts with GET / -+ * then it can follow: scrape| announce -+ * and then ?hash_info= -+ */ -+ if (memcmp(payload,"GET /",5) == 0) -+ { -+ /* message scrape */ -+ if ( memcmp(payload+5,"scrape?info_hash=",17)==0 ) return (IPP2P_BIT * 100 + 1); -+ /* message announce */ -+ if ( memcmp(payload+5,"announce?info_hash=",19)==0 ) return (IPP2P_BIT * 100 + 2); -+ } -+ } -+ else -+ { -+ /* bitcomet encryptes the first packet, so we have to detect another -+ * one later in the flow */ -+ /* first try failed, too many missdetections */ -+ //if ( size == 5 && get_u32(t,0) == __constant_htonl(1) && t[4] < 3) return (IPP2P_BIT * 100 + 3); -+ -+ /* second try: block request packets */ -+ if ( plen == 17 && get_u32(payload,0) == __constant_htonl(0x0d) && payload[4] == 0x06 && get_u32(payload,13) == __constant_htonl(0x4000) ) return (IPP2P_BIT * 100 + 3); -+ } -+ -+ return 0; -+} -+ -+ -+ -+/*check for Kazaa get command*/ -+int -+search_kazaa (const unsigned char *payload, const u16 plen) -+ -+{ -+ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a) && memcmp(payload, "GET /.hash=", 11) == 0) -+ return (IPP2P_DATA_KAZAA * 100); -+ -+ return 0; -+} -+ -+ -+/*check for gnutella get command*/ -+int -+search_gnu (const unsigned char *payload, const u16 plen) -+{ -+ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) -+ { -+ if (memcmp(payload, "GET /get/", 9) == 0) return ((IPP2P_DATA_GNU * 100) + 1); -+ if (memcmp(payload, "GET /uri-res/", 13) == 0) return ((IPP2P_DATA_GNU * 100) + 2); -+ } -+ return 0; -+} -+ -+ -+/*check for gnutella get commands and other typical data*/ -+int -+search_all_gnu (const unsigned char *payload, const u16 plen) -+{ -+ -+ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) -+ { -+ -+ if (memcmp(payload, "GNUTELLA CONNECT/", 17) == 0) return ((IPP2P_GNU * 100) + 1); -+ if (memcmp(payload, "GNUTELLA/", 9) == 0) return ((IPP2P_GNU * 100) + 2); -+ -+ -+ if ((memcmp(payload, "GET /get/", 9) == 0) || (memcmp(payload, "GET /uri-res/", 13) == 0)) -+ { -+ u16 c=8; -+ const u16 end=plen-22; -+ while (c < end) { -+ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Gnutella-", 11) == 0) || (memcmp(&payload[c+2], "X-Queue:", 8) == 0))) -+ return ((IPP2P_GNU * 100) + 3); -+ c++; -+ } -+ } -+ } -+ return 0; -+} -+ -+ -+/*check for KaZaA download commands and other typical data*/ -+int -+search_all_kazaa (const unsigned char *payload, const u16 plen) -+{ -+ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) -+ { -+ -+ if (memcmp(payload, "GIVE ", 5) == 0) return ((IPP2P_KAZAA * 100) + 1); -+ -+ if (memcmp(payload, "GET /", 5) == 0) { -+ u16 c = 8; -+ const u16 end=plen-22; -+ while (c < end) { -+ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Kazaa-Username: ", 18) == 0) || (memcmp(&payload[c+2], "User-Agent: PeerEnabler/", 24) == 0))) -+ return ((IPP2P_KAZAA * 100) + 2); -+ c++; -+ } -+ } -+ } -+ return 0; -+} -+ -+/*fast check for edonkey file segment transfer command*/ -+int -+search_edk (const unsigned char *payload, const u16 plen) -+{ -+ if (payload[0] != 0xe3) -+ return 0; -+ else { -+ if (payload[5] == 0x47) -+ return (IPP2P_DATA_EDK * 100); -+ else -+ return 0; -+ } -+} -+ -+ -+ -+/*intensive but slower search for some edonkey packets including size-check*/ -+int -+search_all_edk (const unsigned char *payload, const u16 plen) -+{ -+ if (payload[0] != 0xe3) -+ return 0; -+ else { -+ //t += head_len; -+ const u16 cmd = get_u16(payload, 1); -+ if (cmd == (plen - 5)) { -+ switch (payload[5]) { -+ case 0x01: return ((IPP2P_EDK * 100) + 1); /*Client: hello or Server:hello*/ -+ case 0x4c: return ((IPP2P_EDK * 100) + 9); /*Client: Hello-Answer*/ -+ } -+ } -+ return 0; -+ } -+} -+ -+ -+/*fast check for Direct Connect send command*/ -+int -+search_dc (const unsigned char *payload, const u16 plen) -+{ -+ -+ if (payload[0] != 0x24 ) -+ return 0; -+ else { -+ if (memcmp(&payload[1], "Send|", 5) == 0) -+ return (IPP2P_DATA_DC * 100); -+ else -+ return 0; -+ } -+ -+} -+ -+ -+/*intensive but slower check for all direct connect packets*/ -+int -+search_all_dc (const unsigned char *payload, const u16 plen) -+{ -+// unsigned char *t = haystack; -+ -+ if (payload[0] == 0x24 && payload[plen-1] == 0x7c) -+ { -+ const unsigned char *t=&payload[1]; -+ /* Client-Hub-Protocol */ -+ if (memcmp(t, "Lock ", 5) == 0) return ((IPP2P_DC * 100) + 1); -+ /* Client-Client-Protocol, some are already recognized by client-hub (like lock) */ -+ if (memcmp(t, "MyNick ", 7) == 0) return ((IPP2P_DC * 100) + 38); -+ } -+ return 0; -+} -+ -+/*check for mute*/ -+int -+search_mute (const unsigned char *payload, const u16 plen) -+{ -+ if ( plen == 209 || plen == 345 || plen == 473 || plen == 609 || plen == 1121 ) -+ { -+ //printk(KERN_DEBUG "size hit: %u",size); -+ if (memcmp(payload,"PublicKey: ",11) == 0 ) -+ { -+ return ((IPP2P_MUTE * 100) + 0); -+ -+/* if (memcmp(t+size-14,"\x0aEndPublicKey\x0a",14) == 0) -+ { -+ printk(KERN_DEBUG "end pubic key hit: %u",size); -+ -+ }*/ -+ } -+ } -+ return 0; -+} -+ -+ -+/* check for xdcc */ -+int -+search_xdcc (const unsigned char *payload, const u16 plen) -+{ -+ /* search in small packets only */ -+ if (plen > 20 && plen < 200 && payload[plen-1] == 0x0a && payload[plen-2] == 0x0d && memcmp(payload,"PRIVMSG ",8) == 0) -+ { -+ -+ u16 x=10; -+ const u16 end=plen - 13; -+ -+ /* is seems to be a irc private massage, chedck for xdcc command */ -+ while (x < end) -+ { -+ if (payload[x] == ':') -+ { -+ if ( memcmp(&payload[x+1],"xdcc send #",11) == 0 ) -+ return ((IPP2P_XDCC * 100) + 0); -+ } -+ x++; -+ } -+ } -+ return 0; -+} -+ -+/* search for waste */ -+int search_waste(const unsigned char *payload, const u16 plen) -+{ -+ if ( plen >= 8 && memcmp(payload,"GET.sha1:",9) == 0) -+ return ((IPP2P_WASTE * 100) + 0); -+ -+ return 0; -+} -+ -+ -+static struct { -+ int command; -+ __u8 short_hand; /*for fucntions included in short hands*/ -+ int packet_len; -+ int (*function_name) (const unsigned char *, const u16); -+} matchlist[] = { -+ {IPP2P_EDK,SHORT_HAND_IPP2P,20, &search_all_edk}, -+// {IPP2P_DATA_KAZAA,SHORT_HAND_DATA,200, &search_kazaa}, -+// {IPP2P_DATA_EDK,SHORT_HAND_DATA,60, &search_edk}, -+// {IPP2P_DATA_DC,SHORT_HAND_DATA,26, &search_dc}, -+ {IPP2P_DC,SHORT_HAND_IPP2P,5, search_all_dc}, -+// {IPP2P_DATA_GNU,SHORT_HAND_DATA,40, &search_gnu}, -+ {IPP2P_GNU,SHORT_HAND_IPP2P,5, &search_all_gnu}, -+ {IPP2P_KAZAA,SHORT_HAND_IPP2P,5, &search_all_kazaa}, -+ {IPP2P_BIT,SHORT_HAND_IPP2P,20, &search_bittorrent}, -+ {IPP2P_APPLE,SHORT_HAND_IPP2P,5, &search_apple}, -+ {IPP2P_SOUL,SHORT_HAND_IPP2P,5, &search_soul}, -+ {IPP2P_WINMX,SHORT_HAND_IPP2P,2, &search_winmx}, -+ {IPP2P_ARES,SHORT_HAND_IPP2P,5, &search_ares}, -+ {IPP2P_MUTE,SHORT_HAND_NONE,200, &search_mute}, -+ {IPP2P_WASTE,SHORT_HAND_NONE,5, &search_waste}, -+ {IPP2P_XDCC,SHORT_HAND_NONE,5, &search_xdcc}, -+ {0,0,0,NULL} -+}; -+ -+ -+static struct { -+ int command; -+ __u8 short_hand; /*for fucntions included in short hands*/ -+ int packet_len; -+ int (*function_name) (unsigned char *, int); -+} udp_list[] = { -+ { IPP2P_KAZAA, SHORT_HAND_IPP2P, 14, &udp_search_kazaa}, -+ { IPP2P_BIT, SHORT_HAND_IPP2P, 23, &udp_search_bit}, -+ { IPP2P_GNU, SHORT_HAND_IPP2P, 11, &udp_search_gnu}, -+ { IPP2P_EDK, SHORT_HAND_IPP2P, 9, &udp_search_edk}, -+ { IPP2P_DC, SHORT_HAND_IPP2P, 12, &udp_search_directconnect}, -+ { 0, 0, 0, NULL } -+}; -+ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) -+static bool -+#else -+static int -+#endif -+match(const struct sk_buff *skb, -+ const struct net_device *in, -+ const struct net_device *out, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) -+ const struct xt_match *match, -+#endif -+ const void *matchinfo, -+ int offset, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) -+ const void *hdr, -+ u_int16_t datalen, -+#endif -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) -+ unsigned int protoff, -+#endif -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) -+ bool *hotdrop) -+#else -+ bool *hotdrop) -+#endif -+{ -+ const struct ipt_p2p_info *info = matchinfo; -+ unsigned char *haystack; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) -+ struct iphdr *ip = ip_hdr(skb); -+#else -+ struct iphdr *ip = skb->nh.iph; -+#endif -+ int p2p_result = 0, i = 0; -+// int head_len; -+ int hlen = ntohs(ip->tot_len)-(ip->ihl*4); /*hlen = packet-data length*/ -+ -+ /*must not be a fragment*/ -+ if (offset) { -+ if (info->debug) printk("IPP2P.match: offset found %i \n",offset); -+ return 0; -+ } -+ -+ /*make sure that skb is linear*/ -+ if(skb_is_nonlinear(skb)){ -+ if (info->debug) printk("IPP2P.match: nonlinear skb found\n"); -+ return 0; -+ } -+ -+ -+ haystack=(char *)ip+(ip->ihl*4); /*haystack = packet data*/ -+ -+ switch (ip->protocol){ -+ case IPPROTO_TCP: /*what to do with a TCP packet*/ -+ { -+ struct tcphdr *tcph = (void *) ip + ip->ihl * 4; -+ -+ if (tcph->fin) return 0; /*if FIN bit is set bail out*/ -+ if (tcph->syn) return 0; /*if SYN bit is set bail out*/ -+ if (tcph->rst) return 0; /*if RST bit is set bail out*/ -+ -+ haystack += tcph->doff * 4; /*get TCP-Header-Size*/ -+ hlen -= tcph->doff * 4; -+ while (matchlist[i].command) { -+ if ((((info->cmd & matchlist[i].command) == matchlist[i].command) || -+ ((info->cmd & matchlist[i].short_hand) == matchlist[i].short_hand)) && -+ (hlen > matchlist[i].packet_len)) { -+ p2p_result = matchlist[i].function_name(haystack, hlen); -+ if (p2p_result) -+ { -+ if (info->debug) printk("IPP2P.debug:TCP-match: %i from: %u.%u.%u.%u:%i to: %u.%u.%u.%u:%i Length: %i\n", -+ p2p_result, NIPQUAD(ip->saddr),ntohs(tcph->source), NIPQUAD(ip->daddr),ntohs(tcph->dest),hlen); -+ return p2p_result; -+ } -+ } -+ i++; -+ } -+ return p2p_result; -+ } -+ -+ case IPPROTO_UDP: /*what to do with an UDP packet*/ -+ { -+ struct udphdr *udph = (void *) ip + ip->ihl * 4; -+ -+ while (udp_list[i].command){ -+ if ((((info->cmd & udp_list[i].command) == udp_list[i].command) || -+ ((info->cmd & udp_list[i].short_hand) == udp_list[i].short_hand)) && -+ (hlen > udp_list[i].packet_len)) { -+ p2p_result = udp_list[i].function_name(haystack, hlen); -+ if (p2p_result){ -+ if (info->debug) printk("IPP2P.debug:UDP-match: %i from: %u.%u.%u.%u:%i to: %u.%u.%u.%u:%i Length: %i\n", -+ p2p_result, NIPQUAD(ip->saddr),ntohs(udph->source), NIPQUAD(ip->daddr),ntohs(udph->dest),hlen); -+ return p2p_result; -+ } -+ } -+ i++; -+ } -+ return p2p_result; -+ } -+ -+ default: return 0; -+ } -+} -+ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) -+static bool -+#else -+static int -+#endif -+checkentry(const char *tablename, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) -+ const void *ip, -+#else -+ const struct ipt_ip *ip, -+#endif -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) -+ const struct xt_match *match, -+#endif -+ void *matchinfo, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) -+ unsigned int matchsize, -+#endif -+ unsigned int hook_mask) -+{ -+ /* Must specify -p tcp */ -+/* if (ip->proto != IPPROTO_TCP || (ip->invflags & IPT_INV_PROTO)) { -+ * printk("ipp2p: Only works on TCP packets, use -p tcp\n"); -+ * return 0; -+ * }*/ -+ return 1; -+} -+ -+ -+ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) -+static struct xt_match ipp2p_match = { -+#else -+static struct ipt_match ipp2p_match = { -+#endif -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) -+ { NULL, NULL }, -+ "ipp2p", -+ &ipp2p_match, -+ &ipp2p_checkentry, -+ NULL, -+ THIS_MODULE -+#endif -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) -+ .name = "ipp2p", -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) -+ .family = AF_INET, -+#endif -+ .match = &match, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) -+ .matchsize = sizeof(struct ipt_p2p_info), -+#endif -+ .checkentry = &checkentry, -+ .me = THIS_MODULE, -+#endif -+}; -+ -+ -+static int __init init(void) -+{ -+ printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) -+ return xt_register_match(&ipp2p_match); -+#else -+ return ipt_register_match(&ipp2p_match); -+#endif -+} -+ -+static void __exit fini(void) -+{ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) -+ xt_unregister_match(&ipp2p_match); -+#else -+ ipt_unregister_match(&ipp2p_match); -+#endif -+ printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION); -+} -+ -+module_init(init); -+module_exit(fini); -+ -+ -diff -Naur linux-2.6.27.19.org/net/ipv4/netfilter/Kconfig linux-2.6.27.19/net/ipv4/netfilter/Kconfig ---- linux-2.6.27.19.org/net/ipv4/netfilter/Kconfig 2009-02-20 23:39:34.000000000 +0100 -+++ linux-2.6.27.19/net/ipv4/netfilter/Kconfig 2009-03-17 19:31:50.000000000 +0100 -@@ -406,5 +406,15 @@ - Allows altering the ARP packet payload: source and destination - hardware and network addresses. - -+config IP_NF_MATCH_IPP2P -+ tristate 'IPP2P match support' -+ depends on IP_NF_IPTABLES -+ help -+ This option makes possible to match some P2P packets -+ therefore helps controlling such traffic. -+ -+ If you want to compile it as a module, say M here and read -+ file:Documentation/modules.txt. If unsure, say `N'. -+ - endmenu - -diff -Naur linux-2.6.27.19.org/net/ipv4/netfilter/Makefile linux-2.6.27.19/net/ipv4/netfilter/Makefile ---- linux-2.6.27.19.org/net/ipv4/netfilter/Makefile 2009-02-20 23:39:34.000000000 +0100 -+++ linux-2.6.27.19/net/ipv4/netfilter/Makefile 2009-03-17 19:31:50.000000000 +0100 -@@ -49,6 +49,7 @@ - obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o - obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn.o - obj-$(CONFIG_IP_NF_MATCH_RECENT) += ipt_recent.o -+obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o - obj-$(CONFIG_IP_NF_MATCH_TTL) += ipt_ttl.o - - # targets diff --git a/src/patches/linux-2.6.27.21-imq-test3-xen.patch b/src/patches/linux-2.6.27.21-imq-test3-xen.patch deleted file mode 100644 index f9401db..0000000 --- a/src/patches/linux-2.6.27.21-imq-test3-xen.patch +++ /dev/null @@ -1,1212 +0,0 @@ -diff -uNr --exclude='*~' linux-2.6.27.21/drivers/net/imq.c linux-2.6.27.21-imq/drivers/net/imq.c ---- linux-2.6.27.21/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/drivers/net/imq.c 2009-04-20 23:52:22.712017559 +0300 -@@ -0,0 +1,566 @@ -+/* -+ * Pseudo-driver for the intermediate queue device. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version -+ * 2 of the License, or (at your option) any later version. -+ * -+ * Authors: Patrick McHardy, kaber@trash.net -+ * -+ * The first version was written by Martin Devera, devik@cdi.cz -+ * -+ * Credits: Jan Rafaj imq2t@cedric.vabo.cz -+ * - Update patch to 2.4.21 -+ * Sebastian Strollo sstrollo@nortelnetworks.com -+ * - Fix "Dead-loop on netdevice imq"-issue -+ * Marcel Sebek sebek64@post.cz -+ * - Update to 2.6.2-rc1 -+ * -+ * After some time of inactivity there is a group taking care -+ * of IMQ again: http://www.linuximq.net -+ * -+ * -+ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 -+ * including the following changes: -+ * -+ * - Correction of ipv6 support "+"s issue (Hasso Tepper) -+ * - Correction of imq_init_devs() issue that resulted in -+ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) -+ * - Addition of functionality to choose number of IMQ devices -+ * during kernel config (Andre Correa) -+ * - Addition of functionality to choose how IMQ hooks on -+ * PRE and POSTROUTING (after or before NAT) (Andre Correa) -+ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) -+ * -+ * -+ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were -+ * released with almost no problems. 2.6.14-x was released -+ * with some important changes: nfcache was removed; After -+ * some weeks of trouble we figured out that some IMQ fields -+ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. -+ * These functions are correctly patched by this new patch version. -+ * -+ * Thanks for all who helped to figure out all the problems with -+ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, -+ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully -+ * I didn't forget anybody). I apologize again for my lack of time. -+ * -+ * -+ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead -+ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid -+ * recursive locking. New initialization routines to fix 'rmmod' not -+ * working anymore. Used code from ifb.c. (Jussi Kivilinna) -+ * -+ * 2008/08/06 - 2.6.26 - (JK) -+ * - Replaced tasklet with 'netif_schedule()'. -+ * - Cleaned up and added comments for imq_nf_queue(). -+ * -+ * 2009/04/12 -+ * - Add skb_save_cb/skb_restore_cb helper functions for backuping -+ * control buffer. This is needed because qdisc-layer on kernels -+ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna) -+ * - Add better locking for IMQ device. Hopefully this will solve -+ * SMP issues. (Jussi Kivilinna) -+ * - Port to 2.6.27 -+ * -+ * 2009/04/20 - (Jussi Kivilinna) -+ * - Fix rmmod not working -+ * - Use netdevice feature flags to avoid extra packet handling -+ * by core networking layer and possibly increase performance. -+ * -+ * Also, many thanks to pablo Sebastian Greco for making the initial -+ * patch and to those who helped the testing. -+ * -+ * More info at: http://www.linuximq.net/ (Andre Correa) -+ */ -+ -+#include <linux/module.h> -+#include <linux/kernel.h> -+#include <linux/moduleparam.h> -+#include <linux/list.h> -+#include <linux/skbuff.h> -+#include <linux/netdevice.h> -+#include <linux/etherdevice.h> -+#include <linux/rtnetlink.h> -+#include <linux/if_arp.h> -+#include <linux/netfilter.h> -+#include <linux/netfilter_ipv4.h> -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ #include <linux/netfilter_ipv6.h> -+#endif -+#include <linux/imq.h> -+#include <net/pkt_sched.h> -+#include <net/netfilter/nf_queue.h> -+ -+static nf_hookfn imq_nf_hook; -+ -+static struct nf_hook_ops imq_ingress_ipv4 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET, -+ .hooknum = NF_INET_PRE_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ .priority = NF_IP_PRI_MANGLE + 1 -+#else -+ .priority = NF_IP_PRI_NAT_DST + 1 -+#endif -+}; -+ -+static struct nf_hook_ops imq_egress_ipv4 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET, -+ .hooknum = NF_INET_POST_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) -+ .priority = NF_IP_PRI_LAST -+#else -+ .priority = NF_IP_PRI_NAT_SRC - 1 -+#endif -+}; -+ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+static struct nf_hook_ops imq_ingress_ipv6 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET6, -+ .hooknum = NF_INET_PRE_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ .priority = NF_IP6_PRI_MANGLE + 1 -+#else -+ .priority = NF_IP6_PRI_NAT_DST + 1 -+#endif -+}; -+ -+static struct nf_hook_ops imq_egress_ipv6 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET6, -+ .hooknum = NF_INET_POST_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) -+ .priority = NF_IP6_PRI_LAST -+#else -+ .priority = NF_IP6_PRI_NAT_SRC - 1 -+#endif -+}; -+#endif -+ -+#if defined(CONFIG_IMQ_NUM_DEVS) -+static unsigned int numdevs = CONFIG_IMQ_NUM_DEVS; -+#else -+static unsigned int numdevs = IMQ_MAX_DEVS; -+#endif -+ -+static DEFINE_SPINLOCK(imq_nf_queue_lock); -+ -+static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; -+ -+ -+static struct net_device_stats *imq_get_stats(struct net_device *dev) -+{ -+ return &dev->stats; -+} -+ -+/* called for packets kfree'd in qdiscs at places other than enqueue */ -+static void imq_skb_destructor(struct sk_buff *skb) -+{ -+ struct nf_queue_entry *entry = skb->nf_queue_entry; -+ -+ if (entry) { -+ nf_queue_entry_release_refs(entry); -+ kfree(entry); -+ } -+ -+ skb_restore_cb(skb); /* kfree backup */ -+} -+ -+static void imq_nf_reinject(struct nf_queue_entry *entry, unsigned int verdict) -+{ -+ int status; -+ -+ if (!entry->next_outfn) { -+ spin_lock_bh(&imq_nf_queue_lock); -+ nf_reinject(entry, verdict); -+ spin_unlock_bh(&imq_nf_queue_lock); -+ return; -+ } -+ -+ rcu_read_lock(); -+ local_bh_disable(); -+ status = entry->next_outfn(entry, entry->next_queuenum); -+ local_bh_enable(); -+ if (status < 0) { -+ nf_queue_entry_release_refs(entry); -+ kfree_skb(entry->skb); -+ kfree(entry); -+ } -+ -+ rcu_read_unlock(); -+} -+ -+static int imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) -+{ -+ dev->stats.tx_bytes += skb->len; -+ dev->stats.tx_packets++; -+ -+ skb->imq_flags = 0; -+ skb->destructor = NULL; -+ -+ skb_restore_cb(skb); /* restore skb->cb */ -+ -+ dev->trans_start = jiffies; -+ imq_nf_reinject(skb->nf_queue_entry, NF_ACCEPT); -+ return 0; -+} -+ -+static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num) -+{ -+ struct net_device *dev; -+ struct sk_buff *skb_orig, *skb, *skb_shared; -+ struct Qdisc *q; -+ struct netdev_queue *txq; -+ int users, index; -+ int retval = -EINVAL; -+ -+ index = entry->skb->imq_flags & IMQ_F_IFMASK; -+ if (unlikely(index > numdevs - 1)) { -+ if (net_ratelimit()) -+ printk(KERN_WARNING -+ "IMQ: invalid device specified, highest is %u\n", -+ numdevs - 1); -+ retval = -EINVAL; -+ goto out; -+ } -+ -+ /* check for imq device by index from cache */ -+ dev = imq_devs_cache[index]; -+ if (unlikely(!dev)) { -+ char buf[8]; -+ -+ /* get device by name and cache result */ -+ snprintf(buf, sizeof(buf), "imq%d", index); -+ dev = dev_get_by_name(&init_net, buf); -+ if (!dev) { -+ /* not found ?!*/ -+ BUG(); -+ retval = -ENODEV; -+ goto out; -+ } -+ -+ imq_devs_cache[index] = dev; -+ dev_put(dev); -+ } -+ -+ if (unlikely(!(dev->flags & IFF_UP))) { -+ entry->skb->imq_flags = 0; -+ imq_nf_reinject(entry, NF_ACCEPT); -+ retval = 0; -+ goto out; -+ } -+ dev->last_rx = jiffies; -+ -+ skb = entry->skb; -+ skb_orig = NULL; -+ -+ /* skb has owner? => make clone */ -+ if (unlikely(skb->destructor)) { -+ skb_orig = skb; -+ skb = skb_clone(skb, GFP_ATOMIC); -+ if (!skb) { -+ retval = -ENOMEM; -+ goto out; -+ } -+ entry->skb = skb; -+ } -+ -+ skb->nf_queue_entry = entry; -+ -+ dev->stats.rx_bytes += skb->len; -+ dev->stats.rx_packets++; -+ -+ txq = dev_pick_tx(dev, skb); -+ -+ q = rcu_dereference(txq->qdisc); -+ if (unlikely(!q->enqueue)) -+ goto packet_not_eaten_by_imq_dev; -+ -+ spin_lock_bh(qdisc_lock(q)); -+ -+ users = atomic_read(&skb->users); -+ -+ skb_shared = skb_get(skb); /* increase reference count by one */ -+ skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will -+ overwrite it */ -+ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ -+ -+ if (likely(atomic_read(&skb_shared->users) == users + 1)) { -+ kfree_skb(skb_shared); /* decrease reference count by one */ -+ -+ skb->destructor = &imq_skb_destructor; -+ -+ /* cloned? */ -+ if (skb_orig) -+ kfree_skb(skb_orig); /* free original */ -+ -+ spin_unlock_bh(qdisc_lock(q)); -+ -+ /* schedule qdisc dequeue */ -+ __netif_schedule(q); -+ -+ retval = 0; -+ goto out; -+ } else { -+ skb_restore_cb(skb_shared); /* restore skb->cb */ -+ /* qdisc dropped packet and decreased skb reference count of -+ * skb, so we don't really want to and try refree as that would -+ * actually destroy the skb. */ -+ spin_unlock_bh(qdisc_lock(q)); -+ goto packet_not_eaten_by_imq_dev; -+ } -+ -+packet_not_eaten_by_imq_dev: -+ /* cloned? restore original */ -+ if (skb_orig) { -+ kfree_skb(skb); -+ entry->skb = skb_orig; -+ } -+ retval = -1; -+out: -+ return retval; -+} -+ -+static struct nf_queue_handler nfqh = { -+ .name = "imq", -+ .outfn = imq_nf_queue, -+}; -+ -+static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, -+ const struct net_device *indev, -+ const struct net_device *outdev, -+ int (*okfn)(struct sk_buff *)) -+{ -+ if (pskb->imq_flags & IMQ_F_ENQUEUE) -+ return NF_QUEUE; -+ -+ return NF_ACCEPT; -+} -+ -+static int imq_close(struct net_device *dev) -+{ -+ netif_stop_queue(dev); -+ return 0; -+} -+ -+static int imq_open(struct net_device *dev) -+{ -+ netif_start_queue(dev); -+ return 0; -+} -+ -+static void imq_setup(struct net_device *dev) -+{ -+ dev->hard_start_xmit = imq_dev_xmit; -+ dev->open = imq_open; -+ dev->get_stats = imq_get_stats; -+ dev->stop = imq_close; -+ dev->type = ARPHRD_VOID; -+ dev->mtu = 16000; -+ dev->tx_queue_len = 11000; -+ dev->flags = IFF_NOARP; -+ dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | -+ NETIF_F_GSO | NETIF_F_HW_CSUM | -+ NETIF_F_HIGHDMA; -+} -+ -+static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) -+{ -+ int ret = 0; -+ -+ if (tb[IFLA_ADDRESS]) { -+ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { -+ ret = -EINVAL; -+ goto end; -+ } -+ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { -+ ret = -EADDRNOTAVAIL; -+ goto end; -+ } -+ } -+ return 0; -+end: -+ printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret); -+ return ret; -+} -+ -+static struct rtnl_link_ops imq_link_ops __read_mostly = { -+ .kind = "imq", -+ .priv_size = 0, -+ .setup = imq_setup, -+ .validate = imq_validate, -+}; -+ -+static int __init imq_init_hooks(void) -+{ -+ int err; -+ -+ nf_register_queue_imq_handler(&nfqh); -+ -+ err = nf_register_hook(&imq_ingress_ipv4); -+ if (err) -+ goto err1; -+ -+ err = nf_register_hook(&imq_egress_ipv4); -+ if (err) -+ goto err2; -+ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ err = nf_register_hook(&imq_ingress_ipv6); -+ if (err) -+ goto err3; -+ -+ err = nf_register_hook(&imq_egress_ipv6); -+ if (err) -+ goto err4; -+#endif -+ -+ return 0; -+ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+err4: -+ nf_unregister_hook(&imq_ingress_ipv6); -+err3: -+ nf_unregister_hook(&imq_egress_ipv4); -+#endif -+err2: -+ nf_unregister_hook(&imq_ingress_ipv4); -+err1: -+ nf_unregister_queue_imq_handler(); -+ return err; -+} -+ -+static int __init imq_init_one(int index) -+{ -+ struct net_device *dev; -+ int ret; -+ -+ dev = alloc_netdev(0, "imq%d", imq_setup); -+ if (!dev) -+ return -ENOMEM; -+ -+ ret = dev_alloc_name(dev, dev->name); -+ if (ret < 0) -+ goto fail; -+ -+ dev->rtnl_link_ops = &imq_link_ops; -+ ret = register_netdevice(dev); -+ if (ret < 0) -+ goto fail; -+ -+ return 0; -+fail: -+ free_netdev(dev); -+ return ret; -+} -+ -+static int __init imq_init_devs(void) -+{ -+ int err, i; -+ -+ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { -+ printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n", -+ IMQ_MAX_DEVS); -+ return -EINVAL; -+ } -+ -+ rtnl_lock(); -+ err = __rtnl_link_register(&imq_link_ops); -+ -+ for (i = 0; i < numdevs && !err; i++) -+ err = imq_init_one(i); -+ -+ if (err) { -+ __rtnl_link_unregister(&imq_link_ops); -+ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); -+ } -+ rtnl_unlock(); -+ -+ return err; -+} -+ -+static int __init imq_init_module(void) -+{ -+ int err; -+ -+#if defined(CONFIG_IMQ_NUM_DEVS) -+ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); -+ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); -+ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); -+#endif -+ -+ err = imq_init_devs(); -+ if (err) { -+ printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n"); -+ return err; -+ } -+ -+ err = imq_init_hooks(); -+ if (err) { -+ printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); -+ rtnl_link_unregister(&imq_link_ops); -+ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); -+ return err; -+ } -+ -+ printk(KERN_INFO "IMQ driver loaded successfully.\n"); -+ -+#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n"); -+#else -+ printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n"); -+#endif -+#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n"); -+#else -+ printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n"); -+#endif -+ -+ return 0; -+} -+ -+static void __exit imq_unhook(void) -+{ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ nf_unregister_hook(&imq_ingress_ipv6); -+ nf_unregister_hook(&imq_egress_ipv6); -+#endif -+ nf_unregister_hook(&imq_ingress_ipv4); -+ nf_unregister_hook(&imq_egress_ipv4); -+ -+ nf_unregister_queue_imq_handler(); -+} -+ -+static void __exit imq_cleanup_devs(void) -+{ -+ rtnl_link_unregister(&imq_link_ops); -+ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); -+} -+ -+static void __exit imq_exit_module(void) -+{ -+ imq_unhook(); -+ imq_cleanup_devs(); -+ printk(KERN_INFO "IMQ driver unloaded successfully.\n"); -+} -+ -+module_init(imq_init_module); -+module_exit(imq_exit_module); -+ -+module_param(numdevs, int, 0); -+MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will " -+ "be created)"); -+MODULE_AUTHOR("http://www.linuximq.net"); -+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See " -+ "http://www.linuximq.net/ for more information."); -+MODULE_LICENSE("GPL"); -+MODULE_ALIAS_RTNL_LINK("imq"); -+ -diff -uNr --exclude='*~' linux-2.6.27.21/drivers/net/Kconfig linux-2.6.27.21-imq/drivers/net/Kconfig ---- linux-2.6.27.21/drivers/net/Kconfig 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/drivers/net/Kconfig 2009-04-20 23:48:35.702017146 +0300 -@@ -109,6 +109,129 @@ - To compile this driver as a module, choose M here: the module - will be called eql. If unsure, say N. - -+config IMQ -+ tristate "IMQ (intermediate queueing device) support" -+ depends on NETDEVICES && NETFILTER -+ ---help--- -+ The IMQ device(s) is used as placeholder for QoS queueing -+ disciplines. Every packet entering/leaving the IP stack can be -+ directed through the IMQ device where it's enqueued/dequeued to the -+ attached qdisc. This allows you to treat network devices as classes -+ and distribute bandwidth among them. Iptables is used to specify -+ through which IMQ device, if any, packets travel. -+ -+ More information at: http://www.linuximq.net/ -+ -+ To compile this driver as a module, choose M here: the module -+ will be called imq. If unsure, say N. -+ -+choice -+ prompt "IMQ behavior (PRE/POSTROUTING)" -+ depends on IMQ -+ default IMQ_BEHAVIOR_AB -+ help -+ -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ IMQ can work in any of the following ways: -+ -+ PREROUTING | POSTROUTING -+ -----------------|------------------- -+ #1 After NAT | After NAT -+ #2 After NAT | Before NAT -+ #3 Before NAT | After NAT -+ #4 Before NAT | Before NAT -+ -+ The default behavior is to hook before NAT on PREROUTING -+ and after NAT on POSTROUTING (#3). -+ -+ This settings are specially usefull when trying to use IMQ -+ to shape NATed clients. -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_AA -+ bool "IMQ AA" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: After NAT -+ POSTROUTING: After NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_AB -+ bool "IMQ AB" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: After NAT -+ POSTROUTING: Before NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_BA -+ bool "IMQ BA" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: Before NAT -+ POSTROUTING: After NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_BB -+ bool "IMQ BB" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: Before NAT -+ POSTROUTING: Before NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+endchoice -+ -+config IMQ_NUM_DEVS -+ -+ int "Number of IMQ devices" -+ range 2 16 -+ depends on IMQ -+ default "16" -+ help -+ -+ This settings defines how many IMQ devices will be -+ created. -+ -+ The default value is 16. -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ - config TUN - tristate "Universal TUN/TAP device driver support" - select CRC32 -diff -uNr --exclude='*~' linux-2.6.27.21/drivers/net/Makefile linux-2.6.27.21-imq/drivers/net/Makefile ---- linux-2.6.27.21/drivers/net/Makefile 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/drivers/net/Makefile 2009-04-20 23:48:35.702017146 +0300 -@@ -144,6 +144,7 @@ - obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o - - obj-$(CONFIG_DUMMY) += dummy.o -+obj-$(CONFIG_IMQ) += imq.o - obj-$(CONFIG_IFB) += ifb.o - obj-$(CONFIG_MACVLAN) += macvlan.o - obj-$(CONFIG_DE600) += de600.o -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/imq.h linux-2.6.27.21-imq/include/linux/imq.h ---- linux-2.6.27.21/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/imq.h 2009-04-20 23:48:35.702017146 +0300 -@@ -0,0 +1,13 @@ -+#ifndef _IMQ_H -+#define _IMQ_H -+ -+/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ -+#define IMQ_F_BITS 5 -+ -+#define IMQ_F_IFMASK 0x0f -+#define IMQ_F_ENQUEUE 0x10 -+ -+#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) -+ -+#endif /* _IMQ_H */ -+ -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/netdevice.h linux-2.6.27.21-imq/include/linux/netdevice.h ---- linux-2.6.27.21/include/linux/netdevice.h 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/netdevice.h 2009-04-20 23:48:35.703017245 +0300 -@@ -915,6 +915,7 @@ - extern int dev_open(struct net_device *dev); - extern int dev_close(struct net_device *dev); - extern void dev_disable_lro(struct net_device *dev); -+extern struct netdev_queue *dev_pick_tx(struct net_device *dev, struct sk_buff *skb); - extern int dev_queue_xmit(struct sk_buff *skb); - extern int register_netdevice(struct net_device *dev); - extern void unregister_netdevice(struct net_device *dev); -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/netfilter/xt_IMQ.h linux-2.6.27.21-imq/include/linux/netfilter/xt_IMQ.h ---- linux-2.6.27.21/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/netfilter/xt_IMQ.h 2009-04-20 23:48:35.703017245 +0300 -@@ -0,0 +1,9 @@ -+#ifndef _XT_IMQ_H -+#define _XT_IMQ_H -+ -+struct xt_imq_info { -+ unsigned int todev; /* target imq device */ -+}; -+ -+#endif /* _XT_IMQ_H */ -+ -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.6.27.21-imq/include/linux/netfilter_ipv4/ipt_IMQ.h ---- linux-2.6.27.21/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/netfilter_ipv4/ipt_IMQ.h 2009-04-20 23:48:35.703017245 +0300 -@@ -0,0 +1,10 @@ -+#ifndef _IPT_IMQ_H -+#define _IPT_IMQ_H -+ -+/* Backwards compatibility for old userspace */ -+#include <linux/netfilter/xt_IMQ.h> -+ -+#define ipt_imq_info xt_imq_info -+ -+#endif /* _IPT_IMQ_H */ -+ -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.6.27.21-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h ---- linux-2.6.27.21/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2009-04-20 23:48:35.704017144 +0300 -@@ -0,0 +1,10 @@ -+#ifndef _IP6T_IMQ_H -+#define _IP6T_IMQ_H -+ -+/* Backwards compatibility for old userspace */ -+#include <linux/netfilter/xt_IMQ.h> -+ -+#define ip6t_imq_info xt_imq_info -+ -+#endif /* _IP6T_IMQ_H */ -+ -diff -uNr --exclude='*~' linux-2.6.27.21/include/net/netfilter/nf_queue.h linux-2.6.27.21-imq/include/net/netfilter/nf_queue.h ---- linux-2.6.27.21/include/net/netfilter/nf_queue.h 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/include/net/netfilter/nf_queue.h 2009-04-20 23:48:35.704017144 +0300 -@@ -13,6 +13,12 @@ - struct net_device *indev; - struct net_device *outdev; - int (*okfn)(struct sk_buff *); -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ int (*next_outfn)(struct nf_queue_entry *entry, -+ unsigned int queuenum); -+ unsigned int next_queuenum; -+#endif - }; - - #define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry)) -@@ -30,5 +36,11 @@ - const struct nf_queue_handler *qh); - extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); - extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); -+extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); -+extern void nf_unregister_queue_imq_handler(void); -+#endif - - #endif /* _NF_QUEUE_H */ -diff -uNr --exclude='*~' linux-2.6.27.21/net/core/dev.c linux-2.6.27.21-imq/net/core/dev.c ---- linux-2.6.27.21/net/core/dev.c 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/core/dev.c 2009-04-20 23:48:35.706016975 +0300 -@@ -96,6 +96,9 @@ - #include <net/net_namespace.h> - #include <net/sock.h> - #include <linux/rtnetlink.h> -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+#include <linux/imq.h> -+#endif - #include <linux/proc_fs.h> - #include <linux/seq_file.h> - #include <linux/stat.h> -@@ -1624,7 +1627,11 @@ - struct netdev_queue *txq) - { - if (likely(!skb->next)) { -- if (!list_empty(&ptype_all)) -+ if (!list_empty(&ptype_all) -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ && !(skb->imq_flags & IMQ_F_ENQUEUE) -+#endif -+ ) - dev_queue_xmit_nit(skb, dev); - - if (netif_needs_gso(dev, skb)) { -@@ -1715,8 +1722,7 @@ - return (u16) (((u64) hash * dev->real_num_tx_queues) >> 32); - } - --static struct netdev_queue *dev_pick_tx(struct net_device *dev, -- struct sk_buff *skb) -+struct netdev_queue *dev_pick_tx(struct net_device *dev, struct sk_buff *skb) - { - u16 queue_index = 0; - -@@ -1728,6 +1734,7 @@ - skb_set_queue_mapping(skb, queue_index); - return netdev_get_tx_queue(dev, queue_index); - } -+EXPORT_SYMBOL(dev_pick_tx); - - /** - * dev_queue_xmit - transmit a buffer -diff -uNr --exclude='*~' linux-2.6.27.21/net/core/skbuff.c linux-2.6.27.21-imq/net/core/skbuff.c ---- linux-2.6.27.21/net/core/skbuff.c 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/core/skbuff.c 2009-04-20 23:48:35.707017089 +0300 -@@ -69,6 +69,9 @@ - - static struct kmem_cache *skbuff_head_cache __read_mostly; - static struct kmem_cache *skbuff_fclone_cache __read_mostly; -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+static struct kmem_cache *skbuff_cb_store_cache __read_mostly; -+#endif - - static void sock_pipe_buf_release(struct pipe_inode_info *pipe, - struct pipe_buffer *buf) -@@ -88,6 +91,80 @@ - return 1; - } - -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+/* Control buffer save/restore for IMQ devices */ -+struct skb_cb_table { -+ void *cb_next; -+ atomic_t refcnt; -+ char cb[48]; -+}; -+ -+static DEFINE_SPINLOCK(skb_cb_store_lock); -+ -+int skb_save_cb(struct sk_buff *skb) -+{ -+ struct skb_cb_table *next; -+ -+ next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC); -+ if (!next) -+ return -ENOMEM; -+ -+ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); -+ -+ memcpy(next->cb, skb->cb, sizeof(skb->cb)); -+ next->cb_next = skb->cb_next; -+ -+ atomic_set(&next->refcnt, 1); -+ -+ skb->cb_next = next; -+ return 0; -+} -+EXPORT_SYMBOL(skb_save_cb); -+ -+int skb_restore_cb(struct sk_buff *skb) -+{ -+ struct skb_cb_table *next; -+ -+ if (!skb->cb_next) -+ return 0; -+ -+ next = skb->cb_next; -+ -+ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); -+ -+ memcpy(skb->cb, next->cb, sizeof(skb->cb)); -+ skb->cb_next = next->cb_next; -+ -+ spin_lock(&skb_cb_store_lock); -+ -+ if (atomic_dec_and_test(&next->refcnt)) { -+ kmem_cache_free(skbuff_cb_store_cache, next); -+ } -+ -+ spin_unlock(&skb_cb_store_lock); -+ -+ return 0; -+} -+EXPORT_SYMBOL(skb_restore_cb); -+ -+static void skb_copy_stored_cb(struct sk_buff *new, struct sk_buff *old) -+{ -+ struct skb_cb_table *next; -+ -+ if (!old->cb_next) { -+ new->cb_next = 0; -+ return; -+ } -+ -+ spin_lock(&skb_cb_store_lock); -+ -+ next = old->cb_next; -+ atomic_inc(&next->refcnt); -+ new->cb_next = next; -+ -+ spin_unlock(&skb_cb_store_lock); -+} -+#endif - - /* Pipe buffer operations for a socket. */ - static struct pipe_buf_operations sock_pipe_buf_ops = { -@@ -362,6 +439,15 @@ - WARN_ON(in_irq()); - skb->destructor(skb); - } -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ /* This should not happen. When it does, avoid memleak by restoring -+ the chain of cb-backups. */ -+ while(skb->cb_next != NULL) { -+ printk(KERN_WARNING "kfree_skb: skb->cb_next: %08x\n", -+ skb->cb_next); -+ skb_restore_cb(skb); -+ } -+#endif - #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) - nf_conntrack_put(skb->nfct); - nf_conntrack_put_reasm(skb->nfct_reasm); -@@ -424,6 +510,9 @@ - new->sp = secpath_get(old->sp); - #endif - memcpy(new->cb, old->cb, sizeof(old->cb)); -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ skb_copy_stored_cb(new, old); -+#endif - new->csum_start = old->csum_start; - new->csum_offset = old->csum_offset; - new->local_df = old->local_df; -@@ -2326,6 +2415,13 @@ - 0, - SLAB_HWCACHE_ALIGN|SLAB_PANIC, - NULL); -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache", -+ sizeof(struct skb_cb_table), -+ 0, -+ SLAB_HWCACHE_ALIGN|SLAB_PANIC, -+ NULL); -+#endif - } - - /** -diff -uNr --exclude='*~' linux-2.6.27.21/net/netfilter/Kconfig linux-2.6.27.21-imq/net/netfilter/Kconfig ---- linux-2.6.27.21/net/netfilter/Kconfig 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/netfilter/Kconfig 2009-04-20 23:48:35.707017089 +0300 -@@ -342,6 +342,18 @@ - - To compile it as a module, choose M here. If unsure, say N. - -+config NETFILTER_XT_TARGET_IMQ -+ tristate '"IMQ" target support' -+ depends on NETFILTER_XTABLES -+ depends on IP_NF_MANGLE || IP6_NF_MANGLE -+ select IMQ -+ default m if NETFILTER_ADVANCED=n -+ help -+ This option adds a `IMQ' target which is used to specify if and -+ to which imq device packets should get enqueued/dequeued. -+ -+ To compile it as a module, choose M here. If unsure, say N. -+ - config NETFILTER_XT_TARGET_MARK - tristate '"MARK" target support' - depends on NETFILTER_XTABLES -diff -uNr --exclude='*~' linux-2.6.27.21/net/netfilter/Makefile linux-2.6.27.21-imq/net/netfilter/Makefile ---- linux-2.6.27.21/net/netfilter/Makefile 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/netfilter/Makefile 2009-04-20 23:48:35.707017089 +0300 -@@ -42,6 +42,7 @@ - obj-$(CONFIG_NETFILTER_XT_TARGET_CONNMARK) += xt_CONNMARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o -+obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o - obj-$(CONFIG_NETFILTER_XT_TARGET_MARK) += xt_MARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o - obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o -diff -uNr --exclude='*~' linux-2.6.27.21/net/netfilter/nf_queue.c linux-2.6.27.21-imq/net/netfilter/nf_queue.c ---- linux-2.6.27.21/net/netfilter/nf_queue.c 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/netfilter/nf_queue.c 2009-04-20 23:48:35.708017126 +0300 -@@ -20,6 +20,26 @@ - - static DEFINE_MUTEX(queue_handler_mutex); - -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+static const struct nf_queue_handler *queue_imq_handler; -+ -+void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) -+{ -+ mutex_lock(&queue_handler_mutex); -+ rcu_assign_pointer(queue_imq_handler, qh); -+ mutex_unlock(&queue_handler_mutex); -+} -+EXPORT_SYMBOL(nf_register_queue_imq_handler); -+ -+void nf_unregister_queue_imq_handler(void) -+{ -+ mutex_lock(&queue_handler_mutex); -+ rcu_assign_pointer(queue_imq_handler, NULL); -+ mutex_unlock(&queue_handler_mutex); -+} -+EXPORT_SYMBOL(nf_unregister_queue_imq_handler); -+#endif -+ - /* return EBUSY when somebody else is registered, return EEXIST if the - * same handler is registered, return 0 in case of success. */ - int nf_register_queue_handler(int pf, const struct nf_queue_handler *qh) -@@ -80,7 +100,7 @@ - } - EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers); - --static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) -+void nf_queue_entry_release_refs(struct nf_queue_entry *entry) - { - /* Release those devices we held, or Alexey will kill me. */ - if (entry->indev) -@@ -100,6 +120,7 @@ - /* Drop reference to owner of hook which queued us. */ - module_put(entry->elem->owner); - } -+EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs); - - /* - * Any packet that leaves via this function must come back -@@ -121,12 +142,26 @@ - #endif - const struct nf_afinfo *afinfo; - const struct nf_queue_handler *qh; -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ const struct nf_queue_handler *qih = NULL; -+#endif - - /* QUEUE == DROP if noone is waiting, to be safe. */ - rcu_read_lock(); - - qh = rcu_dereference(queue_handler[pf]); -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ if (pf == PF_INET || pf == PF_INET6) -+#else -+ if (pf == PF_INET) -+#endif -+ qih = rcu_dereference(queue_imq_handler); -+ -+ if (!qh && !qih) -+#else /* !IMQ */ - if (!qh) -+#endif - goto err_unlock; - - afinfo = nf_get_afinfo(pf); -@@ -145,6 +180,10 @@ - .indev = indev, - .outdev = outdev, - .okfn = okfn, -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ .next_outfn = qh ? qh->outfn : NULL, -+ .next_queuenum = queuenum, -+#endif - }; - - /* If it's going away, ignore hook. */ -@@ -170,8 +209,19 @@ - } - #endif - afinfo->saveroute(skb, entry); -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ if (qih) { -+ status = qih->outfn(entry, queuenum); -+ goto imq_skip_queue; -+ } -+#endif -+ - status = qh->outfn(entry, queuenum); - -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+imq_skip_queue: -+#endif - rcu_read_unlock(); - - if (status < 0) { -diff -uNr --exclude='*~' linux-2.6.27.21/net/netfilter/xt_IMQ.c linux-2.6.27.21-imq/net/netfilter/xt_IMQ.c ---- linux-2.6.27.21/net/netfilter/xt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/net/netfilter/xt_IMQ.c 2009-04-20 23:48:35.708017126 +0300 -@@ -0,0 +1,81 @@ -+/* -+ * This target marks packets to be enqueued to an imq device -+ */ -+#include <linux/module.h> -+#include <linux/skbuff.h> -+#include <linux/netfilter/x_tables.h> -+#include <linux/netfilter/xt_IMQ.h> -+#include <linux/imq.h> -+ -+static unsigned int imq_target(struct sk_buff *pskb, -+ const struct net_device *in, -+ const struct net_device *out, -+ unsigned int hooknum, -+ const struct xt_target *target, -+ const void *targinfo) -+{ -+ const struct xt_imq_info *mr = targinfo; -+ -+ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; -+ -+ return XT_CONTINUE; -+} -+ -+static bool imq_checkentry(const char *tablename, -+ const void *entry, -+ const struct xt_target *target, -+ void *targinfo, -+ unsigned int hook_mask) -+{ -+ struct xt_imq_info *mr = targinfo; -+ -+ if (mr->todev > IMQ_MAX_DEVS - 1) { -+ printk(KERN_WARNING -+ "IMQ: invalid device specified, highest is %u\n", -+ IMQ_MAX_DEVS - 1); -+ return 0; -+ } -+ -+ return 1; -+} -+ -+static struct xt_target xt_imq_reg[] __read_mostly = { -+ { -+ .name = "IMQ", -+ .family = AF_INET, -+ .target = imq_target, -+ .targetsize = sizeof(struct xt_imq_info), -+ .table = "mangle", -+ .checkentry = imq_checkentry, -+ .me = THIS_MODULE -+ }, -+ { -+ .name = "IMQ", -+ .family = AF_INET6, -+ .target = imq_target, -+ .targetsize = sizeof(struct xt_imq_info), -+ .table = "mangle", -+ .checkentry = imq_checkentry, -+ .me = THIS_MODULE -+ }, -+}; -+ -+static int __init imq_init(void) -+{ -+ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); -+} -+ -+static void __exit imq_fini(void) -+{ -+ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); -+} -+ -+module_init(imq_init); -+module_exit(imq_fini); -+ -+MODULE_AUTHOR("http://www.linuximq.net"); -+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); -+MODULE_LICENSE("GPL"); -+MODULE_ALIAS("ipt_IMQ"); -+MODULE_ALIAS("ip6t_IMQ"); -+ diff --git a/src/patches/linux-2.6.27.21-imq-test3.patch b/src/patches/linux-2.6.27.21-imq-test3.patch deleted file mode 100644 index fb09371..0000000 --- a/src/patches/linux-2.6.27.21-imq-test3.patch +++ /dev/null @@ -1,1279 +0,0 @@ -diff -uNr --exclude='*~' linux-2.6.27.21/drivers/net/imq.c linux-2.6.27.21-imq/drivers/net/imq.c ---- linux-2.6.27.21/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/drivers/net/imq.c 2009-04-20 23:52:22.712017559 +0300 -@@ -0,0 +1,566 @@ -+/* -+ * Pseudo-driver for the intermediate queue device. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version -+ * 2 of the License, or (at your option) any later version. -+ * -+ * Authors: Patrick McHardy, kaber@trash.net -+ * -+ * The first version was written by Martin Devera, devik@cdi.cz -+ * -+ * Credits: Jan Rafaj imq2t@cedric.vabo.cz -+ * - Update patch to 2.4.21 -+ * Sebastian Strollo sstrollo@nortelnetworks.com -+ * - Fix "Dead-loop on netdevice imq"-issue -+ * Marcel Sebek sebek64@post.cz -+ * - Update to 2.6.2-rc1 -+ * -+ * After some time of inactivity there is a group taking care -+ * of IMQ again: http://www.linuximq.net -+ * -+ * -+ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 -+ * including the following changes: -+ * -+ * - Correction of ipv6 support "+"s issue (Hasso Tepper) -+ * - Correction of imq_init_devs() issue that resulted in -+ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) -+ * - Addition of functionality to choose number of IMQ devices -+ * during kernel config (Andre Correa) -+ * - Addition of functionality to choose how IMQ hooks on -+ * PRE and POSTROUTING (after or before NAT) (Andre Correa) -+ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) -+ * -+ * -+ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were -+ * released with almost no problems. 2.6.14-x was released -+ * with some important changes: nfcache was removed; After -+ * some weeks of trouble we figured out that some IMQ fields -+ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. -+ * These functions are correctly patched by this new patch version. -+ * -+ * Thanks for all who helped to figure out all the problems with -+ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, -+ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully -+ * I didn't forget anybody). I apologize again for my lack of time. -+ * -+ * -+ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead -+ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid -+ * recursive locking. New initialization routines to fix 'rmmod' not -+ * working anymore. Used code from ifb.c. (Jussi Kivilinna) -+ * -+ * 2008/08/06 - 2.6.26 - (JK) -+ * - Replaced tasklet with 'netif_schedule()'. -+ * - Cleaned up and added comments for imq_nf_queue(). -+ * -+ * 2009/04/12 -+ * - Add skb_save_cb/skb_restore_cb helper functions for backuping -+ * control buffer. This is needed because qdisc-layer on kernels -+ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna) -+ * - Add better locking for IMQ device. Hopefully this will solve -+ * SMP issues. (Jussi Kivilinna) -+ * - Port to 2.6.27 -+ * -+ * 2009/04/20 - (Jussi Kivilinna) -+ * - Fix rmmod not working -+ * - Use netdevice feature flags to avoid extra packet handling -+ * by core networking layer and possibly increase performance. -+ * -+ * Also, many thanks to pablo Sebastian Greco for making the initial -+ * patch and to those who helped the testing. -+ * -+ * More info at: http://www.linuximq.net/ (Andre Correa) -+ */ -+ -+#include <linux/module.h> -+#include <linux/kernel.h> -+#include <linux/moduleparam.h> -+#include <linux/list.h> -+#include <linux/skbuff.h> -+#include <linux/netdevice.h> -+#include <linux/etherdevice.h> -+#include <linux/rtnetlink.h> -+#include <linux/if_arp.h> -+#include <linux/netfilter.h> -+#include <linux/netfilter_ipv4.h> -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ #include <linux/netfilter_ipv6.h> -+#endif -+#include <linux/imq.h> -+#include <net/pkt_sched.h> -+#include <net/netfilter/nf_queue.h> -+ -+static nf_hookfn imq_nf_hook; -+ -+static struct nf_hook_ops imq_ingress_ipv4 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET, -+ .hooknum = NF_INET_PRE_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ .priority = NF_IP_PRI_MANGLE + 1 -+#else -+ .priority = NF_IP_PRI_NAT_DST + 1 -+#endif -+}; -+ -+static struct nf_hook_ops imq_egress_ipv4 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET, -+ .hooknum = NF_INET_POST_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) -+ .priority = NF_IP_PRI_LAST -+#else -+ .priority = NF_IP_PRI_NAT_SRC - 1 -+#endif -+}; -+ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+static struct nf_hook_ops imq_ingress_ipv6 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET6, -+ .hooknum = NF_INET_PRE_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ .priority = NF_IP6_PRI_MANGLE + 1 -+#else -+ .priority = NF_IP6_PRI_NAT_DST + 1 -+#endif -+}; -+ -+static struct nf_hook_ops imq_egress_ipv6 = { -+ .hook = imq_nf_hook, -+ .owner = THIS_MODULE, -+ .pf = PF_INET6, -+ .hooknum = NF_INET_POST_ROUTING, -+#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) -+ .priority = NF_IP6_PRI_LAST -+#else -+ .priority = NF_IP6_PRI_NAT_SRC - 1 -+#endif -+}; -+#endif -+ -+#if defined(CONFIG_IMQ_NUM_DEVS) -+static unsigned int numdevs = CONFIG_IMQ_NUM_DEVS; -+#else -+static unsigned int numdevs = IMQ_MAX_DEVS; -+#endif -+ -+static DEFINE_SPINLOCK(imq_nf_queue_lock); -+ -+static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; -+ -+ -+static struct net_device_stats *imq_get_stats(struct net_device *dev) -+{ -+ return &dev->stats; -+} -+ -+/* called for packets kfree'd in qdiscs at places other than enqueue */ -+static void imq_skb_destructor(struct sk_buff *skb) -+{ -+ struct nf_queue_entry *entry = skb->nf_queue_entry; -+ -+ if (entry) { -+ nf_queue_entry_release_refs(entry); -+ kfree(entry); -+ } -+ -+ skb_restore_cb(skb); /* kfree backup */ -+} -+ -+static void imq_nf_reinject(struct nf_queue_entry *entry, unsigned int verdict) -+{ -+ int status; -+ -+ if (!entry->next_outfn) { -+ spin_lock_bh(&imq_nf_queue_lock); -+ nf_reinject(entry, verdict); -+ spin_unlock_bh(&imq_nf_queue_lock); -+ return; -+ } -+ -+ rcu_read_lock(); -+ local_bh_disable(); -+ status = entry->next_outfn(entry, entry->next_queuenum); -+ local_bh_enable(); -+ if (status < 0) { -+ nf_queue_entry_release_refs(entry); -+ kfree_skb(entry->skb); -+ kfree(entry); -+ } -+ -+ rcu_read_unlock(); -+} -+ -+static int imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) -+{ -+ dev->stats.tx_bytes += skb->len; -+ dev->stats.tx_packets++; -+ -+ skb->imq_flags = 0; -+ skb->destructor = NULL; -+ -+ skb_restore_cb(skb); /* restore skb->cb */ -+ -+ dev->trans_start = jiffies; -+ imq_nf_reinject(skb->nf_queue_entry, NF_ACCEPT); -+ return 0; -+} -+ -+static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num) -+{ -+ struct net_device *dev; -+ struct sk_buff *skb_orig, *skb, *skb_shared; -+ struct Qdisc *q; -+ struct netdev_queue *txq; -+ int users, index; -+ int retval = -EINVAL; -+ -+ index = entry->skb->imq_flags & IMQ_F_IFMASK; -+ if (unlikely(index > numdevs - 1)) { -+ if (net_ratelimit()) -+ printk(KERN_WARNING -+ "IMQ: invalid device specified, highest is %u\n", -+ numdevs - 1); -+ retval = -EINVAL; -+ goto out; -+ } -+ -+ /* check for imq device by index from cache */ -+ dev = imq_devs_cache[index]; -+ if (unlikely(!dev)) { -+ char buf[8]; -+ -+ /* get device by name and cache result */ -+ snprintf(buf, sizeof(buf), "imq%d", index); -+ dev = dev_get_by_name(&init_net, buf); -+ if (!dev) { -+ /* not found ?!*/ -+ BUG(); -+ retval = -ENODEV; -+ goto out; -+ } -+ -+ imq_devs_cache[index] = dev; -+ dev_put(dev); -+ } -+ -+ if (unlikely(!(dev->flags & IFF_UP))) { -+ entry->skb->imq_flags = 0; -+ imq_nf_reinject(entry, NF_ACCEPT); -+ retval = 0; -+ goto out; -+ } -+ dev->last_rx = jiffies; -+ -+ skb = entry->skb; -+ skb_orig = NULL; -+ -+ /* skb has owner? => make clone */ -+ if (unlikely(skb->destructor)) { -+ skb_orig = skb; -+ skb = skb_clone(skb, GFP_ATOMIC); -+ if (!skb) { -+ retval = -ENOMEM; -+ goto out; -+ } -+ entry->skb = skb; -+ } -+ -+ skb->nf_queue_entry = entry; -+ -+ dev->stats.rx_bytes += skb->len; -+ dev->stats.rx_packets++; -+ -+ txq = dev_pick_tx(dev, skb); -+ -+ q = rcu_dereference(txq->qdisc); -+ if (unlikely(!q->enqueue)) -+ goto packet_not_eaten_by_imq_dev; -+ -+ spin_lock_bh(qdisc_lock(q)); -+ -+ users = atomic_read(&skb->users); -+ -+ skb_shared = skb_get(skb); /* increase reference count by one */ -+ skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will -+ overwrite it */ -+ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ -+ -+ if (likely(atomic_read(&skb_shared->users) == users + 1)) { -+ kfree_skb(skb_shared); /* decrease reference count by one */ -+ -+ skb->destructor = &imq_skb_destructor; -+ -+ /* cloned? */ -+ if (skb_orig) -+ kfree_skb(skb_orig); /* free original */ -+ -+ spin_unlock_bh(qdisc_lock(q)); -+ -+ /* schedule qdisc dequeue */ -+ __netif_schedule(q); -+ -+ retval = 0; -+ goto out; -+ } else { -+ skb_restore_cb(skb_shared); /* restore skb->cb */ -+ /* qdisc dropped packet and decreased skb reference count of -+ * skb, so we don't really want to and try refree as that would -+ * actually destroy the skb. */ -+ spin_unlock_bh(qdisc_lock(q)); -+ goto packet_not_eaten_by_imq_dev; -+ } -+ -+packet_not_eaten_by_imq_dev: -+ /* cloned? restore original */ -+ if (skb_orig) { -+ kfree_skb(skb); -+ entry->skb = skb_orig; -+ } -+ retval = -1; -+out: -+ return retval; -+} -+ -+static struct nf_queue_handler nfqh = { -+ .name = "imq", -+ .outfn = imq_nf_queue, -+}; -+ -+static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, -+ const struct net_device *indev, -+ const struct net_device *outdev, -+ int (*okfn)(struct sk_buff *)) -+{ -+ if (pskb->imq_flags & IMQ_F_ENQUEUE) -+ return NF_QUEUE; -+ -+ return NF_ACCEPT; -+} -+ -+static int imq_close(struct net_device *dev) -+{ -+ netif_stop_queue(dev); -+ return 0; -+} -+ -+static int imq_open(struct net_device *dev) -+{ -+ netif_start_queue(dev); -+ return 0; -+} -+ -+static void imq_setup(struct net_device *dev) -+{ -+ dev->hard_start_xmit = imq_dev_xmit; -+ dev->open = imq_open; -+ dev->get_stats = imq_get_stats; -+ dev->stop = imq_close; -+ dev->type = ARPHRD_VOID; -+ dev->mtu = 16000; -+ dev->tx_queue_len = 11000; -+ dev->flags = IFF_NOARP; -+ dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | -+ NETIF_F_GSO | NETIF_F_HW_CSUM | -+ NETIF_F_HIGHDMA; -+} -+ -+static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) -+{ -+ int ret = 0; -+ -+ if (tb[IFLA_ADDRESS]) { -+ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { -+ ret = -EINVAL; -+ goto end; -+ } -+ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { -+ ret = -EADDRNOTAVAIL; -+ goto end; -+ } -+ } -+ return 0; -+end: -+ printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret); -+ return ret; -+} -+ -+static struct rtnl_link_ops imq_link_ops __read_mostly = { -+ .kind = "imq", -+ .priv_size = 0, -+ .setup = imq_setup, -+ .validate = imq_validate, -+}; -+ -+static int __init imq_init_hooks(void) -+{ -+ int err; -+ -+ nf_register_queue_imq_handler(&nfqh); -+ -+ err = nf_register_hook(&imq_ingress_ipv4); -+ if (err) -+ goto err1; -+ -+ err = nf_register_hook(&imq_egress_ipv4); -+ if (err) -+ goto err2; -+ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ err = nf_register_hook(&imq_ingress_ipv6); -+ if (err) -+ goto err3; -+ -+ err = nf_register_hook(&imq_egress_ipv6); -+ if (err) -+ goto err4; -+#endif -+ -+ return 0; -+ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+err4: -+ nf_unregister_hook(&imq_ingress_ipv6); -+err3: -+ nf_unregister_hook(&imq_egress_ipv4); -+#endif -+err2: -+ nf_unregister_hook(&imq_ingress_ipv4); -+err1: -+ nf_unregister_queue_imq_handler(); -+ return err; -+} -+ -+static int __init imq_init_one(int index) -+{ -+ struct net_device *dev; -+ int ret; -+ -+ dev = alloc_netdev(0, "imq%d", imq_setup); -+ if (!dev) -+ return -ENOMEM; -+ -+ ret = dev_alloc_name(dev, dev->name); -+ if (ret < 0) -+ goto fail; -+ -+ dev->rtnl_link_ops = &imq_link_ops; -+ ret = register_netdevice(dev); -+ if (ret < 0) -+ goto fail; -+ -+ return 0; -+fail: -+ free_netdev(dev); -+ return ret; -+} -+ -+static int __init imq_init_devs(void) -+{ -+ int err, i; -+ -+ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { -+ printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n", -+ IMQ_MAX_DEVS); -+ return -EINVAL; -+ } -+ -+ rtnl_lock(); -+ err = __rtnl_link_register(&imq_link_ops); -+ -+ for (i = 0; i < numdevs && !err; i++) -+ err = imq_init_one(i); -+ -+ if (err) { -+ __rtnl_link_unregister(&imq_link_ops); -+ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); -+ } -+ rtnl_unlock(); -+ -+ return err; -+} -+ -+static int __init imq_init_module(void) -+{ -+ int err; -+ -+#if defined(CONFIG_IMQ_NUM_DEVS) -+ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); -+ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); -+ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); -+#endif -+ -+ err = imq_init_devs(); -+ if (err) { -+ printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n"); -+ return err; -+ } -+ -+ err = imq_init_hooks(); -+ if (err) { -+ printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); -+ rtnl_link_unregister(&imq_link_ops); -+ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); -+ return err; -+ } -+ -+ printk(KERN_INFO "IMQ driver loaded successfully.\n"); -+ -+#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n"); -+#else -+ printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n"); -+#endif -+#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) -+ printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n"); -+#else -+ printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n"); -+#endif -+ -+ return 0; -+} -+ -+static void __exit imq_unhook(void) -+{ -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ nf_unregister_hook(&imq_ingress_ipv6); -+ nf_unregister_hook(&imq_egress_ipv6); -+#endif -+ nf_unregister_hook(&imq_ingress_ipv4); -+ nf_unregister_hook(&imq_egress_ipv4); -+ -+ nf_unregister_queue_imq_handler(); -+} -+ -+static void __exit imq_cleanup_devs(void) -+{ -+ rtnl_link_unregister(&imq_link_ops); -+ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); -+} -+ -+static void __exit imq_exit_module(void) -+{ -+ imq_unhook(); -+ imq_cleanup_devs(); -+ printk(KERN_INFO "IMQ driver unloaded successfully.\n"); -+} -+ -+module_init(imq_init_module); -+module_exit(imq_exit_module); -+ -+module_param(numdevs, int, 0); -+MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will " -+ "be created)"); -+MODULE_AUTHOR("http://www.linuximq.net"); -+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See " -+ "http://www.linuximq.net/ for more information."); -+MODULE_LICENSE("GPL"); -+MODULE_ALIAS_RTNL_LINK("imq"); -+ -diff -uNr --exclude='*~' linux-2.6.27.21/drivers/net/Kconfig linux-2.6.27.21-imq/drivers/net/Kconfig ---- linux-2.6.27.21/drivers/net/Kconfig 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/drivers/net/Kconfig 2009-04-20 23:48:35.702017146 +0300 -@@ -109,6 +109,129 @@ - To compile this driver as a module, choose M here: the module - will be called eql. If unsure, say N. - -+config IMQ -+ tristate "IMQ (intermediate queueing device) support" -+ depends on NETDEVICES && NETFILTER -+ ---help--- -+ The IMQ device(s) is used as placeholder for QoS queueing -+ disciplines. Every packet entering/leaving the IP stack can be -+ directed through the IMQ device where it's enqueued/dequeued to the -+ attached qdisc. This allows you to treat network devices as classes -+ and distribute bandwidth among them. Iptables is used to specify -+ through which IMQ device, if any, packets travel. -+ -+ More information at: http://www.linuximq.net/ -+ -+ To compile this driver as a module, choose M here: the module -+ will be called imq. If unsure, say N. -+ -+choice -+ prompt "IMQ behavior (PRE/POSTROUTING)" -+ depends on IMQ -+ default IMQ_BEHAVIOR_AB -+ help -+ -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ IMQ can work in any of the following ways: -+ -+ PREROUTING | POSTROUTING -+ -----------------|------------------- -+ #1 After NAT | After NAT -+ #2 After NAT | Before NAT -+ #3 Before NAT | After NAT -+ #4 Before NAT | Before NAT -+ -+ The default behavior is to hook before NAT on PREROUTING -+ and after NAT on POSTROUTING (#3). -+ -+ This settings are specially usefull when trying to use IMQ -+ to shape NATed clients. -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_AA -+ bool "IMQ AA" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: After NAT -+ POSTROUTING: After NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_AB -+ bool "IMQ AB" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: After NAT -+ POSTROUTING: Before NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_BA -+ bool "IMQ BA" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: Before NAT -+ POSTROUTING: After NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+config IMQ_BEHAVIOR_BB -+ bool "IMQ BB" -+ help -+ This settings defines how IMQ behaves in respect to its -+ hooking in PREROUTING and POSTROUTING. -+ -+ Choosing this option will make IMQ hook like this: -+ -+ PREROUTING: Before NAT -+ POSTROUTING: Before NAT -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ -+endchoice -+ -+config IMQ_NUM_DEVS -+ -+ int "Number of IMQ devices" -+ range 2 16 -+ depends on IMQ -+ default "16" -+ help -+ -+ This settings defines how many IMQ devices will be -+ created. -+ -+ The default value is 16. -+ -+ More information can be found at: www.linuximq.net -+ -+ If not sure leave the default settings alone. -+ - config TUN - tristate "Universal TUN/TAP device driver support" - select CRC32 -diff -uNr --exclude='*~' linux-2.6.27.21/drivers/net/Makefile linux-2.6.27.21-imq/drivers/net/Makefile ---- linux-2.6.27.21/drivers/net/Makefile 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/drivers/net/Makefile 2009-04-20 23:48:35.702017146 +0300 -@@ -144,6 +144,7 @@ - obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o - - obj-$(CONFIG_DUMMY) += dummy.o -+obj-$(CONFIG_IMQ) += imq.o - obj-$(CONFIG_IFB) += ifb.o - obj-$(CONFIG_MACVLAN) += macvlan.o - obj-$(CONFIG_DE600) += de600.o -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/imq.h linux-2.6.27.21-imq/include/linux/imq.h ---- linux-2.6.27.21/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/imq.h 2009-04-20 23:48:35.702017146 +0300 -@@ -0,0 +1,13 @@ -+#ifndef _IMQ_H -+#define _IMQ_H -+ -+/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ -+#define IMQ_F_BITS 5 -+ -+#define IMQ_F_IFMASK 0x0f -+#define IMQ_F_ENQUEUE 0x10 -+ -+#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) -+ -+#endif /* _IMQ_H */ -+ -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/netdevice.h linux-2.6.27.21-imq/include/linux/netdevice.h ---- linux-2.6.27.21/include/linux/netdevice.h 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/netdevice.h 2009-04-20 23:48:35.703017245 +0300 -@@ -915,6 +915,7 @@ - extern int dev_open(struct net_device *dev); - extern int dev_close(struct net_device *dev); - extern void dev_disable_lro(struct net_device *dev); -+extern struct netdev_queue *dev_pick_tx(struct net_device *dev, struct sk_buff *skb); - extern int dev_queue_xmit(struct sk_buff *skb); - extern int register_netdevice(struct net_device *dev); - extern void unregister_netdevice(struct net_device *dev); -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/netfilter/xt_IMQ.h linux-2.6.27.21-imq/include/linux/netfilter/xt_IMQ.h ---- linux-2.6.27.21/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/netfilter/xt_IMQ.h 2009-04-20 23:48:35.703017245 +0300 -@@ -0,0 +1,9 @@ -+#ifndef _XT_IMQ_H -+#define _XT_IMQ_H -+ -+struct xt_imq_info { -+ unsigned int todev; /* target imq device */ -+}; -+ -+#endif /* _XT_IMQ_H */ -+ -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/netfilter_ipv4/ipt_IMQ.h linux-2.6.27.21-imq/include/linux/netfilter_ipv4/ipt_IMQ.h ---- linux-2.6.27.21/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/netfilter_ipv4/ipt_IMQ.h 2009-04-20 23:48:35.703017245 +0300 -@@ -0,0 +1,10 @@ -+#ifndef _IPT_IMQ_H -+#define _IPT_IMQ_H -+ -+/* Backwards compatibility for old userspace */ -+#include <linux/netfilter/xt_IMQ.h> -+ -+#define ipt_imq_info xt_imq_info -+ -+#endif /* _IPT_IMQ_H */ -+ -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-2.6.27.21-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h ---- linux-2.6.27.21/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2009-04-20 23:48:35.704017144 +0300 -@@ -0,0 +1,10 @@ -+#ifndef _IP6T_IMQ_H -+#define _IP6T_IMQ_H -+ -+/* Backwards compatibility for old userspace */ -+#include <linux/netfilter/xt_IMQ.h> -+ -+#define ip6t_imq_info xt_imq_info -+ -+#endif /* _IP6T_IMQ_H */ -+ -diff -uNr --exclude='*~' linux-2.6.27.21/include/linux/skbuff.h linux-2.6.27.21-imq/include/linux/skbuff.h ---- linux-2.6.27.21/include/linux/skbuff.h 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/include/linux/skbuff.h 2009-04-20 23:48:35.704017144 +0300 -@@ -28,6 +28,9 @@ - #include <linux/rcupdate.h> - #include <linux/dmaengine.h> - #include <linux/hrtimer.h> -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+#include <linux/imq.h> -+#endif - - #define HAVE_ALLOC_SKB /* For the drivers to know */ - #define HAVE_ALIGNABLE_SKB /* Ditto 8) */ -@@ -272,6 +275,9 @@ - * first. This is owned by whoever has the skb queued ATM. - */ - char cb[48]; -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ void *cb_next; -+#endif - - unsigned int len, - data_len; -@@ -302,6 +308,9 @@ - struct nf_conntrack *nfct; - struct sk_buff *nfct_reasm; - #endif -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ struct nf_queue_entry *nf_queue_entry; -+#endif - #ifdef CONFIG_BRIDGE_NETFILTER - struct nf_bridge_info *nf_bridge; - #endif -@@ -321,6 +330,9 @@ - __u8 do_not_encrypt:1; - #endif - /* 0/13/14 bit hole */ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ __u8 imq_flags:IMQ_F_BITS; -+#endif - - #ifdef CONFIG_NET_DMA - dma_cookie_t dma_cookie; -@@ -353,6 +365,12 @@ - - #include <asm/system.h> - -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+extern int skb_save_cb(struct sk_buff *skb); -+extern int skb_restore_cb(struct sk_buff *skb); -+#endif -+ - extern void kfree_skb(struct sk_buff *skb); - extern void __kfree_skb(struct sk_buff *skb); - extern struct sk_buff *__alloc_skb(unsigned int size, -@@ -1633,6 +1651,10 @@ - dst->nfct_reasm = src->nfct_reasm; - nf_conntrack_get_reasm(src->nfct_reasm); - #endif -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ dst->imq_flags = src->imq_flags; -+ dst->nf_queue_entry = src->nf_queue_entry; -+#endif - #ifdef CONFIG_BRIDGE_NETFILTER - dst->nf_bridge = src->nf_bridge; - nf_bridge_get(src->nf_bridge); -diff -uNr --exclude='*~' linux-2.6.27.21/include/net/netfilter/nf_queue.h linux-2.6.27.21-imq/include/net/netfilter/nf_queue.h ---- linux-2.6.27.21/include/net/netfilter/nf_queue.h 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/include/net/netfilter/nf_queue.h 2009-04-20 23:48:35.704017144 +0300 -@@ -13,6 +13,12 @@ - struct net_device *indev; - struct net_device *outdev; - int (*okfn)(struct sk_buff *); -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ int (*next_outfn)(struct nf_queue_entry *entry, -+ unsigned int queuenum); -+ unsigned int next_queuenum; -+#endif - }; - - #define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry)) -@@ -30,5 +36,11 @@ - const struct nf_queue_handler *qh); - extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); - extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); -+extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); -+extern void nf_unregister_queue_imq_handler(void); -+#endif - - #endif /* _NF_QUEUE_H */ -diff -uNr --exclude='*~' linux-2.6.27.21/net/core/dev.c linux-2.6.27.21-imq/net/core/dev.c ---- linux-2.6.27.21/net/core/dev.c 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/core/dev.c 2009-04-20 23:48:35.706016975 +0300 -@@ -96,6 +96,9 @@ - #include <net/net_namespace.h> - #include <net/sock.h> - #include <linux/rtnetlink.h> -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+#include <linux/imq.h> -+#endif - #include <linux/proc_fs.h> - #include <linux/seq_file.h> - #include <linux/stat.h> -@@ -1624,7 +1627,11 @@ - struct netdev_queue *txq) - { - if (likely(!skb->next)) { -- if (!list_empty(&ptype_all)) -+ if (!list_empty(&ptype_all) -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ && !(skb->imq_flags & IMQ_F_ENQUEUE) -+#endif -+ ) - dev_queue_xmit_nit(skb, dev); - - if (netif_needs_gso(dev, skb)) { -@@ -1715,8 +1722,7 @@ - return (u16) (((u64) hash * dev->real_num_tx_queues) >> 32); - } - --static struct netdev_queue *dev_pick_tx(struct net_device *dev, -- struct sk_buff *skb) -+struct netdev_queue *dev_pick_tx(struct net_device *dev, struct sk_buff *skb) - { - u16 queue_index = 0; - -@@ -1728,6 +1734,7 @@ - skb_set_queue_mapping(skb, queue_index); - return netdev_get_tx_queue(dev, queue_index); - } -+EXPORT_SYMBOL(dev_pick_tx); - - /** - * dev_queue_xmit - transmit a buffer -diff -uNr --exclude='*~' linux-2.6.27.21/net/core/skbuff.c linux-2.6.27.21-imq/net/core/skbuff.c ---- linux-2.6.27.21/net/core/skbuff.c 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/core/skbuff.c 2009-04-20 23:48:35.707017089 +0300 -@@ -69,6 +69,9 @@ - - static struct kmem_cache *skbuff_head_cache __read_mostly; - static struct kmem_cache *skbuff_fclone_cache __read_mostly; -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+static struct kmem_cache *skbuff_cb_store_cache __read_mostly; -+#endif - - static void sock_pipe_buf_release(struct pipe_inode_info *pipe, - struct pipe_buffer *buf) -@@ -88,6 +91,80 @@ - return 1; - } - -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+/* Control buffer save/restore for IMQ devices */ -+struct skb_cb_table { -+ void *cb_next; -+ atomic_t refcnt; -+ char cb[48]; -+}; -+ -+static DEFINE_SPINLOCK(skb_cb_store_lock); -+ -+int skb_save_cb(struct sk_buff *skb) -+{ -+ struct skb_cb_table *next; -+ -+ next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC); -+ if (!next) -+ return -ENOMEM; -+ -+ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); -+ -+ memcpy(next->cb, skb->cb, sizeof(skb->cb)); -+ next->cb_next = skb->cb_next; -+ -+ atomic_set(&next->refcnt, 1); -+ -+ skb->cb_next = next; -+ return 0; -+} -+EXPORT_SYMBOL(skb_save_cb); -+ -+int skb_restore_cb(struct sk_buff *skb) -+{ -+ struct skb_cb_table *next; -+ -+ if (!skb->cb_next) -+ return 0; -+ -+ next = skb->cb_next; -+ -+ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); -+ -+ memcpy(skb->cb, next->cb, sizeof(skb->cb)); -+ skb->cb_next = next->cb_next; -+ -+ spin_lock(&skb_cb_store_lock); -+ -+ if (atomic_dec_and_test(&next->refcnt)) { -+ kmem_cache_free(skbuff_cb_store_cache, next); -+ } -+ -+ spin_unlock(&skb_cb_store_lock); -+ -+ return 0; -+} -+EXPORT_SYMBOL(skb_restore_cb); -+ -+static void skb_copy_stored_cb(struct sk_buff *new, struct sk_buff *old) -+{ -+ struct skb_cb_table *next; -+ -+ if (!old->cb_next) { -+ new->cb_next = 0; -+ return; -+ } -+ -+ spin_lock(&skb_cb_store_lock); -+ -+ next = old->cb_next; -+ atomic_inc(&next->refcnt); -+ new->cb_next = next; -+ -+ spin_unlock(&skb_cb_store_lock); -+} -+#endif - - /* Pipe buffer operations for a socket. */ - static struct pipe_buf_operations sock_pipe_buf_ops = { -@@ -362,6 +439,15 @@ - WARN_ON(in_irq()); - skb->destructor(skb); - } -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ /* This should not happen. When it does, avoid memleak by restoring -+ the chain of cb-backups. */ -+ while(skb->cb_next != NULL) { -+ printk(KERN_WARNING "kfree_skb: skb->cb_next: %08x\n", -+ skb->cb_next); -+ skb_restore_cb(skb); -+ } -+#endif - #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) - nf_conntrack_put(skb->nfct); - nf_conntrack_put_reasm(skb->nfct_reasm); -@@ -424,6 +510,9 @@ - new->sp = secpath_get(old->sp); - #endif - memcpy(new->cb, old->cb, sizeof(old->cb)); -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ skb_copy_stored_cb(new, old); -+#endif - new->csum_start = old->csum_start; - new->csum_offset = old->csum_offset; - new->local_df = old->local_df; -@@ -2326,6 +2415,13 @@ - 0, - SLAB_HWCACHE_ALIGN|SLAB_PANIC, - NULL); -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache", -+ sizeof(struct skb_cb_table), -+ 0, -+ SLAB_HWCACHE_ALIGN|SLAB_PANIC, -+ NULL); -+#endif - } - - /** -diff -uNr --exclude='*~' linux-2.6.27.21/net/netfilter/Kconfig linux-2.6.27.21-imq/net/netfilter/Kconfig ---- linux-2.6.27.21/net/netfilter/Kconfig 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/netfilter/Kconfig 2009-04-20 23:48:35.707017089 +0300 -@@ -342,6 +342,18 @@ - - To compile it as a module, choose M here. If unsure, say N. - -+config NETFILTER_XT_TARGET_IMQ -+ tristate '"IMQ" target support' -+ depends on NETFILTER_XTABLES -+ depends on IP_NF_MANGLE || IP6_NF_MANGLE -+ select IMQ -+ default m if NETFILTER_ADVANCED=n -+ help -+ This option adds a `IMQ' target which is used to specify if and -+ to which imq device packets should get enqueued/dequeued. -+ -+ To compile it as a module, choose M here. If unsure, say N. -+ - config NETFILTER_XT_TARGET_MARK - tristate '"MARK" target support' - depends on NETFILTER_XTABLES -diff -uNr --exclude='*~' linux-2.6.27.21/net/netfilter/Makefile linux-2.6.27.21-imq/net/netfilter/Makefile ---- linux-2.6.27.21/net/netfilter/Makefile 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/netfilter/Makefile 2009-04-20 23:48:35.707017089 +0300 -@@ -42,6 +42,7 @@ - obj-$(CONFIG_NETFILTER_XT_TARGET_CONNMARK) += xt_CONNMARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o -+obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o - obj-$(CONFIG_NETFILTER_XT_TARGET_MARK) += xt_MARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o - obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o -diff -uNr --exclude='*~' linux-2.6.27.21/net/netfilter/nf_queue.c linux-2.6.27.21-imq/net/netfilter/nf_queue.c ---- linux-2.6.27.21/net/netfilter/nf_queue.c 2009-03-24 00:04:09.000000000 +0200 -+++ linux-2.6.27.21-imq/net/netfilter/nf_queue.c 2009-04-20 23:48:35.708017126 +0300 -@@ -20,6 +20,26 @@ - - static DEFINE_MUTEX(queue_handler_mutex); - -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+static const struct nf_queue_handler *queue_imq_handler; -+ -+void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) -+{ -+ mutex_lock(&queue_handler_mutex); -+ rcu_assign_pointer(queue_imq_handler, qh); -+ mutex_unlock(&queue_handler_mutex); -+} -+EXPORT_SYMBOL(nf_register_queue_imq_handler); -+ -+void nf_unregister_queue_imq_handler(void) -+{ -+ mutex_lock(&queue_handler_mutex); -+ rcu_assign_pointer(queue_imq_handler, NULL); -+ mutex_unlock(&queue_handler_mutex); -+} -+EXPORT_SYMBOL(nf_unregister_queue_imq_handler); -+#endif -+ - /* return EBUSY when somebody else is registered, return EEXIST if the - * same handler is registered, return 0 in case of success. */ - int nf_register_queue_handler(int pf, const struct nf_queue_handler *qh) -@@ -80,7 +100,7 @@ - } - EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers); - --static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) -+void nf_queue_entry_release_refs(struct nf_queue_entry *entry) - { - /* Release those devices we held, or Alexey will kill me. */ - if (entry->indev) -@@ -100,6 +120,7 @@ - /* Drop reference to owner of hook which queued us. */ - module_put(entry->elem->owner); - } -+EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs); - - /* - * Any packet that leaves via this function must come back -@@ -121,12 +142,26 @@ - #endif - const struct nf_afinfo *afinfo; - const struct nf_queue_handler *qh; -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ const struct nf_queue_handler *qih = NULL; -+#endif - - /* QUEUE == DROP if noone is waiting, to be safe. */ - rcu_read_lock(); - - qh = rcu_dereference(queue_handler[pf]); -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) -+ if (pf == PF_INET || pf == PF_INET6) -+#else -+ if (pf == PF_INET) -+#endif -+ qih = rcu_dereference(queue_imq_handler); -+ -+ if (!qh && !qih) -+#else /* !IMQ */ - if (!qh) -+#endif - goto err_unlock; - - afinfo = nf_get_afinfo(pf); -@@ -145,6 +180,10 @@ - .indev = indev, - .outdev = outdev, - .okfn = okfn, -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ .next_outfn = qh ? qh->outfn : NULL, -+ .next_queuenum = queuenum, -+#endif - }; - - /* If it's going away, ignore hook. */ -@@ -170,8 +209,19 @@ - } - #endif - afinfo->saveroute(skb, entry); -+ -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+ if (qih) { -+ status = qih->outfn(entry, queuenum); -+ goto imq_skip_queue; -+ } -+#endif -+ - status = qh->outfn(entry, queuenum); - -+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) -+imq_skip_queue: -+#endif - rcu_read_unlock(); - - if (status < 0) { -diff -uNr --exclude='*~' linux-2.6.27.21/net/netfilter/xt_IMQ.c linux-2.6.27.21-imq/net/netfilter/xt_IMQ.c ---- linux-2.6.27.21/net/netfilter/xt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 -+++ linux-2.6.27.21-imq/net/netfilter/xt_IMQ.c 2009-04-20 23:48:35.708017126 +0300 -@@ -0,0 +1,81 @@ -+/* -+ * This target marks packets to be enqueued to an imq device -+ */ -+#include <linux/module.h> -+#include <linux/skbuff.h> -+#include <linux/netfilter/x_tables.h> -+#include <linux/netfilter/xt_IMQ.h> -+#include <linux/imq.h> -+ -+static unsigned int imq_target(struct sk_buff *pskb, -+ const struct net_device *in, -+ const struct net_device *out, -+ unsigned int hooknum, -+ const struct xt_target *target, -+ const void *targinfo) -+{ -+ const struct xt_imq_info *mr = targinfo; -+ -+ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; -+ -+ return XT_CONTINUE; -+} -+ -+static bool imq_checkentry(const char *tablename, -+ const void *entry, -+ const struct xt_target *target, -+ void *targinfo, -+ unsigned int hook_mask) -+{ -+ struct xt_imq_info *mr = targinfo; -+ -+ if (mr->todev > IMQ_MAX_DEVS - 1) { -+ printk(KERN_WARNING -+ "IMQ: invalid device specified, highest is %u\n", -+ IMQ_MAX_DEVS - 1); -+ return 0; -+ } -+ -+ return 1; -+} -+ -+static struct xt_target xt_imq_reg[] __read_mostly = { -+ { -+ .name = "IMQ", -+ .family = AF_INET, -+ .target = imq_target, -+ .targetsize = sizeof(struct xt_imq_info), -+ .table = "mangle", -+ .checkentry = imq_checkentry, -+ .me = THIS_MODULE -+ }, -+ { -+ .name = "IMQ", -+ .family = AF_INET6, -+ .target = imq_target, -+ .targetsize = sizeof(struct xt_imq_info), -+ .table = "mangle", -+ .checkentry = imq_checkentry, -+ .me = THIS_MODULE -+ }, -+}; -+ -+static int __init imq_init(void) -+{ -+ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); -+} -+ -+static void __exit imq_fini(void) -+{ -+ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); -+} -+ -+module_init(imq_init); -+module_exit(imq_fini); -+ -+MODULE_AUTHOR("http://www.linuximq.net"); -+MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See http://www.linuximq.net/ for more information."); -+MODULE_LICENSE("GPL"); -+MODULE_ALIAS("ipt_IMQ"); -+MODULE_ALIAS("ip6t_IMQ"); -+ diff --git a/src/patches/linux-2.6.27.25-option_add_vf-k3565-z_usbids.patch b/src/patches/linux-2.6.27.25-option_add_vf-k3565-z_usbids.patch deleted file mode 100644 index 08df38e..0000000 --- a/src/patches/linux-2.6.27.25-option_add_vf-k3565-z_usbids.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -Naur linux-2.6.27.25.org/drivers/usb/serial/option.c linux-2.6.27.25/drivers/usb/serial/option.c ---- linux-2.6.27.25.org/drivers/usb/serial/option.c 2009-06-12 05:04:50.000000000 +0200 -+++ linux-2.6.27.25/drivers/usb/serial/option.c 2009-07-30 10:19:36.000000000 +0200 -@@ -286,6 +286,12 @@ - #define ZTE_PRODUCT_MF622 0x0001 - #define ZTE_PRODUCT_MF628 0x0015 - #define ZTE_PRODUCT_MF626 0x0031 -+ -+/* Vodafone K3565-Z - pid depends on firmware version */ -+#define ZTE_PRODUCT_VFK3565_1 0x0049 -+#define ZTE_PRODUCT_VFK3565_2 0x0052 -+#define ZTE_PRODUCT_VFK3565_3 0x0063 -+ - #define ZTE_PRODUCT_CDMA_TECH 0xfffe - - #define BENQ_VENDOR_ID 0x04a5 -@@ -500,6 +506,9 @@ - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622) }, - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) }, - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, -+ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_VFK3565_1) }, -+ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_VFK3565_2) }, -+ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_VFK3565_3) }, - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, - { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, - { USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */ diff --git a/src/patches/linux-2.6.27.39_e100-wakeonlan-fix.patch b/src/patches/linux-2.6.27.39_e100-wakeonlan-fix.patch deleted file mode 100644 index 5a43f73..0000000 --- a/src/patches/linux-2.6.27.39_e100-wakeonlan-fix.patch +++ /dev/null @@ -1,73 +0,0 @@ -From: Rafael J. Wysocki rjw@sisk.pl -Date: Wed, 29 Oct 2008 21:22:18 +0000 (-0700) -Subject: e100: adapt to the reworked PCI PM -X-Git-Tag: v2.6.29-rc1~581^2~935 -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=c... - -e100: adapt to the reworked PCI PM - -Adapt the e100 driver to the reworked PCI PM - -* Use the observation that it is sufficient to call pci_enable_wake() - once, unless it fails - -Signed-off-by: Rafael J. Wysocki rjw@sisk.pl -Tested-by: Jeff Kirsher jeffrey.t.kirsher@intel.com -Acked-by: Jeff Kirsher jeffrey.t.kirsher@intel.com -Cc: Jesse Barnes jbarnes@virtuousgeek.org -Cc: Jeff Garzik jeff@garzik.org -Cc: Frans Pop elendil@planet.nl -Signed-off-by: Andrew Morton akpm@linux-foundation.org -Signed-off-by: Jeff Garzik jgarzik@redhat.com ---- - -diff --git a/drivers/net/e100.c b/drivers/net/e100.c -index bb4b6e2..084127f 100644 ---- a/drivers/net/e100.c -+++ b/drivers/net/e100.c -@@ -2322,7 +2322,8 @@ static int e100_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) - { - struct nic *nic = netdev_priv(netdev); - -- if(wol->wolopts != WAKE_MAGIC && wol->wolopts != 0) -+ if ((wol->wolopts && wol->wolopts != WAKE_MAGIC) || -+ !device_can_wakeup(&nic->pdev->dev)) - return -EOPNOTSUPP; - - if(wol->wolopts) -@@ -2330,6 +2331,8 @@ static int e100_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) - else - nic->flags &= ~wol_magic; - -+ device_set_wakeup_enable(&nic->pdev->dev, wol->wolopts); -+ - e100_exec_cb(nic, NULL, e100_configure); - - return 0; -@@ -2733,8 +2736,10 @@ static int __devinit e100_probe(struct pci_dev *pdev, - - /* Wol magic packet can be enabled from eeprom */ - if((nic->mac >= mac_82558_D101_A4) && -- (nic->eeprom[eeprom_id] & eeprom_id_wol)) -+ (nic->eeprom[eeprom_id] & eeprom_id_wol)) { - nic->flags |= wol_magic; -+ device_set_wakeup_enable(&pdev->dev, true); -+ } - - /* ack any pending wake events, disable PME */ - pci_pme_active(pdev, false); -@@ -2793,11 +2798,10 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state) - pci_save_state(pdev); - - if ((nic->flags & wol_magic) | e100_asf(nic)) { -- pci_enable_wake(pdev, PCI_D3hot, 1); -- pci_enable_wake(pdev, PCI_D3cold, 1); -+ if (pci_enable_wake(pdev, PCI_D3cold, true)) -+ pci_enable_wake(pdev, PCI_D3hot, true); - } else { -- pci_enable_wake(pdev, PCI_D3hot, 0); -- pci_enable_wake(pdev, PCI_D3cold, 0); -+ pci_enable_wake(pdev, PCI_D3hot, false); - } - - pci_disable_device(pdev); diff --git a/src/patches/linux-2.6.32-ath5k_fix_setup_for_CAB_queue.patch b/src/patches/linux-2.6.32-ath5k_fix_setup_for_CAB_queue.patch deleted file mode 100644 index fbe3098..0000000 --- a/src/patches/linux-2.6.32-ath5k_fix_setup_for_CAB_queue.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff --git a/drivers/net/wireless/ath/ath5k/ath5k.h b/drivers/net/wireless/ath/ath5k/ath5k.h -index 66bcb50..ad4d446 100644 ---- a/drivers/net/wireless/ath/ath5k/ath5k.h -+++ b/drivers/net/wireless/ath/ath5k/ath5k.h -@@ -535,7 +535,7 @@ struct ath5k_txq_info { - u32 tqi_cbr_period; /* Constant bit rate period */ - u32 tqi_cbr_overflow_limit; - u32 tqi_burst_time; -- u32 tqi_ready_time; /* Not used */ -+ u32 tqi_ready_time; /* Time queue waits after an event */ - }; - - /* -diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c -index b501537..535a6af 100644 ---- a/drivers/net/wireless/ath/ath5k/base.c -+++ b/drivers/net/wireless/ath/ath5k/base.c -@@ -1516,7 +1516,8 @@ ath5k_beaconq_config(struct ath5k_softc *sc) - - ret = ath5k_hw_get_tx_queueprops(ah, sc->bhalq, &qi); - if (ret) -- return ret; -+ goto err; -+ - if (sc->opmode == NL80211_IFTYPE_AP || - sc->opmode == NL80211_IFTYPE_MESH_POINT) { - /* -@@ -1543,10 +1544,25 @@ ath5k_beaconq_config(struct ath5k_softc *sc) - if (ret) { - ATH5K_ERR(sc, "%s: unable to update parameters for beacon " - "hardware queue!\n", __func__); -- return ret; -+ goto err; - } -+ ret = ath5k_hw_reset_tx_queue(ah, sc->bhalq); /* push to h/w */ -+ if (ret) -+ goto err; - -- return ath5k_hw_reset_tx_queue(ah, sc->bhalq); /* push to h/w */; -+ /* reconfigure cabq with ready time to 80% of beacon_interval */ -+ ret = ath5k_hw_get_tx_queueprops(ah, AR5K_TX_QUEUE_ID_CAB, &qi); -+ if (ret) -+ goto err; -+ -+ qi.tqi_ready_time = (sc->bintval * 80) / 100; -+ ret = ath5k_hw_set_tx_queueprops(ah, AR5K_TX_QUEUE_ID_CAB, &qi); -+ if (ret) -+ goto err; -+ -+ ret = ath5k_hw_reset_tx_queue(ah, AR5K_TX_QUEUE_ID_CAB); -+err: -+ return ret; - } - - static void -diff --git a/drivers/net/wireless/ath/ath5k/qcu.c b/drivers/net/wireless/ath/ath5k/qcu.c -index abe36c0..9122a85 100644 ---- a/drivers/net/wireless/ath/ath5k/qcu.c -+++ b/drivers/net/wireless/ath/ath5k/qcu.c -@@ -408,12 +408,13 @@ int ath5k_hw_reset_tx_queue(struct ath5k_hw *ah, unsigned int queue) - break; - - case AR5K_TX_QUEUE_CAB: -+ /* XXX: use BCN_SENT_GT, if we can figure out how */ - AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_MISC(queue), -- AR5K_QCU_MISC_FRSHED_BCN_SENT_GT | -+ AR5K_QCU_MISC_FRSHED_DBA_GT | - AR5K_QCU_MISC_CBREXP_DIS | - AR5K_QCU_MISC_CBREXP_BCN_DIS); - -- ath5k_hw_reg_write(ah, ((AR5K_TUNE_BEACON_INTERVAL - -+ ath5k_hw_reg_write(ah, ((tq->tqi_ready_time - - (AR5K_TUNE_SW_BEACON_RESP - - AR5K_TUNE_DMA_BEACON_RESP) - - AR5K_TUNE_ADDITIONAL_SWBA_BACKOFF) * 1024) | diff --git a/src/patches/linux-2.6.32.11-netdev-1.patch b/src/patches/linux-2.6.32.11-netdev-1.patch new file mode 100644 index 0000000..65cd319 --- /dev/null +++ b/src/patches/linux-2.6.32.11-netdev-1.patch @@ -0,0 +1,478 @@ +diff -Nur linux-2.6.32.11.vanilla/drivers/leds/Kconfig linux-2.6.32.11/drivers/leds/Kconfig +--- linux-2.6.32.11.vanilla/drivers/leds/Kconfig 2010-04-02 00:59:14.000000000 +0200 ++++ linux-2.6.32.11/drivers/leds/Kconfig 2010-04-18 17:12:55.000000000 +0200 +@@ -304,4 +304,11 @@ + comment "iptables trigger is under Netfilter config (LED target)" + depends on LEDS_TRIGGERS + ++config LEDS_TRIGGER_NETDEV ++ tristate "LED Netdev Trigger" ++ depends on LEDS_TRIGGERS ++ help ++ This allows LEDs to be controlled by network device activity. ++ If unsure, say Y. ++ + endif # NEW_LEDS +diff -Nur linux-2.6.32.11.vanilla/drivers/leds/ledtrig-netdev.c linux-2.6.32.11/drivers/leds/ledtrig-netdev.c +--- linux-2.6.32.11.vanilla/drivers/leds/ledtrig-netdev.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.32.11/drivers/leds/ledtrig-netdev.c 2010-04-18 16:17:25.000000000 +0200 +@@ -0,0 +1,451 @@ ++/* ++ * LED Kernel Netdev Trigger ++ * ++ * Toggles the LED to reflect the link and traffic state of a named net device ++ * ++ * Copyright 2007 Oliver Jowett oliver@opencloud.com ++ * ++ * Derived from ledtrig-timer.c which is: ++ * Copyright 2005-2006 Openedhand Ltd. ++ * Author: Richard Purdie rpurdie@openedhand.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/jiffies.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/list.h> ++#include <linux/spinlock.h> ++#include <linux/device.h> ++#include <linux/sysdev.h> ++#include <linux/netdevice.h> ++#include <linux/timer.h> ++#include <linux/ctype.h> ++#include <linux/leds.h> ++#include <linux/version.h> ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++#include <net/net_namespace.h> ++#endif ++ ++#include "leds.h" ++ ++/* ++ * Configurable sysfs attributes: ++ * ++ * device_name - network device name to monitor ++ * ++ * interval - duration of LED blink, in milliseconds ++ * ++ * mode - either "none" (LED is off) or a space separated list of one or more of: ++ * link: LED's normal state reflects whether the link is up (has carrier) or not ++ * tx: LED blinks on transmitted data ++ * rx: LED blinks on receive data ++ * ++ * Some suggestions: ++ * ++ * Simple link status LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo link >someled/mode ++ * ++ * Ethernet-style link/activity LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo "link tx rx" >someled/mode ++ * ++ * Modem-style tx/rx LEDs: ++ * $ echo netdev >led1/trigger ++ * $ echo ppp0 >led1/device_name ++ * $ echo tx >led1/mode ++ * $ echo netdev >led2/trigger ++ * $ echo ppp0 >led2/device_name ++ * $ echo rx >led2/mode ++ * ++ */ ++ ++#define MODE_LINK 1 ++#define MODE_TX 2 ++#define MODE_RX 4 ++ ++struct led_netdev_data { ++ rwlock_t lock; ++ ++ struct timer_list timer; ++ struct notifier_block notifier; ++ ++ struct led_classdev *led_cdev; ++ struct net_device *net_dev; ++ ++ char device_name[IFNAMSIZ]; ++ unsigned interval; ++ unsigned mode; ++ unsigned link_up; ++ unsigned last_activity; ++}; ++ ++static void set_baseline_state(struct led_netdev_data *trigger_data) ++{ ++ if ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ else ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ ++ if ((trigger_data->mode & (MODE_TX | MODE_RX)) != 0 && trigger_data->link_up) ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ else ++ del_timer(&trigger_data->timer); ++} ++ ++static ssize_t led_device_name_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%s\n", trigger_data->device_name); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++extern struct net init_net; ++#endif ++ ++static ssize_t led_device_name_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (size < 0 || size >= IFNAMSIZ) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ ++ strcpy(trigger_data->device_name, buf); ++ if (size > 0 && trigger_data->device_name[size-1] == '\n') ++ trigger_data->device_name[size-1] = 0; ++ ++ if (trigger_data->device_name[0] != 0) { ++ /* check for existing device to update from */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++ trigger_data->net_dev = dev_get_by_name(&init_net, trigger_data->device_name); ++#else ++ trigger_data->net_dev = dev_get_by_name(trigger_data->device_name); ++#endif ++ if (trigger_data->net_dev != NULL) ++ trigger_data->link_up = (dev_get_flags(trigger_data->net_dev) & IFF_LOWER_UP) != 0; ++ set_baseline_state(trigger_data); /* updates LEDs, may start timers */ ++ } ++ ++ write_unlock(&trigger_data->lock); ++ return size; ++} ++ ++static DEVICE_ATTR(device_name, 0644, led_device_name_show, led_device_name_store); ++ ++static ssize_t led_mode_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ ++ if (trigger_data->mode == 0) { ++ strcpy(buf, "none\n"); ++ } else { ++ if (trigger_data->mode & MODE_LINK) ++ strcat(buf, "link "); ++ if (trigger_data->mode & MODE_TX) ++ strcat(buf, "tx "); ++ if (trigger_data->mode & MODE_RX) ++ strcat(buf, "rx "); ++ strcat(buf, "\n"); ++ } ++ ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf)+1; ++} ++ ++static ssize_t led_mode_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ char copybuf[1024]; ++ int new_mode = -1; ++ char *p, *token; ++ ++ /* take a copy since we don't want to trash the inbound buffer when using strsep */ ++ strncpy(copybuf, buf, sizeof(copybuf)); ++ copybuf[1023] = 0; ++ p = copybuf; ++ ++ while ((token = strsep(&p, " \t\n")) != NULL) { ++ if (!*token) ++ continue; ++ ++ if (new_mode == -1) ++ new_mode = 0; ++ ++ if (!strcmp(token, "none")) ++ new_mode = 0; ++ else if (!strcmp(token, "tx")) ++ new_mode |= MODE_TX; ++ else if (!strcmp(token, "rx")) ++ new_mode |= MODE_RX; ++ else if (!strcmp(token, "link")) ++ new_mode |= MODE_LINK; ++ else ++ return -EINVAL; ++ } ++ ++ if (new_mode == -1) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ trigger_data->mode = new_mode; ++ set_baseline_state(trigger_data); ++ write_unlock(&trigger_data->lock); ++ ++ return size; ++} ++ ++static DEVICE_ATTR(mode, 0644, led_mode_show, led_mode_store); ++ ++static ssize_t led_interval_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%u\n", jiffies_to_msecs(trigger_data->interval)); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++static ssize_t led_interval_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ int ret = -EINVAL; ++ char *after; ++ unsigned long value = simple_strtoul(buf, &after, 10); ++ size_t count = after - buf; ++ ++ if (*after && isspace(*after)) ++ count++; ++ ++ /* impose some basic bounds on the timer interval */ ++ if (count == size && value >= 5 && value <= 10000) { ++ write_lock(&trigger_data->lock); ++ trigger_data->interval = msecs_to_jiffies(value); ++ set_baseline_state(trigger_data); // resets timer ++ write_unlock(&trigger_data->lock); ++ ret = count; ++ } ++ ++ return ret; ++} ++ ++static DEVICE_ATTR(interval, 0644, led_interval_show, led_interval_store); ++ ++static int netdev_trig_notify(struct notifier_block *nb, ++ unsigned long evt, ++ void *dv) ++{ ++ struct net_device *dev = dv; ++ struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier); ++ ++ if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER) ++ return NOTIFY_DONE; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (strcmp(dev->name, trigger_data->device_name)) ++ goto done; ++ ++ if (evt == NETDEV_REGISTER) { ++ if (trigger_data->net_dev != NULL) ++ dev_put(trigger_data->net_dev); ++ dev_hold(dev); ++ trigger_data->net_dev = dev; ++ trigger_data->link_up = 0; ++ goto done; ++ } ++ ++ if (evt == NETDEV_UNREGISTER && trigger_data->net_dev != NULL) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ goto done; ++ } ++ ++ /* UP / DOWN / CHANGE */ ++ ++ trigger_data->link_up = (evt != NETDEV_DOWN && netif_carrier_ok(dev)); ++ set_baseline_state(trigger_data); ++ ++done: ++ write_unlock(&trigger_data->lock); ++ return NOTIFY_DONE; ++} ++ ++/* here's the real work! */ ++static void netdev_trig_timer(unsigned long arg) ++{ ++ struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; ++ const struct net_device_stats *dev_stats; ++ unsigned new_activity; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (!trigger_data->link_up || !trigger_data->net_dev || (trigger_data->mode & (MODE_TX | MODE_RX)) == 0) { ++ /* we don't need to do timer work, just reflect link state. */ ++ led_set_brightness(trigger_data->led_cdev, ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ? LED_FULL : LED_OFF); ++ goto no_restart; ++ } ++ ++ dev_stats = dev_get_stats(trigger_data->net_dev); ++ new_activity = ++ ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) + ++ ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0); ++ ++ if (trigger_data->mode & MODE_LINK) { ++ /* base state is ON (link present) */ ++ /* if there's no link, we don't get this far and the LED is off */ ++ ++ /* OFF -> ON always */ ++ /* ON -> OFF on activity */ ++ if (trigger_data->led_cdev->brightness == LED_OFF) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } ++ } else { ++ /* base state is OFF */ ++ /* ON -> OFF always */ ++ /* OFF -> ON on activity */ ++ if (trigger_data->led_cdev->brightness == LED_FULL) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } ++ } ++ ++ trigger_data->last_activity = new_activity; ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ ++no_restart: ++ write_unlock(&trigger_data->lock); ++} ++ ++static void netdev_trig_activate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data; ++ int rc; ++ ++ trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL); ++ if (!trigger_data) ++ return; ++ ++ rwlock_init(&trigger_data->lock); ++ ++ trigger_data->notifier.notifier_call = netdev_trig_notify; ++ trigger_data->notifier.priority = 10; ++ ++ setup_timer(&trigger_data->timer, netdev_trig_timer, (unsigned long) trigger_data); ++ ++ trigger_data->led_cdev = led_cdev; ++ trigger_data->net_dev = NULL; ++ trigger_data->device_name[0] = 0; ++ ++ trigger_data->mode = 0; ++ trigger_data->interval = msecs_to_jiffies(50); ++ trigger_data->link_up = 0; ++ trigger_data->last_activity = 0; ++ ++ led_cdev->trigger_data = trigger_data; ++ ++ rc = device_create_file(led_cdev->dev, &dev_attr_device_name); ++ if (rc) ++ goto err_out; ++ rc = device_create_file(led_cdev->dev, &dev_attr_mode); ++ if (rc) ++ goto err_out_device_name; ++ rc = device_create_file(led_cdev->dev, &dev_attr_interval); ++ if (rc) ++ goto err_out_mode; ++ ++ register_netdevice_notifier(&trigger_data->notifier); ++ return; ++ ++err_out_mode: ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++err_out_device_name: ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++err_out: ++ led_cdev->trigger_data = NULL; ++ kfree(trigger_data); ++} ++ ++static void netdev_trig_deactivate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (trigger_data) { ++ unregister_netdevice_notifier(&trigger_data->notifier); ++ ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++ device_remove_file(led_cdev->dev, &dev_attr_interval); ++ ++ write_lock(&trigger_data->lock); ++ ++ if (trigger_data->net_dev) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ } ++ ++ write_unlock(&trigger_data->lock); ++ ++ del_timer_sync(&trigger_data->timer); ++ ++ kfree(trigger_data); ++ } ++} ++ ++static struct led_trigger netdev_led_trigger = { ++ .name = "netdev", ++ .activate = netdev_trig_activate, ++ .deactivate = netdev_trig_deactivate, ++}; ++ ++static int __init netdev_trig_init(void) ++{ ++ return led_trigger_register(&netdev_led_trigger); ++} ++ ++static void __exit netdev_trig_exit(void) ++{ ++ led_trigger_unregister(&netdev_led_trigger); ++} ++ ++module_init(netdev_trig_init); ++module_exit(netdev_trig_exit); ++ ++MODULE_AUTHOR("Oliver Jowett oliver@opencloud.com"); ++MODULE_DESCRIPTION("Netdev LED trigger"); ++MODULE_LICENSE("GPL"); +diff -Nur linux-2.6.32.11.vanilla/drivers/leds/Makefile linux-2.6.32.11/drivers/leds/Makefile +--- linux-2.6.32.11.vanilla/drivers/leds/Makefile 2010-04-02 00:59:14.000000000 +0200 ++++ linux-2.6.32.11/drivers/leds/Makefile 2010-04-18 16:13:39.000000000 +0200 +@@ -40,3 +40,4 @@ + obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o + obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o + obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o ++obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o diff --git a/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch b/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch new file mode 100644 index 0000000..b102380 --- /dev/null +++ b/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch @@ -0,0 +1,23 @@ +diff -Naur linux-2.6.32.11.org/drivers/usb/serial/option.c linux-2.6.32.11/drivers/usb/serial/option.c +--- linux-2.6.32.11.org/drivers/usb/serial/option.c 2010-04-02 00:59:14.000000000 +0200 ++++ linux-2.6.32.11/drivers/usb/serial/option.c 2010-04-21 21:56:56.000000000 +0200 +@@ -165,6 +165,10 @@ + #define HUAWEI_PRODUCT_E143D 0x143D + #define HUAWEI_PRODUCT_E143E 0x143E + #define HUAWEI_PRODUCT_E143F 0x143F ++/* Vodafone K4505-H */ ++#define HUAWEI_PRODUCT_E1464 0x1464 ++/* Vodafone K3765-H */ ++#define HUAWEI_PRODUCT_E1465 0x1465 + #define HUAWEI_PRODUCT_E14AC 0x14AC + + #define QUANTA_VENDOR_ID 0x0408 +@@ -443,6 +447,8 @@ + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1464, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1465, 0xff, 0xff, 0xff) }, + { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC) }, + { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) }, + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ diff --git a/src/patches/linux-2.6.32.8-xen-patch-fixes.patch b/src/patches/linux-2.6.32.8-xen-patch-fixes.patch deleted file mode 100644 index 8e2bc66..0000000 --- a/src/patches/linux-2.6.32.8-xen-patch-fixes.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur linux-2.6.32.8.org/init/main.c linux-2.6.32.8/init/main.c ---- linux-2.6.32.8.org/init/main.c 2010-02-17 20:30:17.000000000 +0100 -+++ linux-2.6.32.8/init/main.c 2010-02-17 22:00:48.000000000 +0100 -@@ -90,9 +90,6 @@ - extern void prio_tree_init(void); - extern void radix_tree_init(void); - extern void free_initmem(void); --#ifndef CONFIG_DEBUG_RODATA --static inline void mark_rodata_ro(void) { } --#endif - - #ifdef CONFIG_TC - extern void tc_init(void); diff --git a/src/patches/mISDN-enable_disabled_cards.patch b/src/patches/mISDN-enable_disabled_cards.patch deleted file mode 100644 index 67864ba..0000000 --- a/src/patches/mISDN-enable_disabled_cards.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -Naur mISDN.org/Makefile mISDN/Makefile ---- mISDN.org/Makefile 2009-09-06 17:02:14.000000000 +0200 -+++ mISDN/Makefile 2009-12-21 20:03:00.000000000 +0100 -@@ -37,11 +37,11 @@ - CONFIGS+=CONFIG_MISDN_HFCPCI=m - CONFIGS+=CONFIG_MISDN_HFCUSB=m - CONFIGS+=CONFIG_MISDN_XHFC=m --#CONFIGS+=CONFIG_MISDN_HFCMINI=m --#CONFIGS+=CONFIG_MISDN_W6692=m --#CONFIGS+=CONFIG_MISDN_SPEEDFAX=m --#CONFIGS+=CONFIG_MISDN_AVM_FRITZ=m --#CONFIGS+=CONFIG_MISDN_NETJET=m -+CONFIGS+=CONFIG_MISDN_SPEEDFAX=m -+CONFIGS+=CONFIG_MISDN_AVMFRITZ=m -+CONFIGS+=CONFIG_MISDN_IPAC=m -+CONFIGS+=CONFIG_MISDN_ISAR=m -+CONFIGS+=CONFIG_MISDN_INFINEON=m - CONFIGS+=CONFIG_MISDN_L1OIP=m - #CONFIGS+=CONFIG_MISDN_DEBUGTOOL=m - #CONFIGS+=CONFIG_MISDN_HWSKEL=m diff --git a/src/patches/mISDN-hfcusb_bchannels.patch b/src/patches/mISDN-hfcusb_bchannels.patch deleted file mode 100644 index 322239d..0000000 --- a/src/patches/mISDN-hfcusb_bchannels.patch +++ /dev/null @@ -1,56 +0,0 @@ -From: mbachem info@colognechip.com -Date: Thu, 17 Dec 2009 01:45:58 +0000 (+0100) -Subject: mISDN: Bugfix hfcsusb: usb endpoint activation/deactivation -X-Git-Url: http://git.misdn.org/?p=mISDN.git;a=commitdiff_plain;h=e29960990df531faff420... - -mISDN: Bugfix hfcsusb: usb endpoint activation/deactivation - -fixed activation/deactivation of B1/B2's USB endpoints - -Signed-off-by: mbachem info@colognechip.com ---- - -diff --git a/drivers/isdn/hardware/mISDN/hfcsusb.c b/drivers/isdn/hardware/mISDN/hfcsusb.c -index c5f29db..e8c5754 100644 ---- a/drivers/isdn/hardware/mISDN/hfcsusb.c -+++ b/drivers/isdn/hardware/mISDN/hfcsusb.c -@@ -36,7 +36,7 @@ - #include <linux/isdn_compat.h> - #include "hfcsusb.h" - --static const char *hfcsusb_rev = "Revision: 0.3.3 (socket), 2008-11-05"; -+static const char *hfcsusb_rev = "Revision: 0.3.4 (socket), 2009-12-16"; - - static unsigned int debug; - static int poll = DEFAULT_TRANSP_BURST_SZ; -@@ -239,7 +239,7 @@ hfcusb_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb) - return ret; - case PH_ACTIVATE_REQ: - if (!test_and_set_bit(FLG_ACTIVE, &bch->Flags)) { -- hfcsusb_start_endpoint(hw, bch->nr); -+ hfcsusb_start_endpoint(hw, bch->nr-1); - ret = hfcsusb_setup_bch(bch, ch->protocol); - } else - ret = 0; -@@ -502,12 +502,6 @@ open_bchannel(struct hfcsusb *hw, struct channel_req *rq) - bch->ch.protocol = rq->protocol; - rq->ch = &bch->ch; - -- /* start USB endpoint for bchannel */ -- if (rq->adr.channel == 1) -- hfcsusb_start_endpoint(hw, HFC_CHAN_B1); -- else -- hfcsusb_start_endpoint(hw, HFC_CHAN_B2); -- - if (!try_module_get(THIS_MODULE)) - printk(KERN_WARNING "%s: %s:cannot get module\n", - hw->name, __func__); -@@ -1813,7 +1807,7 @@ deactivate_bchannel(struct bchannel *bch) - mISDN_clear_bchannel(bch); - spin_unlock_irqrestore(&hw->lock, flags); - hfcsusb_setup_bch(bch, ISDN_P_NONE); -- hfcsusb_stop_endpoint(hw, bch->nr); -+ hfcsusb_stop_endpoint(hw, bch->nr-1); - } - - /* diff --git a/src/patches/openssh-4.7p1-padlock.patch b/src/patches/openssh-4.7p1-padlock.patch deleted file mode 100644 index d0708f4..0000000 --- a/src/patches/openssh-4.7p1-padlock.patch +++ /dev/null @@ -1,141 +0,0 @@ -diff -urN openssh-4.7p1.orig/ssh-add.c openssh-4.7p1/ssh-add.c ---- openssh-4.7p1.orig/ssh-add.c 2007-09-06 15:16:42.472974134 +0200 -+++ openssh-4.7p1/ssh-add.c 2007-09-06 15:21:26.489159294 +0200 -@@ -42,6 +42,7 @@ - #include <sys/param.h> - - #include <openssl/evp.h> -+#include <openssl/engine.h> - - #include <fcntl.h> - #include <pwd.h> -@@ -343,7 +344,11 @@ - - SSLeay_add_all_algorithms(); - -- /* At first, get a connection to the authentication agent. */ -+ /* Init available hardware crypto engines. */ -+ ENGINE_load_builtin_engines(); -+ ENGINE_register_all_complete(); -+ ENGINE_set_default_ciphers(ENGINE_by_id("padlock")); -+ - ac = ssh_get_authentication_connection(); - if (ac == NULL) { - fprintf(stderr, -diff -urN openssh-4.7p1.orig/ssh-agent.c openssh-4.7p1/ssh-agent.c ---- openssh-4.7p1.orig/ssh-agent.c 2007-09-06 15:16:42.472974134 +0200 -+++ openssh-4.7p1/ssh-agent.c 2007-09-06 15:23:21.495713144 +0200 -@@ -51,6 +51,7 @@ - - #include <openssl/evp.h> - #include <openssl/md5.h> -+#include <openssl/engine.h> - - #include <errno.h> - #include <fcntl.h> -@@ -1061,6 +1062,11 @@ - - SSLeay_add_all_algorithms(); - -+ /* Init available hardware crypto engines. */ -+ ENGINE_load_builtin_engines(); -+ ENGINE_register_all_complete(); -+ ENGINE_set_default_ciphers(ENGINE_by_id("padlock")); -+ - __progname = ssh_get_progname(av[0]); - init_rng(); - seed_rng(); -diff -urN openssh-4.7p1.orig/ssh.c openssh-4.7p1/ssh.c ---- openssh-4.7p1.orig/ssh.c 2007-09-06 15:16:42.472974134 +0200 -+++ openssh-4.7p1/ssh.c 2007-09-06 15:24:18.498961574 +0200 -@@ -72,6 +72,7 @@ - - #include <openssl/evp.h> - #include <openssl/err.h> -+#include <openssl/engine.h> - - #include "xmalloc.h" - #include "ssh.h" -@@ -560,6 +561,11 @@ - SSLeay_add_all_algorithms(); - ERR_load_crypto_strings(); - -+ /* Init available hardware crypto engines. */ -+ ENGINE_load_builtin_engines(); -+ ENGINE_register_all_complete(); -+ ENGINE_set_default_ciphers(ENGINE_by_id("padlock")); -+ - /* Initialize the command to execute on remote host. */ - buffer_init(&command); - -diff -urN openssh-4.7p1.orig/sshd.c openssh-4.7p1/sshd.c ---- openssh-4.7p1.orig/sshd.c 2007-09-06 15:16:42.472974134 +0200 -+++ openssh-4.7p1/sshd.c 2007-09-06 15:25:03.001497629 +0200 -@@ -75,6 +75,7 @@ - #include <openssl/bn.h> - #include <openssl/md5.h> - #include <openssl/rand.h> -+#include <openssl/engine.h> - #ifdef HAVE_SECUREWARE - #include <sys/security.h> - #include <prot.h> -@@ -1376,6 +1377,11 @@ - - SSLeay_add_all_algorithms(); - -+ /* Init available hardware crypto engines. */ -+ ENGINE_load_builtin_engines(); -+ ENGINE_register_all_complete(); -+ ENGINE_set_default_ciphers(ENGINE_by_id("padlock")); -+ - /* - * Force logging to stderr until we have loaded the private host - * key (unless started from inetd) -diff -urN openssh-4.7p1.orig/ssh-keygen.c openssh-4.7p1/ssh-keygen.c ---- openssh-4.7p1.orig/ssh-keygen.c 2007-09-06 15:16:42.472974134 +0200 -+++ openssh-4.7p1/ssh-keygen.c 2007-09-06 15:25:52.982847129 +0200 -@@ -21,6 +21,7 @@ - - #include <openssl/evp.h> - #include <openssl/pem.h> -+#include <openssl/engine.h> - - #include <errno.h> - #include <fcntl.h> -@@ -1073,6 +1074,12 @@ - __progname = ssh_get_progname(argv[0]); - - SSLeay_add_all_algorithms(); -+ -+ /* Init available hardware crypto engines. */ -+ ENGINE_load_builtin_engines(); -+ ENGINE_register_all_complete(); -+ ENGINE_set_default_ciphers(ENGINE_by_id("padlock")); -+ - log_init(argv[0], SYSLOG_LEVEL_INFO, SYSLOG_FACILITY_USER, 1); - - init_rng(); -diff -urN openssh-4.7p1.orig/ssh-keysign.c openssh-4.7p1/ssh-keysign.c ---- openssh-4.7p1.orig/ssh-keysign.c 2007-09-06 15:16:42.472974134 +0200 -+++ openssh-4.7p1/ssh-keysign.c 2007-09-06 15:26:18.971328869 +0200 -@@ -38,6 +38,7 @@ - #include <openssl/evp.h> - #include <openssl/rand.h> - #include <openssl/rsa.h> -+#include <openssl/engine.h> - - #include "xmalloc.h" - #include "log.h" -@@ -195,6 +196,12 @@ - fatal("could not open any host key"); - - SSLeay_add_all_algorithms(); -+ -+ /* Init available hardware crypto engines. */ -+ ENGINE_load_builtin_engines(); -+ ENGINE_register_all_complete(); -+ ENGINE_set_default_ciphers(ENGINE_by_id("padlock")); -+ - for (i = 0; i < 256; i++) - rnd[i] = arc4random(); - RAND_seed(rnd, sizeof(rnd)); diff --git a/src/patches/openssl-0.9.8g-engine-padlock.patch b/src/patches/openssl-0.9.8g-engine-padlock.patch deleted file mode 100644 index 37f4558..0000000 --- a/src/patches/openssl-0.9.8g-engine-padlock.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -urN openssl-0.9.8g.orig/ssl/ssl_algs.c openssl-0.9.8g/ssl/ssl_algs.c -+++ openssl-0.9.8g/ssl/ssl_algs.c 2007-11-13 19:50:35.356816442 +0100 ---- openssl-0.9.8g.orig/ssl/ssl_algs.c 2007-11-13 19:40:02.820770267 +0100 -@@ -57,6 +57,7 @@ - */ - - #include <stdio.h> -+#include <openssl/engine.h> - #include <openssl/objects.h> - #include <openssl/lhash.h> - #include "ssl_locl.h" -@@ -127,6 +128,12 @@ - #endif - /* initialize cipher/digest methods table */ - ssl_load_ciphers(); -+ -+ /* Init available hardware crypto engines. */ -+ ENGINE_load_builtin_engines(); -+ ENGINE_register_all_complete(); -+ ENGINE_set_default_ciphers(ENGINE_by_id("padlock")); -+ - return(1); - } - diff --git a/src/patches/openssl-0.9.8g-sha-padlock.patch b/src/patches/openssl-0.9.8g-sha-padlock.patch deleted file mode 100644 index 9b1bb2a..0000000 --- a/src/patches/openssl-0.9.8g-sha-padlock.patch +++ /dev/null @@ -1,620 +0,0 @@ -diff -urN openssl-0.9.8g.orig/crypto/engine/eng_padlock.c openssl-0.9.8g/crypto/engine/eng_padlock.c ---- openssl-0.9.8g.orig/crypto/engine/eng_padlock.c 2007-11-13 20:00:28.390611512 +0100 -+++ openssl-0.9.8g/crypto/engine/eng_padlock.c 2007-11-13 20:02:52.398818072 +0100 -@@ -74,12 +74,23 @@ - #ifndef OPENSSL_NO_AES - #include <openssl/aes.h> - #endif -+#ifndef OPENSSL_NO_SHA -+#include <openssl/sha.h> -+#endif - #include <openssl/rand.h> - #include <openssl/err.h> - - #ifndef OPENSSL_NO_HW - #ifndef OPENSSL_NO_HW_PADLOCK - -+/* PadLock RNG is disabled by default */ -+#define PADLOCK_NO_RNG 1 -+ -+/* No ASM routines for SHA in MSC yet */ -+#ifdef _MSC_VER -+#define OPENSSL_NO_SHA -+#endif -+ - /* Attempt to have a single source for both 0.9.7 and 0.9.8 :-) */ - #if (OPENSSL_VERSION_NUMBER >= 0x00908000L) - # ifndef OPENSSL_NO_DYNAMIC_ENGINE -@@ -135,52 +146,89 @@ - static int padlock_init(ENGINE *e); - - /* RNG Stuff */ -+#ifndef PADLOCK_NO_RNG - static RAND_METHOD padlock_rand; -+#endif - - /* Cipher Stuff */ - #ifndef OPENSSL_NO_AES - static int padlock_ciphers(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); - #endif - -+/* Digest Stuff */ -+#ifndef OPENSSL_NO_SHA -+static int padlock_digests(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); -+#endif -+ - /* Engine names */ - static const char *padlock_id = "padlock"; - static char padlock_name[100]; - - /* Available features */ --static int padlock_use_ace = 0; /* Advanced Cryptography Engine */ --static int padlock_use_rng = 0; /* Random Number Generator */ -+enum padlock_flags { -+ PADLOCK_RNG = 0x01, -+ PADLOCK_ACE = 0x02, -+ PADLOCK_ACE2 = 0x04, -+ PADLOCK_PHE = 0x08, -+ PADLOCK_PMM = 0x10 -+}; -+enum padlock_flags padlock_flags; -+ -+#define PADLOCK_HAVE_RNG (padlock_flags & PADLOCK_RNG) -+#define PADLOCK_HAVE_ACE (padlock_flags & (PADLOCK_ACE|PADLOCK_ACE2)) -+#define PADLOCK_HAVE_ACE1 (padlock_flags & PADLOCK_ACE) -+#define PADLOCK_HAVE_ACE2 (padlock_flags & PADLOCK_ACE2) -+#define PADLOCK_HAVE_PHE (padlock_flags & PADLOCK_PHE) -+#define PADLOCK_HAVE_PMM (padlock_flags & PADLOCK_PMM) -+ - #ifndef OPENSSL_NO_AES - static int padlock_aes_align_required = 1; - #endif - -+/* Init / Max buffer sizes for SHA */ -+#define PADLOCK_SHA_INIT_ORD 13 /* = 8192 */ -+#define PADLOCK_SHA_MAX_ORD 13 /* = 8192 */ -+ - /* ===== Engine "management" functions ===== */ - - /* Prepare the ENGINE structure for registration */ - static int - padlock_bind_helper(ENGINE *e) - { -+ char phe_string[20]; -+ - /* Check available features */ - padlock_available(); - --#if 1 /* disable RNG for now, see commentary in vicinity of RNG code */ -- padlock_use_rng=0; --#endif -+ /* Build PHE info with buffer size argument */ -+ if (PADLOCK_HAVE_PHE) -+ BIO_snprintf(phe_string, sizeof(phe_string), -+ "PHE(%lu) ", 1UL << PADLOCK_SHA_MAX_ORD); - - /* Generate a nice engine name with available features */ - BIO_snprintf(padlock_name, sizeof(padlock_name), -- "VIA PadLock (%s, %s)", -- padlock_use_rng ? "RNG" : "no-RNG", -- padlock_use_ace ? "ACE" : "no-ACE"); -+ "VIA PadLock: %s%s%s%s%s", -+ padlock_flags ? "" : "not supported", -+ PADLOCK_HAVE_RNG ? "RNG " : "", -+ PADLOCK_HAVE_ACE ? (PADLOCK_HAVE_ACE2 ? "ACE2 " : "ACE ") : "", -+ PADLOCK_HAVE_PHE ? phe_string : "", -+ PADLOCK_HAVE_PMM ? "PMM " : ""); - - /* Register everything or return with an error */ - if (!ENGINE_set_id(e, padlock_id) || - !ENGINE_set_name(e, padlock_name) || - -- !ENGINE_set_init_function(e, padlock_init) || -+ !ENGINE_set_init_function(e, padlock_init) - #ifndef OPENSSL_NO_AES -- (padlock_use_ace && !ENGINE_set_ciphers (e, padlock_ciphers)) || -+ || (PADLOCK_HAVE_ACE && !ENGINE_set_ciphers (e, padlock_ciphers)) -+#endif -+#ifndef OPENSSL_NO_SHA -+ || (PADLOCK_HAVE_PHE && !ENGINE_set_digests (e, padlock_digests)) -+#endif -+#ifndef PADLOCK_NO_RNG -+ || (PADLOCK_HAVE_RNG && !ENGINE_set_RAND (e, &padlock_rand)) - #endif -- (padlock_use_rng && !ENGINE_set_RAND (e, &padlock_rand))) { -+ ) { - return 0; - } - -@@ -210,7 +258,7 @@ - static int - padlock_init(ENGINE *e) - { -- return (padlock_use_rng || padlock_use_ace); -+ return (padlock_flags); - } - - /* This stuff is needed if this ENGINE is being compiled into a self-contained -@@ -237,6 +285,17 @@ - - /* ===== Here comes the "real" engine ===== */ - -+#ifdef __GNUC__ -+#define likely(x) __builtin_expect(!!(x), 1) -+#define unlikely(x) __builtin_expect(!!(x), 0) -+#else -+#define likely(x) (x) -+#define unlikely(x) (x) -+#endif -+ -+/* How to test if we need to typedef uint32_t ??? */ -+typedef unsigned long uint32_t; -+ - #ifndef OPENSSL_NO_AES - /* Some AES-related constants */ - #define AES_BLOCK_SIZE 16 -@@ -362,10 +421,22 @@ - : "+a"(eax), "=d"(edx) : : "ecx"); - - /* Fill up some flags */ -- padlock_use_ace = ((edx & (0x3<<6)) == (0x3<<6)); -- padlock_use_rng = ((edx & (0x3<<2)) == (0x3<<2)); -+ padlock_flags |= ((edx & (0x3<<3)) ? PADLOCK_RNG : 0); -+ padlock_flags |= ((edx & (0x3<<7)) ? PADLOCK_ACE : 0); -+ padlock_flags |= ((edx & (0x3<<9)) ? PADLOCK_ACE2 : 0); -+ padlock_flags |= ((edx & (0x3<<11)) ? PADLOCK_PHE : 0); -+ padlock_flags |= ((edx & (0x3<<13)) ? PADLOCK_PMM : 0); - -- return padlock_use_ace + padlock_use_rng; -+ return padlock_flags; -+} -+ -+static inline void -+padlock_htonl_block(uint32_t *data, size_t count) -+{ -+ while (count--) { -+ asm volatile ("bswapl %0" : "+r"(*data)); -+ data++; -+ } - } - - #ifndef OPENSSL_NO_AES -@@ -374,12 +445,9 @@ - padlock_bswapl(AES_KEY *ks) - { - size_t i = sizeof(ks->rd_key)/sizeof(ks->rd_key[0]); -- unsigned int *key = ks->rd_key; -+ uint32_t *key = (uint32_t*) ks->rd_key; - -- while (i--) { -- asm volatile ("bswapl %0" : "+r"(*key)); -- key++; -- } -+ padlock_htonl_block(key, i); - } - #endif - -@@ -1154,6 +1222,415 @@ - - #endif /* OPENSSL_NO_AES */ - -+#ifndef OPENSSL_NO_SHA -+ -+// #define PADLOCK_SHA_STAT 1 -+ -+union sha_all_ctx { -+ SHA_CTX sha_ctx; -+ SHA256_CTX sha256_ctx; /* shared with SHA224 */ -+}; -+ -+typedef int (*f_sha_init)(void *c); -+typedef int (*f_sha_update)(void *c, const void *_data, size_t len); -+typedef int (*f_sha_final)(unsigned char *md, void *c); -+typedef void (*f_sha_padlock)(char *in, unsigned char *out, int count); -+ -+struct sha_digest_functions { -+ f_sha_init init; -+ f_sha_update update; -+ f_sha_final final; -+ f_sha_padlock padlock; -+}; -+ -+/* Don't forget to initialize all relevant -+ * fields in padlock_sha_init() or face the -+ * consequences!!! -+ * BTW We don't use bzero() on this structure -+ * because zeroing fallback_ctx is -+ * a waste of time. */ -+struct padlock_digest_data { -+ void *buf_start, *buf_alloc; -+ ssize_t used; -+ unsigned long order:8, bypass:1; -+ /* Fallback support */ -+ struct sha_digest_functions fallback_fcs; -+ union sha_all_ctx fallback_ctx; -+#ifdef PADLOCK_SHA_STAT -+ size_t stat_count, stat_total; -+#endif -+}; -+ -+#ifdef PADLOCK_SHA_STAT -+size_t all_count, all_total; -+#endif -+ -+#define DIGEST_DATA(ctx) ((struct padlock_digest_data *)(ctx->md_data)) -+#define DDATA_FREE(ddata) ((size_t)(1L << ddata->order) - ddata->used) -+ -+static void -+padlock_sha_bypass(struct padlock_digest_data *ddata) -+{ -+ if (ddata->bypass) -+ return; -+ -+ ddata->fallback_fcs.init(&ddata->fallback_ctx); -+ if (ddata->buf_start && ddata->used > 0) { -+ ddata->fallback_fcs.update(&ddata->fallback_ctx, ddata->buf_start, ddata->used); -+ if (ddata->buf_alloc) { -+ memset(ddata->buf_start, 0, ddata->used); -+ free(ddata->buf_alloc); -+ ddata->buf_alloc = 0; -+ } -+ } -+ ddata->buf_start = 0; -+ ddata->used = 0; -+ ddata->bypass = 1; -+ -+ return; -+} -+ -+static void -+padlock_do_sha1(char *in, char *out, int count) -+{ -+ /* We can't store directly to *out as it -+ * doesn't have to be aligned. But who cares, -+ * it's only a few bytes... */ -+ char buf[128+16]; -+ unsigned char *output = NEAREST_ALIGNED(buf); -+ -+ ((uint32_t*)output)[0] = 0x67452301; -+ ((uint32_t*)output)[1] = 0xEFCDAB89; -+ ((uint32_t*)output)[2] = 0x98BADCFE; -+ ((uint32_t*)output)[3] = 0x10325476; -+ ((uint32_t*)output)[4] = 0xC3D2E1F0; -+ -+ asm volatile (".byte 0xf3,0x0f,0xa6,0xc8" /* rep xsha1 */ -+ : "+S"(in), "+D"(output) -+ : "c"(count), "a"(0)); -+ -+ memcpy(out, output, 5 * sizeof(uint32_t)); -+ -+ padlock_htonl_block((uint32_t*)out, 5); -+} -+ -+static void -+padlock_do_sha224(char *in, char *out, int count) -+{ -+ /* We can't store directly to *out as it -+ * doesn't have to be aligned. But who cares, -+ * it's only a few bytes... */ -+ char buf[128+16]; -+ unsigned char *output = NEAREST_ALIGNED(buf); -+ -+ ((uint32_t*)output)[0] = 0xC1059ED8UL; -+ ((uint32_t*)output)[1] = 0x367CD507UL; -+ ((uint32_t*)output)[2] = 0x3070DD17UL; -+ ((uint32_t*)output)[3] = 0xF70E5939UL; -+ ((uint32_t*)output)[4] = 0xFFC00B31UL; -+ ((uint32_t*)output)[5] = 0x68581511UL; -+ ((uint32_t*)output)[6] = 0x64F98FA7UL; -+ ((uint32_t*)output)[7] = 0xBEFA4FA4UL; -+ -+ asm volatile (".byte 0xf3,0x0f,0xa6,0xd0" /* rep xsha256 */ -+ : "+S"(in), "+D"(output) -+ : "c"(count), "a"(0)); -+ -+ memcpy(out, output, 7 * sizeof(uint32_t)); -+ -+ padlock_htonl_block((uint32_t*)out, 7); -+} -+ -+static void -+padlock_do_sha256(char *in, char *out, int count) -+{ -+ /* We can't store directly to *out as it -+ * doesn't have to be aligned. But who cares, -+ * it's only a few bytes... */ -+ char buf[128+16]; -+ unsigned char *output = NEAREST_ALIGNED(buf); -+ -+ ((uint32_t*)output)[0] = 0x6A09E667; -+ ((uint32_t*)output)[1] = 0xBB67AE85; -+ ((uint32_t*)output)[2] = 0x3C6EF372; -+ ((uint32_t*)output)[3] = 0xA54FF53A; -+ ((uint32_t*)output)[4] = 0x510E527F; -+ ((uint32_t*)output)[5] = 0x9B05688C; -+ ((uint32_t*)output)[6] = 0x1F83D9AB; -+ ((uint32_t*)output)[7] = 0x5BE0CD19; -+ -+ asm volatile (".byte 0xf3,0x0f,0xa6,0xd0" /* rep xsha256 */ -+ : "+S"(in), "+D"(output) -+ : "c"(count), "a"(0)); -+ -+ memcpy(out, output, 8 * sizeof(uint32_t)); -+ -+ padlock_htonl_block((uint32_t*)out, 8); -+} -+ -+static int -+padlock_sha_init(EVP_MD_CTX *ctx) -+{ -+ struct padlock_digest_data *ddata = DIGEST_DATA(ctx); -+ -+ ddata->used = 0; -+ ddata->bypass = 0; -+ -+ ddata->order = PADLOCK_SHA_INIT_ORD; -+ ddata->buf_alloc = malloc((1L << ddata->order) + 16); -+ ddata->buf_start = NEAREST_ALIGNED(ddata->buf_alloc); -+ -+ return 1; -+} -+ -+static int -+padlock_sha1_init(EVP_MD_CTX *ctx) -+{ -+ struct padlock_digest_data *ddata = DIGEST_DATA(ctx); -+ -+ ddata->fallback_fcs.init = (f_sha_init)SHA1_Init; -+ ddata->fallback_fcs.update = (f_sha_update)SHA1_Update; -+ ddata->fallback_fcs.final = (f_sha_final)SHA1_Final; -+ ddata->fallback_fcs.padlock = (f_sha_padlock)padlock_do_sha1; -+ -+ return padlock_sha_init(ctx); -+} -+ -+static int -+padlock_sha224_init(EVP_MD_CTX *ctx) -+{ -+ struct padlock_digest_data *ddata = DIGEST_DATA(ctx); -+ -+ ddata->fallback_fcs.init = (f_sha_init)SHA224_Init; -+ ddata->fallback_fcs.update = (f_sha_update)SHA224_Update; -+ ddata->fallback_fcs.final = (f_sha_final)SHA224_Final; -+ ddata->fallback_fcs.padlock = (f_sha_padlock)padlock_do_sha224; -+ -+ return padlock_sha_init(ctx); -+} -+ -+static int -+padlock_sha256_init(EVP_MD_CTX *ctx) -+{ -+ struct padlock_digest_data *ddata = DIGEST_DATA(ctx); -+ -+ ddata->fallback_fcs.init = (f_sha_init)SHA256_Init; -+ ddata->fallback_fcs.update = (f_sha_update)SHA256_Update; -+ ddata->fallback_fcs.final = (f_sha_final)SHA256_Final; -+ ddata->fallback_fcs.padlock = (f_sha_padlock)padlock_do_sha256; -+ -+ return padlock_sha_init(ctx); -+} -+ -+static int -+padlock_sha_update(EVP_MD_CTX *ctx, const void *data, size_t length) -+{ -+ struct padlock_digest_data *ddata = DIGEST_DATA(ctx); -+ -+#ifdef PADLOCK_SHA_STAT -+ ddata->stat_count++; -+ ddata->stat_total += length; -+ all_count++; -+ all_total += length; -+#endif -+ if (unlikely(ddata->bypass)) { -+ ddata->fallback_fcs.update(&ddata->fallback_ctx, data, length); -+ return 1; -+ } -+ if (unlikely(DDATA_FREE(ddata) < length)) { -+ if (likely(ddata->used + length > (1 << PADLOCK_SHA_MAX_ORD))) { -+ /* Too much data to be stored -> bypass to SW SHA */ -+ padlock_sha_bypass(ddata); -+ ddata->fallback_fcs.update(&ddata->fallback_ctx, data, length); -+ return 1; -+ } else { -+ /* Resize the alocated buffer */ -+ char *new_buf; -+ size_t new_size; -+ -+ while ((1<<++ddata->order) < (ddata->used + length)); -+ new_size = (1<<ddata->order); -+ if(!(new_buf = realloc(ddata->buf_alloc, new_size + 16))) { -+ /* fallback plan again */ -+ padlock_sha_bypass(ddata); -+ ddata->fallback_fcs.update(&ddata->fallback_ctx, data, length); -+ return 1; -+ } -+ ddata->buf_alloc = new_buf; -+ ddata->buf_start = NEAREST_ALIGNED(new_buf); -+ } -+ } -+ -+ memcpy(ddata->buf_start + ddata->used, data, length); -+ ddata->used += length; -+ -+ return 1; -+} -+ -+static int -+padlock_sha_final(EVP_MD_CTX *ctx, unsigned char *md) -+{ -+ struct padlock_digest_data *ddata = DIGEST_DATA(ctx); -+ -+#ifdef PADLOCK_SHA_STAT -+ fprintf(stderr, "PadLock CTX: cnt=%zu, tot=%zu, avg=%zu\n", -+ ddata->stat_count, ddata->stat_total, -+ ddata->stat_count ? (ddata->stat_total/ddata->stat_count) : 0); -+ fprintf(stderr, "PadLock ALL: cnt=%zu, tot=%zu, avg=%zu\n", -+ all_count, all_total, all_count ? (all_total/all_count) : 0); -+#endif -+ -+ if (ddata->bypass) { -+ ddata->fallback_fcs.final(md, &ddata->fallback_ctx); -+ return 1; -+ } -+ -+ /* Pass the input buffer to PadLock microcode... */ -+ ddata->fallback_fcs.padlock(ddata->buf_start, md, ddata->used); -+ memset(ddata->buf_start, 0, ddata->used); -+ free(ddata->buf_alloc); -+ ddata->buf_start = 0; -+ ddata->buf_alloc = 0; -+ ddata->used = 0; -+ -+ return 1; -+} -+ -+static int -+padlock_sha_copy(EVP_MD_CTX *to,const EVP_MD_CTX *from) -+{ -+ struct padlock_digest_data *ddata_from = DIGEST_DATA(from); -+ struct padlock_digest_data *ddata_to = DIGEST_DATA(to); -+ -+ memcpy(ddata_to, ddata_from, sizeof(struct padlock_digest_data)); -+ if (ddata_from->buf_alloc) { -+ ddata_to->buf_alloc = malloc(1L << ddata_to->order); -+ if (!ddata_to->buf_start) { -+ fprintf(stderr, "%s(): malloc() failed\n", __func__); -+ exit(1); -+ } -+ ddata_to->buf_start = NEAREST_ALIGNED(ddata_to->buf_alloc); -+ memcpy(ddata_to->buf_start, ddata_from->buf_start, ddata_from->used); -+ } -+ return 1; -+} -+ -+static int -+padlock_sha_cleanup(EVP_MD_CTX *ctx) -+{ -+ struct padlock_digest_data *ddata = DIGEST_DATA(ctx); -+ -+ if (ddata->buf_alloc) { -+ memset(ddata->buf_start, 0, ddata->used); -+ free(ddata->buf_alloc); -+ } -+ -+ memset(ddata, 0, sizeof(struct padlock_digest_data)); -+ -+ return 1; -+} -+ -+static const EVP_MD padlock_sha1_md = { -+ NID_sha1, -+ NID_sha1WithRSAEncryption, -+ SHA_DIGEST_LENGTH, -+ 0, -+ padlock_sha1_init, -+ padlock_sha_update, -+ padlock_sha_final, -+ padlock_sha_copy, -+ padlock_sha_cleanup, -+ EVP_PKEY_RSA_method, -+ SHA_CBLOCK, -+ sizeof(struct padlock_digest_data), -+}; -+ -+static const EVP_MD padlock_sha224_md = { -+ NID_sha224, -+ NID_sha224WithRSAEncryption, -+ SHA224_DIGEST_LENGTH, -+ 0, -+ padlock_sha224_init, -+ padlock_sha_update, -+ padlock_sha_final, -+ padlock_sha_copy, -+ padlock_sha_cleanup, -+ EVP_PKEY_RSA_method, -+ SHA_CBLOCK, -+ sizeof(struct padlock_digest_data), -+}; -+ -+static const EVP_MD padlock_sha256_md = { -+ NID_sha256, -+ NID_sha256WithRSAEncryption, -+ SHA256_DIGEST_LENGTH, -+ 0, -+ padlock_sha256_init, -+ padlock_sha_update, -+ padlock_sha_final, -+ padlock_sha_copy, -+ padlock_sha_cleanup, -+ EVP_PKEY_RSA_method, -+ SHA_CBLOCK, -+ sizeof(struct padlock_digest_data), -+}; -+ -+static int padlock_digest_nids[] = { -+#if !defined(OPENSSL_NO_SHA) -+ NID_sha1, -+#endif -+#if !defined(OPENSSL_NO_SHA256) -+#if !defined(OPENSSL_NO_SHA224) -+ NID_sha224, -+#endif -+ NID_sha256, -+#endif -+}; -+ -+static int padlock_digest_nids_num = sizeof(padlock_digest_nids)/sizeof(padlock_digest_nids[0]); -+ -+static int -+padlock_digests (ENGINE *e, const EVP_MD **digest, const int **nids, int nid) -+{ -+ /* No specific digest => return a list of supported nids ... */ -+ if (!digest) { -+ *nids = padlock_digest_nids; -+ return padlock_digest_nids_num; -+ } -+ -+ /* ... or the requested "digest" otherwise */ -+ switch (nid) { -+#if !defined(OPENSSL_NO_SHA) -+ case NID_sha1: -+ *digest = &padlock_sha1_md; -+ break; -+#endif -+ -+ -+#if !defined(OPENSSL_NO_SHA256) -+#if !defined(OPENSSL_NO_SHA224) -+ case NID_sha224: -+ *digest = &padlock_sha224_md; -+ break; -+#endif /* OPENSSL_NO_SHA224 */ -+ -+ case NID_sha256: -+ *digest = &padlock_sha256_md; -+ break; -+#endif /* OPENSSL_NO_SHA256 */ -+ -+ default: -+ /* Sorry, we don't support this NID */ -+ *digest = NULL; -+ return 0; -+ } -+ -+ return 1; -+} -+ -+#endif /* OPENSSL_NO_SHA */ -+ -+#ifndef PADLOCK_NO_RNG - /* ===== Random Number Generator ===== */ - /* - * This code is not engaged. The reason is that it does not comply -@@ -1209,6 +1686,7 @@ - padlock_rand_bytes, /* pseudorand */ - padlock_rand_status, /* rand status */ - }; -+#endif /* PADLOCK_NO_RNG */ - - #endif /* COMPILE_HW_PADLOCK */ - diff --git a/src/patches/openswan-2.6.16-clear-1.patch b/src/patches/openswan-2.6.16-clear-1.patch deleted file mode 100644 index 41175c1..0000000 --- a/src/patches/openswan-2.6.16-clear-1.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- clear.org 2008-09-07 01:10:26.000000000 +0200 -+++ clear 2008-09-07 01:12:23.000000000 +0200 -@@ -3,18 +3,3 @@ - # - # See /usr/share/doc/openswan/policygroups.html for details. - # -- --# root name servers should be in the clear --192.58.128.30/32 --198.41.0.4/32 --192.228.79.201/32 --192.33.4.12/32 --128.8.10.90/32 --192.203.230.10/32 --192.5.5.241/32 --192.112.36.4/32 --128.63.2.53/32 --192.36.148.17/32 --193.0.14.129/32 --199.7.83.42/32 --202.12.27.33/32 diff --git a/src/patches/openswan-2.6.16-startklips-1.patch b/src/patches/openswan-2.6.16-startklips-1.patch deleted file mode 100644 index ff05bbb..0000000 --- a/src/patches/openswan-2.6.16-startklips-1.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- _startklips.old 2008-09-07 00:50:40.000000000 +0200 -+++ _startklips 2008-09-07 00:50:42.000000000 +0200 -@@ -146,23 +146,35 @@ - - # figure out ifconfig for interface - addr= -- eval `ifconfig $phys | -- awk '$1 == "inet" && $2 ~ /^addr:/ && $NF ~ /^Mask:/ { -- gsub(/:/, " ", $0) -- print "addr=" $3 -- other = $5 -- if ($4 == "Bcast") -- print "type=broadcast" -- else if ($4 == "P-t-P") -- print "type=pointopoint" -- else if (NF == 5) { -- print "type=" -- other = "" -- } else -- print "type=unknown" -- print "otheraddr=" other -- print "mask=" $NF -- }'` -+ eval `ip addr show $phys | awk '$3 ~ /BROADCAST|POINTOPOINT/ { -+ if ($3 ~ /BROADCAST/) -+ print "type=broadcast"; -+ else if ($3 ~ /POINTOPOINT/) -+ print "type=pointopoint"; -+ else { -+ print "type="; -+ } -+ }'` -+ -+ if [ "$type" == "broadcast" ]; then -+ eval `ip addr show $phys | awk '$1 == "inet" { gsub(///, " "); -+ print "addr=" $2; -+ print "mask=" $3; -+ print "otheraddr=" $5; -+ }'` -+ elif [ "$type" == "pointopoint" ]; then -+ eval `ip addr show $phys | awk '$1 == "inet" { gsub(///, " "); -+ print "addr=" $2; -+ print "mask=" $5; -+ print "otheraddr=" $4; -+ }'` -+ else -+ type="unknown" -+ otheraddr= -+ fi -+ -+ eval `whatmask /$mask | awk -F': ' '$1 ~ /^Netmask =/ { print "mask=" $2 }'` -+ - if test " $addr" = " " - then - echo "unable to determine address of `$phys'" -@@ -171,7 +183,7 @@ - if test " $type" = " unknown" - then - echo "`$phys' is of an unknown type" -- exit 1 -+ exit 1 - fi - if test " $omtu" != " " - then diff --git a/src/patches/openswan-2.6.16-updown.klips-1.patch b/src/patches/openswan-2.6.16-updown.klips-1.patch deleted file mode 100644 index f587dea..0000000 --- a/src/patches/openswan-2.6.16-updown.klips-1.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- /usr/lib/ipsec/_updown.klips 2007-10-14 00:56:15.000000000 +0200 -+++ /usr/lib/ipsec/_updown.klips 2007-10-27 00:00:26.000000000 +0200 -@@ -376,8 +376,8 @@ - # opportunistic encryption work around - # need to provide route that eclipses default, without - # replacing it. -- it="ip route $1 0.0.0.0/1 $parms2 $parms3 && -- ip route $1 128.0.0.0/1 $parms2 $parms3" -+ #it="ip route $1 0.0.0.0/1 $parms2 $parms3 && -+ # ip route $1 128.0.0.0/1 $parms2 $parms3" - ;; - *) it="ip route $1 $parms $parms2 $parms3" - ;; -@@ -401,13 +401,13 @@ - prepare-host:*|prepare-client:*) - # delete possibly-existing route (preliminary to adding a route) - case "$PLUTO_PEER_CLIENT" in -- "0.0.0.0/0") -+ "0.0.0.0/0") - # need to provide route that eclipses default, without - # replacing it. - parms1="0.0.0.0/1" - parms2="128.0.0.0/1" -- it="ip route delete $parms1 $IPROUTEARGS 2>&1 ; ip route delete $parms2 $IPROUTEARGS 2>&1" -- oops="`ip route delete $parms1 $IPROUTEARGS 2>&1 ; ip route delete $parms2 $IPROUTEARGS 2>&1`" -+ # it="ip route delete $parms1 $IPROUTEARGS 2>&1 ; ip route delete $parms2 $IPROUTEARGS 2>&1" -+ # oops="`ip route delete $parms1 $IPROUTEARGS 2>&1 ; ip route delete $parms2 $IPROUTEARGS 2>&1`" - ;; - *) - parms="$PLUTO_PEER_CLIENT $IPROUTEARGS" diff --git a/src/patches/openswan-2.6.23-updown-add_ipfire-snat.patch b/src/patches/openswan-2.6.23-updown-add_ipfire-snat.patch deleted file mode 100644 index 1663bbe..0000000 --- a/src/patches/openswan-2.6.23-updown-add_ipfire-snat.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- /usr/lib/ipsec/_updown 2009-10-08 01:43:58.000000000 +0200 -+++ /usr/lib/ipsec/_updown 2009-12-20 23:13:24.000000000 +0100 -@@ -128,6 +128,21 @@ - 2.*) ;; - esac - -+# add/remove rules to reach vpn-peers from ipfire -+src=$(/sbin/ip route|grep $PLUTO_MY_CLIENT|(read net key_dev dev key_proto key_kernel key_scope key_link key_src src; echo $src)) -+ -+case "$PLUTO_VERB" in -+"route-client") -+ logger -t "ipsec_updown" "iptables -t nat -A IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src" -+ /sbin/iptables -t nat -A IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src -+ ;; -+ -+"unroute-client") -+ logger -t "ipsec_updown" "iptables -t nat -D IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src" -+ /sbin/iptables -t nat -D IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src -+ ;; -+esac -+ - if [ -x /usr/lib/ipsec/_updown.${PLUTO_STACK} ] - then - exec /usr/lib/ipsec/_updown.${PLUTO_STACK} $* diff --git a/src/patches/openswan-2.6.24_noxmlto.patch b/src/patches/openswan-2.6.24_noxmlto.patch deleted file mode 100644 index dc0c30c..0000000 --- a/src/patches/openswan-2.6.24_noxmlto.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff -Naur openswan-2.6.24.org/programs/_confread/Makefile openswan-2.6.24/programs/_confread/Makefile ---- openswan-2.6.24.org/programs/_confread/Makefile 2010-01-10 02:34:38.000000000 +0100 -+++ openswan-2.6.24/programs/_confread/Makefile 2010-01-10 22:44:33.000000000 +0100 -@@ -16,7 +16,13 @@ - OPENSWANSRCDIR?=$(shell cd ../..; pwd) - include ${OPENSWANSRCDIR}/Makefile.inc - --EXTRA5MAN=ipsec.conf.5 -+SUBDIRS=doc lib programs testing -+ifeq ($(findstring $(SUBDIRS),doc),doc) -+ EXTRA5MAN=ipsec.conf.5 -+else -+ EXTRA5MAN= -+endif -+ - CONFFILES=ipsec.conf - EXCONFILES=ipsec.win2k.conf - SOURCEDIR=_confread -diff -Naur openswan-2.6.24.org/programs/pluto/Makefile openswan-2.6.24/programs/pluto/Makefile ---- openswan-2.6.24.org/programs/pluto/Makefile 2010-01-10 02:34:38.000000000 +0100 -+++ openswan-2.6.24/programs/pluto/Makefile 2010-01-10 22:51:15.000000000 +0100 -@@ -172,7 +172,7 @@ - all: $(BINNAMEPLUTO) $(BINNAMEADNSIFNEEDED) $(BINNAMEWHACK) #$(BINNAMEWHACKINIT) - programs: $(BINNAMEPLUTO) $(BINNAMEADNSIFNEEDED) $(BINNAMEWHACK) #$(BINNAMEWHACKINIT) - clean: cleanall --install: doinstall -+install: doinstall doinstalldoc - endif - - doinstall: all -@@ -188,6 +188,9 @@ - $(INSTALL) $(INSTBINFLAGS) $(BINNAMEPLUTO) $(BINNAMEWHACK) $(LIBEXECDIR) - #$(INSTALL) $(INSTSUIDFLAGS) $(BINNAMEWHACKINIT) $(LIBEXECDIR) - if $(USE_ADNS) ; then $(INSTALL) $(INSTBINFLAGS) $(BINNAMEADNS) $(LIBEXECDIR) ; fi -+ -+ifeq ($(findstring $(SUBDIRS),doc),doc) -+doinstalldoc: - $(INSTALL) $(INSTMANFLAGS) ${srcdir}pluto.8 $(PMANDIR)/ipsec_pluto.8 - sh ${OPENSWANSRCDIR}/packaging/utils/manlink ${srcdir}pluto.8 | \ - while read from to ; \ -@@ -201,10 +204,7 @@ - ln -s -f $$from $(FMANDIR)/$$to; \ - done - --install_file_list: -- @echo $(LIBEXECDIR)/$(BINNAMEPLUTO) -- @if $(USE_ADNS) ; then echo $(LIBDIR)/$(BINNAMEADNS) ; fi -- @echo $(LIBEXECDIR)/$(BINNAMEWHACK) -+install_file_listdoc: - @echo $(PMANDIR)/ipsec_pluto.8 - @sh ${OPENSWANSRCDIR}/packaging/utils/manlink pluto.8 | \ - while read from to; \ -@@ -217,6 +217,15 @@ - do \ - echo $(FMANDIR)/$$to; \ - done -+else -+doinstalldoc: -+install_file_listdoc: -+endif -+ -+install_file_list: install_file_listdoc -+ @echo $(LIBEXECDIR)/$(BINNAMEPLUTO) -+ @if $(USE_ADNS) ; then echo $(LIBDIR)/$(BINNAMEADNS) ; fi -+ @echo $(LIBEXECDIR)/$(BINNAMEWHACK) - - alg_info_test: alg_info_test.o ike_alg.o constants.o defs.o log.o db_ops.o crypto.o $(LIBDESLITE) $(OPENSWANLIB) - $(CC) -o $@ $^ $(LDFLAGS) $(LIBSPLUTO) diff --git a/src/patches/portmap-5beta-compilation_fixes-3.patch b/src/patches/portmap-5beta-compilation_fixes-3.patch deleted file mode 100644 index 45fc2c6..0000000 --- a/src/patches/portmap-5beta-compilation_fixes-3.patch +++ /dev/null @@ -1,705 +0,0 @@ -Submitted By: Kevin P. Fleming <kpfleming at linuxfromscratch dot org> -Date: 2004-05-02 -Initial Package Version: 5beta -Origin: http://archives.linuxfromscratch.org/mail-archives/blfs-dev/2003-January/001... -Description: The patch was created from the portmap modified package by Mark Heerdink. -This patch provides the following improvements: - * Link against dynamic tcp_wrappers. - * Create an install target for portmap. - * Compilation and security fixes. - * Documentation fixes. - -Originally created by Tushar Teredesai, updated by kpfleming to ensure -portmap will compile without tcp_wrappers installed. -diff -Naur portmap_5beta/BLURB portmap_5beta.gimli/BLURB ---- portmap_5beta/BLURB 1996-07-06 16:09:46.000000000 -0500 -+++ portmap_5beta.gimli/BLURB 2002-01-07 09:13:58.000000000 -0600 -@@ -1,3 +1,6 @@ -+ -+############################################################################### -+ - @(#) BLURB 1.5 96/07/06 23:09:45 - - This is the fifth replacement portmapper release. -diff -Naur portmap_5beta/Makefile portmap_5beta.gimli/Makefile ---- portmap_5beta/Makefile 1996-07-06 16:06:19.000000000 -0500 -+++ portmap_5beta.gimli/Makefile 2002-07-15 16:00:07.000000000 -0500 -@@ -8,7 +8,7 @@ - # if you disagree. See `man 3 syslog' for examples. Some syslog versions - # do not provide this flexibility. - # --FACILITY=LOG_MAIL -+FACILITY=LOG_DAEMON - - # To disable tcp-wrapper style access control, comment out the following - # macro definitions. Access control can also be turned off by providing -@@ -16,7 +16,8 @@ - # daemon, is always treated as an authorized host. - - HOSTS_ACCESS= -DHOSTS_ACCESS --WRAP_LIB = $(WRAP_DIR)/libwrap.a -+#WRAP_LIB = $(WRAP_DIR)/libwrap.a -+WRAP_LIB = -lwrap - - # Comment out if your RPC library does not allocate privileged ports for - # requests from processes with root privilege, or the new portmap will -@@ -71,7 +72,7 @@ - # With verbose logging on, HP-UX 9.x and AIX 4.1 leave zombies behind when - # SIGCHLD is not ignored. Enable next macro for a fix. - # --# ZOMBIES = -DIGNORE_SIGCHLD # AIX 4.x, HP-UX 9.x -+ZOMBIES = -DIGNORE_SIGCHLD # AIX 4.x, HP-UX 9.x - - # Uncomment the following macro if your system does not have u_long. - # -@@ -81,7 +82,7 @@ - # libwrap.a object library. WRAP_DIR should specify the directory with - # that library. - --WRAP_DIR= ../tcp_wrappers -+WRAP_DIR= $(TCPD_DIR) - - # Auxiliary object files that may be missing from your C library. - # -@@ -99,22 +100,31 @@ - - # Comment out if your compiler talks ANSI and understands const - # --CONST = -Dconst= -+#CONST = -Dconst= - - ### End of configurable stuff. - ############################## - -+GLIBC=$(shell grep -s -c __GLIBC__ /usr/include/features.h) -+ -+ifeq ($(GLIBC),0) -+LIBS += # -lbsd -+else -+LIBS += -lnsl -+endif -+ -+ - SHELL = /bin/sh - --COPT = $(CONST) -Dperror=xperror $(HOSTS_ACCESS) $(CHECK_PORT) \ -+COPT = $(CONST) $(HOSTS_ACCESS) $(CHECK_PORT) \ - $(SYS) -DFACILITY=$(FACILITY) $(ULONG) $(ZOMBIES) $(SA_LEN) \ - $(LOOPBACK) $(SETPGRP) --CFLAGS = $(COPT) -O $(NSARCHS) -+CFLAGS = -Wall $(COPT) -O2 $(NSARCHS) - OBJECTS = portmap.o pmap_check.o from_local.o $(AUX) - - all: portmap pmap_dump pmap_set - --portmap: $(OBJECTS) $(WRAP_DIR)/libwrap.a -+portmap: $(OBJECTS) # $(WRAP_DIR)/libwrap.a - $(CC) $(CFLAGS) -o $@ $(OBJECTS) $(WRAP_LIB) $(LIBS) - - pmap_dump: pmap_dump.c -@@ -129,6 +139,17 @@ - get_myaddress: get_myaddress.c - cc $(CFLAGS) -DTEST -o $@ get_myaddress.c $(LIBS) - -+install: all -+ install -o root -g root -m 0755 -s portmap ${BASEDIR}/sbin -+ install -o root -g root -m 0755 -s pmap_dump ${BASEDIR}/usr/sbin -+ install -o root -g root -m 0755 -s pmap_set ${BASEDIR}/usr/sbin -+ install -o root -g root -m 0644 portmap.8 ${BASEDIR}/usr/share/man/man8 -+ install -o root -g root -m 0644 pmap_dump.8 ${BASEDIR}/usr/share/man/man8 -+ install -o root -g root -m 0644 pmap_set.8 ${BASEDIR}/usr/share/man/man8 -+# cat README BLURB >${BASEDIR}/usr/share/doc/portmap/portmapper.txt -+# gzip -9f ${BASEDIR}/usr/share/doc/portmap/portmapper.txt -+ -+ - lint: - lint $(COPT) $(OBJECTS:%.o=%.c) - -diff -Naur portmap_5beta/daemon.c portmap_5beta.gimli/daemon.c ---- portmap_5beta/daemon.c 1992-06-11 15:53:12.000000000 -0500 -+++ portmap_5beta.gimli/daemon.c 2002-01-07 09:22:24.000000000 -0600 -@@ -36,16 +36,13 @@ - #endif /* LIBC_SCCS and not lint */ - - #include <fcntl.h> -- --/* From unistd.h */ --#define STDIN_FILENO 0 --#define STDOUT_FILENO 1 --#define STDERR_FILENO 2 -+#include <unistd.h> -+#include <sys/types.h> - - /* From paths.h */ - #define _PATH_DEVNULL "/dev/null" - --daemon(nochdir, noclose) -+int daemon(nochdir, noclose) - int nochdir, noclose; - { - int cpid; -diff -Naur portmap_5beta/from_local.c portmap_5beta.gimli/from_local.c ---- portmap_5beta/from_local.c 1996-05-31 08:52:58.000000000 -0500 -+++ portmap_5beta.gimli/from_local.c 2002-01-07 09:25:49.000000000 -0600 -@@ -35,7 +35,7 @@ - * Mountain View, California 94043 - */ - --#ifndef lint -+#ifdef lint - static char sccsid[] = "@(#) from_local.c 1.3 96/05/31 15:52:57"; - #endif - -@@ -51,6 +51,9 @@ - #include <net/if.h> - #include <sys/ioctl.h> - #include <syslog.h> -+#include <stdlib.h> -+#include <string.h> -+#include <unistd.h> - - #ifndef TRUE - #define TRUE 1 -@@ -96,7 +99,7 @@ - - /* find_local - find all IP addresses for this host */ - --find_local() -+int find_local() - { - struct ifconf ifc; - struct ifreq ifreq; -@@ -154,7 +157,7 @@ - - /* from_local - determine whether request comes from the local system */ - --from_local(addr) -+int from_local(addr) - struct sockaddr_in *addr; - { - int i; -diff -Naur portmap_5beta/pmap_check.c portmap_5beta.gimli/pmap_check.c ---- portmap_5beta/pmap_check.c 1996-07-07 03:49:10.000000000 -0500 -+++ portmap_5beta.gimli/pmap_check.c 2002-01-07 09:37:58.000000000 -0600 -@@ -32,7 +32,7 @@ - * Computing Science, Eindhoven University of Technology, The Netherlands. - */ - --#ifndef lint -+#ifdef lint - static char sccsid[] = "@(#) pmap_check.c 1.8 96/07/07 10:49:10"; - #endif - -@@ -45,6 +45,11 @@ - #include <netinet/in.h> - #include <rpc/rpcent.h> - #endif -+#include <sys/types.h> -+#include <unistd.h> -+#ifdef HOSTS_ACCESS -+#include <tcpd.h> -+#endif - - extern char *inet_ntoa(); - -@@ -110,7 +113,7 @@ - - /* check_default - additional checks for NULL, DUMP, GETPORT and unknown */ - --check_default(addr, proc, prog) -+int check_default(addr, proc, prog) - struct sockaddr_in *addr; - u_long proc; - u_long prog; -@@ -128,7 +131,7 @@ - - /* check_privileged_port - additional checks for privileged-port updates */ - --check_privileged_port(addr, proc, prog, port) -+int check_privileged_port(addr, proc, prog, port) - struct sockaddr_in *addr; - u_long proc; - u_long prog; -@@ -173,7 +176,7 @@ - - #else - --check_setunset(addr, proc, prog, port) -+int check_setunset(addr, proc, prog, port) - struct sockaddr_in *addr; - u_long proc; - u_long prog; -@@ -197,7 +200,7 @@ - - /* check_callit - additional checks for forwarded requests */ - --check_callit(addr, proc, prog, aproc) -+int check_callit(addr, proc, prog, aproc) - struct sockaddr_in *addr; - u_long proc; - u_long prog; -@@ -249,13 +252,13 @@ - }; - struct proc_map *procp; - static struct proc_map procmap[] = { -- PMAPPROC_CALLIT, "callit", -- PMAPPROC_DUMP, "dump", -- PMAPPROC_GETPORT, "getport", -- PMAPPROC_NULL, "null", -- PMAPPROC_SET, "set", -- PMAPPROC_UNSET, "unset", -- 0, 0, -+ { PMAPPROC_CALLIT, "callit" }, -+ { PMAPPROC_DUMP, "dump" }, -+ { PMAPPROC_GETPORT, "getport" }, -+ { PMAPPROC_NULL, "null" }, -+ { PMAPPROC_SET, "set" }, -+ { PMAPPROC_UNSET, "unset" }, -+ { 0, 0 } - }; - - /* -@@ -269,7 +272,7 @@ - - if (prognum == 0) { - progname = ""; -- } else if (rpc = getrpcbynumber((int) prognum)) { -+ } else if ((rpc = getrpcbynumber((int) prognum)) != NULL) { - progname = rpc->r_name; - } else { - sprintf(progname = progbuf, "%lu", prognum); -diff -Naur portmap_5beta/pmap_dump.8 portmap_5beta.gimli/pmap_dump.8 ---- portmap_5beta/pmap_dump.8 1969-12-31 18:00:00.000000000 -0600 -+++ portmap_5beta.gimli/pmap_dump.8 2002-01-07 09:13:58.000000000 -0600 -@@ -0,0 +1,24 @@ -+.TH PMAP_DUMP 8 "21th June 1997" Linux "Linux Programmer's Manual" -+.SH NAME -+pmap_dump - print a list of all registered RPC programs -+.SH SYNOPSIS -+.B pmap_dump -+.SH DESCRIPTION -+The -+.B pmap_dump -+command can be used to restart a running portmapper or to print -+a list of all registered RPC programs on the local host. If you -+want to use the program to restart the portmapper you have to -+redirect the output of -+.B pmap_dump -+to a file. After this you can restart the portmapper and restore -+the list of the registered RPC programs by feeding the output -+of -+.B pmap_dump -+to the -+.B pmap_set -+command. -+.SH SEE ALSO -+.BR pmap_set (8), -+.BR rpc.portmap (8) -+ -diff -Naur portmap_5beta/pmap_dump.c portmap_5beta.gimli/pmap_dump.c ---- portmap_5beta/pmap_dump.c 1992-06-11 15:53:16.000000000 -0500 -+++ portmap_5beta.gimli/pmap_dump.c 2002-01-07 09:20:19.000000000 -0600 -@@ -5,7 +5,7 @@ - * Computing Science, Eindhoven University of Technology, The Netherlands. - */ - --#ifndef lint -+#ifdef lint - static char sccsid[] = "@(#) pmap_dump.c 1.1 92/06/11 22:53:15"; - #endif - -@@ -23,7 +23,20 @@ - - static char *protoname(); - --main(argc, argv) -+#ifndef INADDR_LOOPBACK -+#define INADDR_LOOPBACK ntohl(inet_addr("127.0.0.1")) -+#endif -+ -+static void get_myloopaddress(addrp) -+struct sockaddr_in *addrp; -+{ -+ memset((char *) addrp, 0, sizeof(*addrp)); -+ addrp->sin_family = AF_INET; -+ addrp->sin_port = htons(PMAPPORT); -+ addrp->sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+} -+ -+int main(argc, argv) - int argc; - char **argv; - { -@@ -31,7 +44,7 @@ - register struct pmaplist *list; - register struct rpcent *rpc; - -- get_myaddress(&addr); -+ get_myloopaddress(&addr); - - for (list = pmap_getmaps(&addr); list; list = list->pml_next) { - rpc = getrpcbynumber((int) list->pml_map.pm_prog); -diff -Naur portmap_5beta/pmap_set.8 portmap_5beta.gimli/pmap_set.8 ---- portmap_5beta/pmap_set.8 1969-12-31 18:00:00.000000000 -0600 -+++ portmap_5beta.gimli/pmap_set.8 2002-01-07 09:13:58.000000000 -0600 -@@ -0,0 +1,24 @@ -+.TH PMAP_SET 8 "21th June 1997" Linux "Linux Programmer's Manual" -+.SH NAME -+pmap_set - set the list of registered RPC programs -+.SH SYNOPSIS -+.B pmap_set -+.SH DESCRIPTION -+The -+.B pmap_set -+command can be used to restart a running portmapper or to set -+the list of registered RPC programs on the local host. If you -+want to use the program to restart the portmapper you have to -+redirect the output of -+.B pmap_dump -+to a file. After this you can restart the portmapper and restore -+the list of the registered RPC programs by feeding the output -+of -+.B pmap_dump -+to the -+.B pmap_set -+command. -+.SH SEE ALSO -+.BR pmap_dump (8), -+.BR rpc.portmap (8) -+ -diff -Naur portmap_5beta/pmap_set.c portmap_5beta.gimli/pmap_set.c ---- portmap_5beta/pmap_set.c 1996-07-06 16:06:23.000000000 -0500 -+++ portmap_5beta.gimli/pmap_set.c 2002-01-07 09:22:10.000000000 -0600 -@@ -5,7 +5,7 @@ - * Computing Science, Eindhoven University of Technology, The Netherlands. - */ - --#ifndef lint -+#ifdef lint - static char sccsid[] = "@(#) pmap_set.c 1.2 96/07/06 23:06:23"; - #endif - -@@ -17,7 +17,9 @@ - #include <rpc/rpc.h> - #include <rpc/pmap_clnt.h> - --main(argc, argv) -+int parse_line(char *buf, u_long *prog, u_long *vers, int *prot, unsigned *port); -+ -+int main(argc, argv) - int argc; - char **argv; - { -@@ -40,16 +42,16 @@ - - /* parse_line - convert line to numbers */ - --parse_line(buf, prog, vers, prot, port) -+int parse_line(buf, prog, vers, prot, port) - char *buf; - u_long *prog; - u_long *vers; - int *prot; - unsigned *port; - { -- char proto_name[BUFSIZ]; -+ char proto_name[256]; - -- if (sscanf(buf, "%lu %lu %s %u", prog, vers, proto_name, port) != 4) { -+ if (sscanf(buf, "%lu %lu %255s %u", prog, vers, proto_name, port) != 4) { - return (0); - } - if (strcmp(proto_name, "tcp") == 0) { -diff -Naur portmap_5beta/portmap.8 portmap_5beta.gimli/portmap.8 ---- portmap_5beta/portmap.8 1969-12-31 18:00:00.000000000 -0600 -+++ portmap_5beta.gimli/portmap.8 2002-01-07 09:13:58.000000000 -0600 -@@ -0,0 +1,146 @@ -+." Copyright (c) 1987 Sun Microsystems -+." Copyright (c) 1990, 1991 The Regents of the University of California. -+." All rights reserved. -+." -+." Redistribution and use in source and binary forms, with or without -+." modification, are permitted provided that the following conditions -+." are met: -+." 1. Redistributions of source code must retain the above copyright -+." notice, this list of conditions and the following disclaimer. -+." 2. Redistributions in binary form must reproduce the above copyright -+." notice, this list of conditions and the following disclaimer in the -+." documentation and/or other materials provided with the distribution. -+." 3. All advertising materials mentioning features or use of this software -+." must display the following acknowledgement: -+." This product includes software developed by the University of -+." California, Berkeley and its contributors. -+." 4. Neither the name of the University nor the names of its contributors -+." may be used to endorse or promote products derived from this software -+." without specific prior written permission. -+." -+." THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+." ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+." IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+." ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+." FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+." DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+." OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+." HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+." LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+." OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+." SUCH DAMAGE. -+." -+." from: @(#)portmap.8 5.3 (Berkeley) 3/16/91 -+." $Id: portmap-5beta-compilation_fixes-3.patch,v 1.1 2004/06/08 04:53:09 jim Exp $ -+." -+.Dd March 16, 1991 -+.Dt PORTMAP 8 -+.Os BSD 4.3 -+.Sh NAME -+.Nm portmap -+.Nd -+.Tn DARPA -+port to -+.Tn RPC -+program number mapper -+.Sh SYNOPSIS -+.Nm portmap -+.Op Fl d -+.Op Fl v -+.Sh DESCRIPTION -+.Nm Portmap -+is a server that converts -+.Tn RPC -+program numbers into -+.Tn DARPA -+protocol port numbers. -+It must be running in order to make -+.Tn RPC -+calls. -+.Pp -+When an -+.Tn RPC -+server is started, it will tell -+.Nm portmap -+what port number it is listening to, and what -+.Tn RPC -+program numbers it is prepared to serve. -+When a client wishes to make an -+.Tn RPC -+call to a given program number, -+it will first contact -+.Nm portmap -+on the server machine to determine -+the port number where -+.Tn RPC -+packets should be sent. -+.Pp -+.Nm Portmap -+must be started before any -+.Tn RPC -+servers are invoked. -+.Pp -+Normally -+.Nm portmap -+forks and dissociates itself from the terminal -+like any other daemon. -+.Nm Portmap -+then logs errors using -+.Xr syslog 3 . -+.Pp -+Option available: -+.Bl -tag -width Ds -+.It Fl d -+(debug) prevents -+.Nm portmap -+from running as a daemon, -+and causes errors and debugging information -+to be printed to the standard error output. -+.It Fl v -+(verbose) run -+.Nm portmap -+in verbose mode. -+.El -+ -+This -+.Nm portmap -+version is protected by the -+.Nm tcp_wrapper -+library. You have to give the clients access to -+.Nm portmap -+if they should be allowed to use it. To allow connects from clients of -+the .bar.com domain you could use the following line in /etc/hosts.allow: -+ -+portmap: .bar.com -+ -+You have to use the daemon name -+.Nm portmap -+for the daemon name (even if the binary has a different name). For the -+client names you can only use the keyword ALL or IP addresses (NOT -+host or domain names). -+ -+For further information please have a look at the -+.Xr tcpd 8 , -+.Xr hosts_allow 5 -+and -+.Xr hosts_access 5 -+manual pages. -+ -+.Sh SEE ALSO -+.Xr inetd.conf 5 , -+.Xr rpcinfo 8 , -+.Xr pmap_set 8 , -+.Xr pmap_dump 8 , -+.Xr inetd 8 -+.Xr tcpd 8 -+.Xr hosts_access 5 -+.Xr hosts_options 5 -+.Sh BUGS -+If -+.Nm portmap -+crashes, all servers must be restarted. -+.Sh HISTORY -+The -+.Nm -+command appeared in -+.Bx 4.3 -diff -Naur portmap_5beta/portmap.c portmap_5beta.gimli/portmap.c ---- portmap_5beta/portmap.c 1996-07-06 16:06:24.000000000 -0500 -+++ portmap_5beta.gimli/portmap.c 2002-01-07 09:26:41.000000000 -0600 -@@ -37,7 +37,7 @@ - All rights reserved.\n"; - #endif /* not lint */ - --#ifndef lint -+#ifdef lint - static char sccsid[] = "@(#) portmap.c 1.6 96/07/06 23:06:23"; - #endif /* not lint */ - -@@ -80,6 +80,9 @@ - * Mountain View, California 94043 - */ - -+#if defined(__GLIBC__) -+#include <rpc/xdr.h> -+#endif /* __GLIBC__ */ - #include <rpc/rpc.h> - #include <rpc/pmap_prot.h> - #include <stdio.h> -@@ -94,6 +97,8 @@ - #ifdef SYSV40 - #include <netinet/in.h> - #endif -+#include <sys/types.h> -+#include <unistd.h> - - extern char *strerror(); - #include <stdlib.h> -@@ -148,7 +153,7 @@ - #endif - #endif - --main(argc, argv) -+int main(argc, argv) - int argc; - char **argv; - { -@@ -350,7 +355,7 @@ - */ - /* remote host authorization check */ - check_default(svc_getcaller(xprt), rqstp->rq_proc, (u_long) 0); -- if (!svc_sendreply(xprt, xdr_void, (caddr_t)0) && debugging) { -+ if (!svc_sendreply(xprt, (xdrproc_t) xdr_void, (caddr_t)0) && debugging) { - abort(); - } - break; -@@ -359,7 +364,7 @@ - /* - * Set a program,version to port mapping - */ -- if (!svc_getargs(xprt, xdr_pmap, ®)) -+ if (!svc_getargs(xprt, (xdrproc_t) xdr_pmap, (caddr_t) ®)) - svcerr_decode(xprt); - else { - /* reject non-local requests, protect priv. ports */ -@@ -401,7 +406,7 @@ - ans = 1; - } - done: -- if ((!svc_sendreply(xprt, xdr_int, (caddr_t)&ans)) && -+ if ((!svc_sendreply(xprt, (xdrproc_t) xdr_int, (caddr_t)&ans)) && - debugging) { - (void) fprintf(stderr, "svc_sendreply\n"); - abort(); -@@ -413,7 +418,7 @@ - /* - * Remove a program,version to port mapping. - */ -- if (!svc_getargs(xprt, xdr_pmap, ®)) -+ if (!svc_getargs(xprt, (xdrproc_t) xdr_pmap, (caddr_t) ®)) - svcerr_decode(xprt); - else { - ans = 0; -@@ -447,7 +452,7 @@ - prevpml->pml_next = pml; - free(t); - } -- if ((!svc_sendreply(xprt, xdr_int, (caddr_t)&ans)) && -+ if ((!svc_sendreply(xprt, (xdrproc_t) xdr_int, (caddr_t)&ans)) && - debugging) { - (void) fprintf(stderr, "svc_sendreply\n"); - abort(); -@@ -459,7 +464,7 @@ - /* - * Lookup the mapping for a program,version and return its port - */ -- if (!svc_getargs(xprt, xdr_pmap, ®)) -+ if (!svc_getargs(xprt, (xdrproc_t) xdr_pmap, (caddr_t) ®)) - svcerr_decode(xprt); - else { - /* remote host authorization check */ -@@ -474,7 +479,7 @@ - port = fnd->pml_map.pm_port; - else - port = 0; -- if ((!svc_sendreply(xprt, xdr_int, (caddr_t)&port)) && -+ if ((!svc_sendreply(xprt, (xdrproc_t) xdr_int, (caddr_t)&port)) && - debugging) { - (void) fprintf(stderr, "svc_sendreply\n"); - abort(); -@@ -486,7 +491,7 @@ - /* - * Return the current set of mapped program,version - */ -- if (!svc_getargs(xprt, xdr_void, NULL)) -+ if (!svc_getargs(xprt, (xdrproc_t) xdr_void, (caddr_t) NULL)) - svcerr_decode(xprt); - else { - /* remote host authorization check */ -@@ -497,7 +502,7 @@ - } else { - p = pmaplist; - } -- if ((!svc_sendreply(xprt, xdr_pmaplist, -+ if ((!svc_sendreply(xprt, (xdrproc_t) xdr_pmaplist, - (caddr_t)&p)) && debugging) { - (void) fprintf(stderr, "svc_sendreply\n"); - abort(); -@@ -645,7 +650,7 @@ - timeout.tv_sec = 5; - timeout.tv_usec = 0; - a.rmt_args.args = buf; -- if (!svc_getargs(xprt, xdr_rmtcall_args, &a)) -+ if (!svc_getargs(xprt, (xdrproc_t) xdr_rmtcall_args, (caddr_t) &a)) - return; - /* host and service access control */ - if (!check_callit(svc_getcaller(xprt), -@@ -674,9 +679,9 @@ - au->aup_uid, au->aup_gid, au->aup_len, au->aup_gids); - } - a.rmt_port = (u_long)port; -- if (clnt_call(client, a.rmt_proc, xdr_opaque_parms, &a, -- xdr_len_opaque_parms, &a, timeout) == RPC_SUCCESS) { -- svc_sendreply(xprt, xdr_rmtcall_result, (caddr_t)&a); -+ if (clnt_call(client, a.rmt_proc, (xdrproc_t) xdr_opaque_parms, (char*) &a, -+ (xdrproc_t) xdr_len_opaque_parms, (char*) &a, timeout) == RPC_SUCCESS) { -+ svc_sendreply(xprt, (xdrproc_t) xdr_rmtcall_result, (caddr_t)&a); - } - AUTH_DESTROY(client->cl_auth); - clnt_destroy(client); diff --git a/src/patches/portmap-5beta-glibc_errno_fix-1.patch b/src/patches/portmap-5beta-glibc_errno_fix-1.patch deleted file mode 100644 index e38b7ae..0000000 --- a/src/patches/portmap-5beta-glibc_errno_fix-1.patch +++ /dev/null @@ -1,17 +0,0 @@ -Submitted By: Tushar Teredesai tushar@linuxfromscratch.org -Date: 2003-10-04 -Initial Package Version: 5beta -Origin: None -Description: Fix compilation with recent glibc versions. ---- portmap_5beta/portmap.c 2003-03-10 12:32:26.000000000 -0600 -+++ portmap_5beta/portmap.c.new 2003-03-10 12:38:01.000000000 -0600 -@@ -129,7 +129,8 @@ - static void callit(); - struct pmaplist *pmaplist; - int debugging = 0; --extern int errno; -+#include <errno.h> -+/* extern int errno; */ - - #include "pmap_check.h" - diff --git a/src/patches/skbuff-xen-imq.diff b/src/patches/skbuff-xen-imq.diff deleted file mode 100644 index 8db010d..0000000 --- a/src/patches/skbuff-xen-imq.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- linux-2.6.27.21/include/linux/skbuff.h 2009-04-03 10:39:10.000000000 +0000 -+++ linux-2.6.27.21/include/linux/skbuff.h 2009-04-03 10:41:59.000000000 +0000 -@@ -330,11 +330,17 @@ - #if defined(CONFIG_MAC80211) || defined(CONFIG_MAC80211_MODULE) - __u8 do_not_encrypt:1; - #endif -- /* 0/13/14 bit hole */ -+ - #if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) - __u8 imq_flags:IMQ_F_BITS; - #endif - -+#ifdef CONFIG_XEN -+ __u8 proto_data_valid:1, -+ proto_csum_blank:1; -+#endif -+ /* 10-16 bit hole */ -+ - #ifdef CONFIG_NET_DMA - dma_cookie_t dma_cookie; - #endif diff --git a/src/patches/strongswan-4.3.6_ipfire.patch b/src/patches/strongswan-4.3.6_ipfire.patch deleted file mode 100644 index 26cc357..0000000 --- a/src/patches/strongswan-4.3.6_ipfire.patch +++ /dev/null @@ -1,264 +0,0 @@ -diff -Naur strongswan-4.3.6.org/src/_updown/_updown.in strongswan-4.3.6/src/_updown/_updown.in ---- strongswan-4.3.6.org/src/_updown/_updown.in 2009-09-27 21:50:42.000000000 +0200 -+++ strongswan-4.3.6/src/_updown/_updown.in 2010-03-27 16:32:13.000000000 +0100 -@@ -374,12 +374,12 @@ - # connection to me, with (left/right)firewall=yes, coming up - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 - # - # log IPsec host connection setup - if [ $VPN_LOGGING ] -@@ -387,10 +387,10 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" -+ "host+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" - else - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" -+ "host+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" - fi - fi - ;; -@@ -398,12 +398,12 @@ - # connection to me, with (left/right)firewall=yes, going down - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 - # - # log IPsec host connection teardown - if [ $VPN_LOGGING ] -@@ -411,10 +411,10 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" -+ "host- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" - else - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" -+ "host- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" - fi - fi - ;; -@@ -424,10 +424,10 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] - then -- iptables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT -- iptables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 -+ iptables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - fi -@@ -436,12 +436,12 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ -- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT -+ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 - fi - # - # log IPsec client connection setup -@@ -450,12 +450,27 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - else - logger -t $TAG -p $FAC_PRIO \ -- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - fi - fi -+ -+ # -+ # Open Firewall for AH + ESP Traffic -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p AH \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p ESP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ if [ $VPN_LOGGING ] -+ then -+ logger -t $TAG -p $FAC_PRIO \ -+ "ESP+ $PLUTO_PEER -- $PLUTO_ME" -+ fi -+ - ;; - down-client:iptables) - # connection to client subnet, with (left/right)firewall=yes, going down -@@ -463,11 +478,11 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] - then -- iptables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ -- $IPSEC_POLICY_OUT -j ACCEPT -- iptables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ $IPSEC_POLICY_OUT -j MARK --set-mark 50 -+ iptables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -@@ -477,14 +492,14 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ -- $IPSEC_POLICY_OUT -j ACCEPT -+ $IPSEC_POLICY_OUT -j MARK --set-mark 50 - fi - # - # log IPsec client connection teardown -@@ -493,12 +508,27 @@ - if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] - then - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - else - logger -t $TAG -p $FAC_PRIO -- \ -- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" -+ "client- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" - fi - fi -+ -+ # -+ # Close Firewall for AH+ESP Traffic -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p AH \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p ESP \ -+ -s $PLUTO_PEER $S_PEER_PORT \ -+ -d $PLUTO_ME $D_MY_PORT -j ACCEPT -+ if [ $VPN_LOGGING ] -+ then -+ logger -t $TAG -p $FAC_PRIO \ -+ "ESP- $PLUTO_PEER -- $PLUTO_ME" -+ fi -+ - ;; - # - # IPv6 -@@ -533,10 +563,10 @@ - # connection to me, with (left/right)firewall=yes, coming up - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT - # -@@ -557,10 +587,10 @@ - # connection to me, with (left/right)firewall=yes, going down - # This is used only by the default updown script, not by your custom - # ones, so do not mess with it; see CAUTION comment up at top. -- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT - # -@@ -583,10 +613,10 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] - then -- ip6tables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT -- ip6tables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT - fi -@@ -595,10 +625,10 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT - fi -@@ -622,11 +652,11 @@ - # ones, so do not mess with it; see CAUTION comment up at top. - if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] - then -- ip6tables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ - $IPSEC_POLICY_OUT -j ACCEPT -- ip6tables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -@@ -636,11 +666,11 @@ - # or sometimes host access via the internal IP is needed - if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] - then -- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ -+ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ - -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ - -d $PLUTO_MY_CLIENT $D_MY_PORT \ - $IPSEC_POLICY_IN -j ACCEPT -- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ -+ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ - -s $PLUTO_MY_CLIENT $S_MY_PORT \ - -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ - $IPSEC_POLICY_OUT -j ACCEPT diff --git a/src/patches/strongswan-4.4.0_ipfire.patch b/src/patches/strongswan-4.4.0_ipfire.patch new file mode 100644 index 0000000..298a1e3 --- /dev/null +++ b/src/patches/strongswan-4.4.0_ipfire.patch @@ -0,0 +1,286 @@ +diff -Naur strongswan-4.4.0.org/src/_updown/_updown.in strongswan-4.4.0/src/_updown/_updown.in +--- strongswan-4.4.0.org/src/_updown/_updown.in 2010-03-15 21:52:51.000000000 +0100 ++++ strongswan-4.4.0/src/_updown/_updown.in 2010-05-15 13:33:40.000000000 +0200 +@@ -374,12 +374,12 @@ + # connection to me, with (left/right)firewall=yes, coming up + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 + # + # log IPsec host connection setup + if [ $VPN_LOGGING ] +@@ -387,10 +387,10 @@ + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" ++ "host+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" + else + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" ++ "host+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" + fi + fi + ;; +@@ -398,12 +398,12 @@ + # connection to me, with (left/right)firewall=yes, going down + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j MARK --set-mark 50 + # + # log IPsec host connection teardown + if [ $VPN_LOGGING ] +@@ -411,10 +411,10 @@ + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" ++ "host- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME" + else + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" ++ "host- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME" + fi + fi + ;; +@@ -424,10 +424,10 @@ + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] + then +- iptables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT +- iptables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 ++ iptables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT + fi +@@ -436,12 +436,12 @@ + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- iptables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- iptables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ +- -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT ++ -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j MARK --set-mark 50 + fi + # + # log IPsec client connection setup +@@ -450,12 +450,38 @@ + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client+ $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + else + logger -t $TAG -p $FAC_PRIO \ +- "+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client+ $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + fi + fi ++ ++ # ++ # Open Firewall for IPinIP + AH + ESP Traffic ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p IP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p AH \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p ESP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ if [ $VPN_LOGGING ] ++ then ++ logger -t $TAG -p $FAC_PRIO \ ++ "tunnel+ $PLUTO_PEER -- $PLUTO_ME" ++ fi ++ ++ # Add source nat so also the gateway can access the other nets ++ src=$(/sbin/ip route|grep $PLUTO_MY_CLIENT|(read net key_dev dev key_proto key_kernel key_scope key_link key_src src; echo $src)) ++ iptables -t nat -A IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src ++ logger -t $TAG -p $FAC_PRIO \ ++ "snat+ $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" ++ ++ # Flush routing cache ++ ip route flush cache + ;; + down-client:iptables) + # connection to client subnet, with (left/right)firewall=yes, going down +@@ -463,11 +489,11 @@ + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/32" ] + then +- iptables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ +- $IPSEC_POLICY_OUT -j ACCEPT +- iptables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ $IPSEC_POLICY_OUT -j MARK --set-mark 50 ++ iptables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ + $IPSEC_POLICY_IN -j ACCEPT +@@ -477,14 +503,14 @@ + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- iptables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ + $IPSEC_POLICY_IN -j ACCEPT +- iptables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ iptables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ +- $IPSEC_POLICY_OUT -j ACCEPT ++ $IPSEC_POLICY_OUT -j MARK --set-mark 50 + fi + # + # log IPsec client connection teardown +@@ -493,12 +519,38 @@ + if [ "$PLUTO_PEER_CLIENT" = "$PLUTO_PEER/32" ] + then + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client- $PLUTO_PEER_ID $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + else + logger -t $TAG -p $FAC_PRIO -- \ +- "- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" ++ "client- $PLUTO_PEER_ID $PLUTO_PEER_CLIENT == $PLUTO_PEER -- $PLUTO_ME == $PLUTO_MY_CLIENT" + fi + fi ++ ++ # ++ # Close Firewall for IPinIP + AH + ESP Traffic ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p IP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p AH \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ iptables -D IPSECINPUT -i $PLUTO_INTERFACE -p ESP \ ++ -s $PLUTO_PEER $S_PEER_PORT \ ++ -d $PLUTO_ME $D_MY_PORT -j ACCEPT ++ if [ $VPN_LOGGING ] ++ then ++ logger -t $TAG -p $FAC_PRIO \ ++ "tunnel- $PLUTO_PEER -- $PLUTO_ME" ++ fi ++ ++ # remove source nat ++ src=$(/sbin/ip route|grep $PLUTO_MY_CLIENT|(read net key_dev dev key_proto key_kernel key_scope key_link key_src src; echo $src)) ++ iptables -t nat -D IPSECNAT -o $PLUTO_INTERFACE -s $PLUTO_ME -d $PLUTO_PEER_CLIENT -j SNAT --to $src ++ logger -t $TAG -p $FAC_PRIO \ ++ "snat- $PLUTO_INTERFACE-$PLUTO_ME : $PLUTO_PEER_CLIENT - $src" ++ ++ # Flush routing cache ++ ip route flush cache + ;; + # + # IPv6 +@@ -533,10 +585,10 @@ + # connection to me, with (left/right)firewall=yes, coming up + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT + # +@@ -557,10 +609,10 @@ + # connection to me, with (left/right)firewall=yes, going down + # This is used only by the default updown script, not by your custom + # ones, so do not mess with it; see CAUTION comment up at top. +- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_ME $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_ME $S_MY_PORT $IPSEC_POLICY_OUT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT -j ACCEPT + # +@@ -583,10 +635,10 @@ + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] + then +- ip6tables -I FORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -I IPSECFORWARD 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT +- ip6tables -I FORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -I IPSECFORWARD 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT + fi +@@ -595,10 +647,10 @@ + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- ip6tables -I INPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -I IPSECINPUT 1 -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -I OUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -I IPSECOUTPUT 1 -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT $IPSEC_POLICY_OUT -j ACCEPT + fi +@@ -622,11 +674,11 @@ + # ones, so do not mess with it; see CAUTION comment up at top. + if [ "$PLUTO_PEER_CLIENT" != "$PLUTO_MY_SOURCEIP/128" ] + then +- ip6tables -D FORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -D IPSECFORWARD -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ + $IPSEC_POLICY_OUT -j ACCEPT +- ip6tables -D FORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -D IPSECFORWARD -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ + $IPSEC_POLICY_IN -j ACCEPT +@@ -636,11 +688,11 @@ + # or sometimes host access via the internal IP is needed + if [ -n "$PLUTO_MY_SOURCEIP" -o -n "$PLUTO_HOST_ACCESS" ] + then +- ip6tables -D INPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ ++ ip6tables -D IPSECINPUT -i $PLUTO_INTERFACE -p $PLUTO_MY_PROTOCOL \ + -s $PLUTO_PEER_CLIENT $S_PEER_PORT \ + -d $PLUTO_MY_CLIENT $D_MY_PORT \ + $IPSEC_POLICY_IN -j ACCEPT +- ip6tables -D OUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ ++ ip6tables -D IPSECOUTPUT -o $PLUTO_INTERFACE -p $PLUTO_PEER_PROTOCOL \ + -s $PLUTO_MY_CLIENT $S_MY_PORT \ + -d $PLUTO_PEER_CLIENT $D_PEER_PORT \ + $IPSEC_POLICY_OUT -j ACCEPT diff --git a/src/patches/suse_xen_series.conf b/src/patches/suse_xen_series.conf deleted file mode 100644 index 625b6d2..0000000 --- a/src/patches/suse_xen_series.conf +++ /dev/null @@ -1,1751 +0,0 @@ -# Kernel patches configuration file -# vim: set ts=8 sw=8 noet: -# -# There are three kinds of rules (see guards.1 for details): -# +symbol include this patch if symbol is defined; otherwise exclude. -# -symbol exclude this patch if symbol is defined; otherwise include. -# - exclude this patch. -# -# Using symbols means that an entirely different source tree will be -# generated depending on which symbols are defined. This used to be -# a good thing when arch-specific patches contained conflicts with other -# patches, but we now have a policy that patches must build everywhere. -# The result is a unified source tree that allows us to do neat things -# like ship kernel module packages. Creating a divergent tree breaks -# these # so you'd better have an extraordinary reason for using them. -# For example, the openSUSE 10.3 kernel uses them for segregating the -# -rt patches until they can be integrated completely, and these are -# only applied at the very end of the series. -# -# The most common use in recent kernels is to disable a patch with a -# username as the symbol to indicate responsbility. Another use is -# to check in a patch for testing, but have it disabled in all but your -# own build environment. - - ######################################################## - # latest standard kernel patches - # DO NOT MODIFY THEM! - # Send separate patches upstream if you find a problem... - ######################################################## -# patches.kernel.org/patch-2.6.32.1 -# patches.kernel.org/patch-2.6.32.1-2 -# patches.kernel.org/patch-2.6.32.2-3 -# patches.kernel.org/patch-2.6.32.3-4 -# patches.kernel.org/patch-2.6.32.4-5 -# patches.kernel.org/patch-2.6.32.5-6 -# patches.kernel.org/patch-2.6.32.6-7 -# patches.kernel.org/patch-2.6.32.7-8 -# patches.kernel.org/patch-2.6.32.8-9 -# patches.kernel.org/patch-2.6.32.9-10 - - ######################################################## - # Build fixes that apply to the vanilla kernel too. - # They must be placed in patches.kernel.org to be - # picked up for the -vanilla flavor. This is cheating, - # since they're not actually upstream, but if the - # packages don't build, that's pretty useless too. - ######################################################## - patches.rpmify/psmouse-section-conflict.diff - patches.rpmify/ipmi-section-conflict.diff - patches.rpmify/md-section-conflict - patches.rpmify/gdth-section-conflict - patches.rpmify/arch-include-asm-fixes - patches.rpmify/arm-arch_include_asm-fix.diff - patches.rpmify/tsi148-dependency - patches.rpmify/staging-missing-sched.h - patches.rpmify/ia64-sn-fix-percpu-warnings - patches.rpmify/modpost-segfault - patches.rpmify/ppc-crashdump-typefix - - ######################################################## - # kABI consistency patches - ######################################################## - - ######################################################## - # - # packaging-specific patches (tweaks for autobuild, - # CONFIG_SUSE_KERNEL, config/version tracking and other - # build stuff like that ...). - # - # Note that every patch in the patches.rpmify directory - # will be included in the vanilla package. - ######################################################## -# patches.rpmify/firmware-path -# patches.rpmify/no-include-asm - - patches.rpmify/rpm-kernel-config -# patches.rpmify/split-package -# patches.rpmify/buildhost -# patches.rpmify/cloneconfig.diff - - ######################################################## - # kbuild/module infrastructure fixes - ######################################################## -# patches.suse/supported-flag -# patches.suse/supported-flag-sysfs -# patches.suse/supported-flag-enterprise -# patches.suse/kbuild-record-built-in-o -# patches.fixes/kbuild-fix-generating-of-.symtypes-files -# patches.suse/genksyms-add-override-flag.diff -# patches.suse/kbuild-generate-modules.builtin -# patches.suse/kconfig-automate-kernel-desktop -# patches.fixes/kbuild-Really-don-t-clean-bounds.h-and-asm-offsets.h - - ######################################################## - # Simple export additions/removals - ######################################################## -# patches.suse/reiser4-exports -# patches.suse/kvm-as-kmp -# patches.suse/export-release_open_intent -# patches.suse/export-security_inode_permission -# patches.suse/export-sync_page_range - - ######################################################## - # Bug workarounds for binutils - ######################################################## - - ######################################################## - # Scheduler / Core - ######################################################## - patches.suse/setuid-dumpable-wrongdir - patches.fixes/seccomp-disable-tsc-option - patches.suse/hung_task_timeout-configurable-default - patches.suse/sched-revert-latency-defaults - # bnc#560317 - patches.fixes/sched-make-tunable-scaling-configurable - patches.fixes/sched-sysctl-for-normalized-tunables - patches.fixes/sched-cleanup-select_task_rq_fair - patches.fixes/sched-more-generic_WAKE_AFFINE - patches.fixes/sched-fix-vmark-regression - patches.fixes/sched-inline__percpu_counter_add.patch - patches.fixes/sched-cpuacct-percpu-counter-batch.patch - - # writable limits - patches.suse/rlim-0002-resource-move-kernel-function-inside-__KERNEL__.patch - patches.suse/rlim-0004-IA64-use-helpers-for-rlimits.patch - patches.suse/rlim-0005-core-posix-cpu-timers-cleanup-rlimits-usage.patch - patches.suse/rlim-0006-PPC-use-helpers-for-rlimits.patch - patches.suse/rlim-0007-S390-use-helpers-for-rlimits.patch - patches.suse/rlim-0008-SPARC-use-helpers-for-rlimits.patch - patches.suse/rlim-0009-X86-use-helpers-for-rlimits.patch - patches.suse/rlim-0010-FS-use-helpers-for-rlimits.patch - patches.suse/rlim-0011-MM-use-helpers-for-rlimits.patch - patches.suse/rlim-0012-core-use-helpers-for-rlimits.patch - patches.suse/rlim-0013-infiniband-use-helpers-for-rlimits.patch - patches.suse/rlim-0014-ipc-use-helpers-for-rlimits.patch - patches.suse/rlim-0015-SECURITY-add-task_struct-to-setrlimit.patch - patches.suse/rlim-0016-core-add-task_struct-to-update_rlimit_cpu.patch - patches.suse/rlim-0017-sys_setrlimit-make-sure-rlim_max-never-grows.patch - patches.suse/rlim-0018-core-split-sys_setrlimit.patch - patches.suse/rlim-0019-core-allow-setrlimit-to-non-current-tasks.patch - patches.suse/rlim-0020-core-optimize-setrlimit-for-current-task.patch - patches.suse/rlim-0021-FS-proc-switch-limits-reading-to-fops.patch - patches.suse/rlim-0022-FS-proc-make-limits-writable.patch - patches.suse/rlim-0023-core-do-security-check-under-task_lock.patch - - patches.fixes/make-note_interrupt-fast.diff - - patches.fixes/nohz-delay-from-tip.diff - patches.fixes/reuse-ktime-from-tip.diff - - patches.fixes/sched-Limit-the-number-of-scheduler-debug-messages.patch - patches.fixes/cpuset-fix-cpuset_mem_spread_node-offline-node.patch - - patches.fixes/fix_clock_gettime_vsyscall_time_warp.diff - patches.suse/cfq-turn-lowlatency-off-by-default.patch - - patches.fixes/sched-fix-sched_mc-regression-caused-by-change-in-sched-cpu_power - patches.fixes/sched-fix-cputime-monotonicity.patch - ######################################################## - # Architecture-specific patches. These used to be all - # at the end of series.conf, but since we don't do - # conditional builds anymore, there's no point. - ######################################################## - - - ######################################################## - # ia64 - ######################################################## -# patches.fixes/ia64-sparse-fixes.diff -# patches.fixes/nr-irqs-file -# patches.arch/mm-avoid-bad-page-on-lru -# patches.arch/ia64-page-migration -# patches.arch/ia64-page-migration.fix -# patches.fixes/taskstats-alignment -# patches.fixes/ia64-fix-sba-iommu-to-handle-allocation-failure-properly -# patches.fixes/ia64-select-mmu-notifier-for-sgi-xp.patch -# patches.fixes/ia64-preserve-high-order-personality-bits - - ######################################################## - # i386 - ######################################################## - patches.arch/i386-do-a-global-tlb-flush-in-S4-resume.patch - - # amd64 | x86-64 | x86_64 - # 'Intel(r) Extended Memory 64 Technology' | 'Intel(r) EM64T' - # x64 - # Intel 64 - # "the architecture with too many names" - # TAWTMN - - ######################################################## - # x86_64/i386 biarch - ######################################################## - patches.arch/x86-hpet-pre-read - patches.arch/x86_64-hpet-64bit-timer.patch - - patches.arch/add_support_for_hpet_msi_intr_remap.patch - patches.arch/add_x86_support_for_hpet_msi_intr_remap.patch - patches.arch/x86-crypto-pclmulqdq-accelerated-implementation.patch - patches.arch/x86-crypto-add-ghash-algorithm-test.patch - patches.fixes/crypto-testmgr-fix-complain-about-lacking-test.patch - patches.arch/x86-mcp51-no-dac - - patches.arch/kvm-split-paravirt-ops-by-functionality - patches.arch/kvm-only-export-selected-pv-ops-feature-structs - patches.arch/kvm-split-the-KVM-pv-ops-support-by-feature - patches.arch/kvm-replace-kvm-io-delay-pv-ops-with-linux-magic - - patches.arch/x86-64-preserve-large-page-mapping-for-1st-2mb-kernel-txt-with-config_debug_rodata - patches.arch/x86-64-align-rodata-kernel-section-to-2mb-with-config_debug_rodata - patches.arch/x86-64-add-comment-for-rodata-large-page-retainment - patches.suse/x86-mark_rodata_rw.patch - - patches.arch/x86-ftrace-fix-rodata-1.patch - patches.arch/x86-ftrace-fix-rodata-2.patch - patches.arch/x86-ftrace-fix-rodata-3.patch - - patches.fixes/dmar-fix-oops-with-no-dmar-table - - # bug 564618 - patches.arch/x86-Remove-the-CPU-cache-size-printks.patch - patches.arch/x86-Remove-CPU-cache-size-output-for-non-Intel-too.patch - patches.arch/x86-cpu-mv-display_cacheinfo-cpu_detect_cache_sizes.patch - patches.arch/x86-Limit-the-number-of-processor-bootup-messages.patch - patches.arch/x86-Limit-number-of-per-cpu-TSC-sync-messages.patch - patches.arch/x86-Remove-enabling-x2apic-message-for-every-CPU.patch - patches.arch/ACPI-Remove-repeated-registered-as-cooling_device-messages.patch - - # bug 567510 - patches.arch/x86-revert-apic-Use-logical-flat-on-intel-with-8-or-fewer-logical-cpus.patch - patches.arch/x86-apic-use-logical-flat-for-systems-with-8-or-fewer-logical-cpus.patch - - patches.fixes/x86_64_memory_hotplug_dev_mem.patch - - patches.arch/x86-calgary-increase-max-phb-bus-num.patch - - patches.arch/x86_64_apic_consider_hotplug_for_mode_logical_flat.patch - patches.fixes/x86_ioapic_fix_out_of_order_gsi.patch - - patches.suse/x86-cacheline-size-128.patch - - # bug 587669 - patches.arch/x86-Reduce-per-cpu-warning-boot-up-messages.patch - - # bug 588008 - patches.arch/x86-pat-Update-page-flags-for-memtype-without-using-memtype_lock-V3.patch - - ######################################################## - # x86 MCE/MCA (Machine Check Error/Architecture) extensions - ######################################################## - patches.arch/x86_mce_undef-lru - patches.arch/x86_mce_shake-page - patches.arch/x86_mce_hwpoison-action_result-valid-pfn.patch - patches.arch/x86_mce_hwpoison-no-double-ref.patch - patches.arch/x86_mce_ref-to-flags - patches.arch/x86_mce_hwpoison-is-free-page.patch - patches.arch/x86_mce_offline-inject - patches.arch/x86_mce_madvise-locking - patches.arch/x86_mce_page-offline - - # one bug fix, better stress testing, and injection filters - patches.fixes/mce_injection_enhancements_9b9a29ecd75e310f75a9243e1c3538ad34598fcb - patches.fixes/mce_injection_enhancements_1668bfd5be9d8a52536c4865000fbbe065a3613b - patches.fixes/mce_injection_enhancements_db0480b3a61bd6ad86ead3b8bbad094ab0996932 - patches.fixes/mce_injection_enhancements_71f72525dfaaec012e23089c73331654ea7b12d3 - patches.fixes/mce_injection_enhancements_95d01fc664b9476e0d18e3d745bb209a42a33588 - patches.fixes/mce_injection_enhancements_847ce401df392b0704369fd3f75df614ac1414b4 - patches.fixes/mce_injection_enhancements_d95ea51e3a7e9ee051d19f1dd283ca61d1aa5ec6 - patches.fixes/mce_injection_enhancements_138ce286eb6ee6d39ca4fb50516e93adaf6b605f - patches.fixes/mce_injection_enhancements_7c116f2b0dbac4a1dd051c7a5e8cef37701cafd4 - patches.fixes/mce_injection_enhancements_31d3d3484f9bd263925ecaa341500ac2df3a5d9b - patches.fixes/mce_injection_enhancements_1a9b5b7fe0c5dad8a635288882d36785dea742f9 - patches.fixes/mce_injection_enhancements_478c5ffc0b50527bd2390f2daa46cc16276b8413 - patches.fixes/mce_injection_enhancements_e42d9d5d47961fb5db0be65b56dd52fe7b2421f1 - patches.fixes/mce_injection_enhancements_d324236b3333e87c8825b35f2104184734020d35 - patches.fixes/mce_injection_enhancements_4fd466eb46a6a917c317a87fb94bfc7252a0f7ed - patches.fixes/mce_injection_enhancements_1bfe5febe34d2be2120803c10720e179186357c9 - patches.fixes/mce_injection_enhancements_413f9efbc513d330f00352bb7cba060a729999d3 - patches.fixes/mce_injection_enhancements_fe194d3e100dea323d7b2de96d3b44d0c067ba7a - patches.fixes/mce_injection_enhancements_0474a60ec704324577782b1057d05b574388d552 - patches.fixes/mce_injection_enhancements_0d57eb8dfcb92e3dd928d792f4ed2b2fec680bb7 - patches.fixes/mce_injection_enhancements_12686d153abff397fa0927c620d5a3de84910b72 - patches.fixes/mce_injection_enhancements_f2c03debdfb387fa2e35cac6382779072b8b9209 - - # Needed on Boxboro/Westmere-EX to correctly decode the physical - # address of correctable errors - patches.arch/x86_mce_intel_decode_physical_address.patch - patches.arch/x86_mce_intel_decode_physical_address_rename_fix.patch - patches.arch/x86_mce_intel_decode_physical_address_compile_fix.patch - - # bug 587669 - patches.arch/x86-Reduce-per-cpu-MCA-boot-up-messages.patch - - ######################################################## - # x86_64/4096CPUS - from SGI - ######################################################## - patches.arch/x86-apic-force-bigsmp-apic-on-IBM-EXA3-4.patch - - ######################################################## - # x86 UV patches from SGI - ######################################################## - patches.arch/bug-561933_uv_pat_is_gru_range.patch - patches.arch/bug-561939_uv_bios_call_hwperf_updated.patch - patches.arch/bug-561939_uv_gpa_to_soc_phys_ram.patch - patches.arch/bug-561939_uv_gpa_is_mmr_space.patch - patches.arch/bug-561939_uv_rtc_fixes.patch - patches.arch/bug-561939_uv_rtc_setup_evt.patch - patches.arch/bug-561939_uv_rtc_cleanup.patch - patches.arch/bug-561939_uv_ipi_macro.patch - patches.arch/bug-561939_uv_mmap_low.patch - patches.arch/uv_determine_revision_id_of_node_controller_chip.patch - patches.arch/uv_use_replicated_cachelines_to_read_rtc.patch - - # Generic, but depends on the above patches - patches.arch/bug-561946_rename_generic_int.patch - - patches.arch/bug-561946_uv_use_rtc.patch - patches.arch/bug-561946_uv_irq_affinity.patch - patches.arch/bug-561946_uv_move_ioapic.patch - patches.arch/bug-561989_gru_rollup.patch - - # bug 562288 - patches.arch/xpc_introduce_xp_socket.patch - patches.arch/xpc_uv_bios_changes.patch - patches.arch/xpc_fix_xpc_get_fifo_entry_uv.patch - patches.arch/xpc_first_contact_when_active.patch - patches.arch/xpc_recv_msg_slots_wrap.patch - patches.arch/xpc_pass_nasid_to_gru_create_message_queue.patch - - # bug 566745 - patches.arch/UV-Expose-irq_desc-node-in-proc.patch - - # bug 579636 - patches.arch/x86-uv-fix-uv_hub_macro-bug.patch - - # bug 579647 - patches.arch/x86-UV-Add-UV-NMI-handler.patch - - # bug 582878 - patches.arch/x86-Fix-sched_clock_cpu-for-systems-with-unsynchronized-TSC.patch - - # bug 586364 - patches.arch/x86-speed-up-microcode.ctl-on-SGI-UV.patch - - # bug 587562 - patches.arch/x86-uv-Update-UV-mmr-definitions-header-file.patch - - # bug 587673 - patches.arch/x86-UV-Fix-target_cpus-in-x2apic_uv_x.c.patch - - # bug 586806 - patches.arch/x86-UV-BAU-performance-and-error-recovery.patch - - ######################################################## - # x86_64/i386 depending on the UV patchset - ######################################################## - - # bug 558247 - patches.arch/x86-Unify-fixup_irqs-for-32-bit-and-64-bit-kernels.patch - patches.arch/x86-intr-remap-Avoid-irq_chip-mask-unmask-in-fixup_irqs-for-intr-remapping.patch - patches.arch/x86-Remove-move_cleanup_count-from-irq_cfg.patch - patches.arch/x86-Force-irq-complete-move-during-cpu-offline.patch - patches.arch/x86-Use-EOI-register-in-io-apic-on-intel-platforms.patch - patches.arch/x86-Remove-local_irq_enable-local_irq_disable-in-fixup_irqs.patch - patches.arch/x86-io-apic-Move-the-effort-of-clearing-remoteIRR-explicitly-before-migrating-the-irq.patch - patches.arch/x86-ioapic-Fix-the-EOI-register-detection-mechanism.patch - patches.arch/x86-ioapic-Document-another-case-when-level-irq-is-seen-as-an-edge.patch - patches.arch/x86-Remove-unnecessary-mdelay-from-cpu_disable_common.patch - patches.arch/x86-irq-check-move_in_progress-before-freeing-the-vector-mapping.patch - - ######################################################## - # powerpc/generic - ######################################################## - patches.suse/of_platform_driver.module-owner.patch - patches.suse/led_classdev.sysfs-name.patch - patches.suse/radeon-monitor-jsxx-quirk.patch - - patches.suse/8250-sysrq-ctrl_o.patch - patches.suse/ppc-no-LDFLAGS_MODULE.patch - patches.arch/ppc-vio-modalias.patch - patches.arch/ppc-efika-mpc52xx-ac97.patch - patches.arch/ppc-efika-psc-console-autodetection.patch -- patches.arch/ppc-efika-bestcomm-ata-dma.patch - patches.arch/ppc-pegasos-console-autodetection.patch - patches.suse/ppc-powerbook-usb-fn-key-default.patch - patches.suse/suse-ppc32-mol.patch - patches.suse/suse-ppc32-mol-kbuild.patch - patches.suse/suse-ppc32-mol-handle-mm-fault - patches.suse/suse-ppc32-mol-ioctl - patches.suse/suse-ppc32-mol-get-property - patches.suse/suse-ppc32-mol-BIT - patches.suse/suse-ppc32-mol-sheep - patches.suse/suse-ppc32-mol-semaphore - patches.drivers/ppc64-adb - patches.suse/suse-ppc64-branding - patches.arch/ppc64-xmon-dmesg-printing.patch - patches.arch/ppc-prom-nodisplay.patch - patches.fixes/ptrace-getsiginfo - patches.arch/ppc-ipic-suspend-without-83xx-fix - patches.arch/ppc-vmcoreinfo.diff - patches.arch/ppc-select - - patches.arch/ppc-extended_h_cede-kernel-dlpar - patches.arch/ppc-extended_h_cede-mv_of_drconf_cell - patches.arch/ppc-extended_h_cede-Export_memory_sysdev_class - patches.arch/ppc-extended_h_cede-memory-dlpar - patches.arch/ppc-extended_h_cede-cpu-dlpar - patches.arch/ppc-extended_h_cede-new_cede_processor - patches.arch/ppc-extended_h_cede-add_offline_states - patches.arch/ppc-extended_h_cede-node_offline_online_cpus - patches.arch/ppc-extended_h_cede-add_driver_lock - patches.arch/ppc-extended_h_cede-update-to-mainline - patches.arch/ppc-extended_h_cede-fix-kstack-resume - patches.arch/ppc-pseries-mach-cpu-die-rearrange-code - patches.arch/ppc-pseries-mach-cpu-die-remove-debug-printk - patches.fixes/powerpc-fix-cpu-name-in-show-cpuinfo - patches.arch/ppc-pseries-ncpus-1 - patches.arch/ppc-pseries-ncpus-2 - patches.fixes/powerpc-eeh-fix-a-bug-when-pci-structure-is-null - patches.arch/powerpc-export-data-from-new-hcall-H_EM_GET_PARMS.patch - - ######################################################## - # PS3 - ######################################################## - - ######################################################## - # S/390 - ######################################################## - patches.arch/s390-add-FREE_PTE_NR - - patches.suse/s390-System.map.diff - patches.arch/s390-message-catalog.diff - - patches.arch/s390-01-qeth-isolation.patch - - patches.arch/s390-02-01-cex3-init-msg.patch - patches.arch/s390-02-02-cex3-special-command.patch - patches.arch/s390-02-03-cex3-device.patch - patches.arch/s390-02-04-cex3-use-def.patch - patches.arch/s390-02-05-zcrypt-speed-cex2c.patch - patches.arch/s390-02-06-zcrypt-speed-cex3.patch - - patches.arch/s390-03-qeth-hs-traffic-analyzer.patch - - patches.arch/s390-04-02-zcrypt-hrtimer.patch - patches.arch/s390-04-04-mm-fault-fix.patch - patches.arch/s390-04-05-sclp-dump-indicator.patch - patches.arch/s390-04-06-dasd-move-diag-kmsg.patch - patches.arch/s390-04-08-cio-fix-dev-stall.patch - patches.arch/s390-04-09-cio-recover-hw-changes.patch - patches.arch/s390-04-10-cio-fix-onoffline-failure.patch - patches.arch/s390-04-11-cio-error-reporting.patch - patches.arch/s390-04-13-cio-internal-io.patch - patches.arch/s390-04-14-cio-allow-offline.patch - patches.arch/s390-04-15-cio-split-pgid.patch - patches.arch/s390-04-16-cio-path-verification.patch - patches.arch/s390-04-17-cio-steal-lock.patch - patches.arch/s390-04-18-cio-fix-memleak-chk-dev.patch - patches.arch/s390-04-19-cio-fix-deact-dev-panic.patch - - patches.suse/s390-Kerntypes.diff - - patches.arch/s390-05-02-cmm-suspend.patch - patches.arch/s390-05-03-iucv-suspend.patch - patches.arch/s390-05-04-zfcp-work-queue.patch - patches.arch/s390-05-05-zfcp-fail-commands.patch - patches.arch/s390-05-06-zfcp-adisc.patch - patches.arch/s390-05-07-zfcp-fsf-errors.patch - patches.arch/s390-05-08-zfcp-block.diff - patches.arch/s390-05-09-ctcm-suspend-wait.diff - patches.arch/s390-05-10-rework-tso.diff - patches.arch/s390-05-11-atomic-volatile.patch - patches.arch/s390-05-12-tape-remove-fn.patch - patches.arch/s390-05-13-qeth-blkt-defaults.patch - patches.arch/s390-05-14-dasd-dasd-enable-prefix.patch - patches.arch/s390-05-16-dasd-wait-lcu-setup.patch - - patches.arch/s390-06-01-zfcp-introduce-bsg-timeout-callback.patch - patches.arch/s390-06-02-zfcp-set-hw-timeout-requested-by-bsg.patch - - patches.arch/s390-07-03-cio-fix-vary-handling.patch - patches.arch/s390-07-04-dasd_online_offline_race.patch - - patches.arch/s390-08-01-zfcp_port_dequeue_race.patch - patches.arch/s390-08-02-zfcp_fc_bsg_report_error.patch - patches.arch/s390-08-03-qdio-input-error.patch - patches.arch/s390-08-04-qdio-int_handler_warn.patch - patches.arch/s390-08-05-hvc-iucv-alloc-dma.patch - - patches.arch/s390-09-01-vdso-version.patch - patches.arch/s390-09-02-dasd-fix_refcount.patch - patches.arch/s390-09-03-dasd-correct_offline_processing.patch - patches.arch/s390-09-04-qeth-no-online-recover.patch - patches.arch/s390-09-05-zfcp-ccw_fix_remove_list.patch - patches.arch/s390-09-06-qeth-dhcp.patch - patches.arch/s390-09-07-qeth-checksum-default.patch - - patches.arch/s390-dasd-emc-ckd-psf-and-security.patch - - ######################################################## - # VM/FS patches - ######################################################## - patches.suse/unmap_vmas-lat - patches.suse/silent-stack-overflow-2.patch - patches.fixes/do_anonymous_page-race - patches.fixes/oom-warning - patches.suse/shmall-bigger - patches.fixes/grab-swap-token-oops - -+needs_update-32 patches.suse/osync-error - patches.fixes/remount-no-shrink-dcache - patches.suse/reiser4-set_page_dirty_notag - patches.suse/file-capabilities-disable-by-default.diff - - patches.suse/unlock_page-speedup.patch - patches.suse/mm-tune-dirty-limits.patch - - patches.suse/mm-vmalloc-fail-dump-stack.patch - patches.suse/mm-devzero-optimisation.patch - - patches.fixes/aggressive-zone-reclaim.patch - patches.suse/readahead-request-tunables.patch - patches.fixes/mm-memcg-coalesce-uncharge.patch - patches.fixes/mm-memcg-coalesce-charging.patch - patches.fixes/readahead-unplug-dev.patch - - # bug 578046 - patches.fixes/Have-mmu_notifiers-use-SRCU-so-they-may-safely-schedule.patch - patches.fixes/Have-mmu_notifiers-use-SRCU-so-they-may-safely-schedule-build-fix.patch - patches.fixes/Fix-unmap_vma-bug-related-to-mmu_notifiers.patch - - patches.fixes/mm-pagealloc-fix-congestion-wait.patch - patches.suse/mm-uninline-add-to-page-cache.patch - patches.suse/pagecache-limit.patch - - ######################################################## - # IPC patches - ######################################################## - patches.fixes/ipc-semc-sem-optimise-undo-list-search.patch - patches.fixes/ipc-semc-sem-use-list-operations.patch - patches.fixes/ipc-semc-sem-preempt-improve.patch - patches.fixes/ipc-semc-optimize-if-semops-fail.patch - patches.fixes/ipc-semc-add-a-per-semaphore-pending-list.patch - patches.fixes/ipc-semc-optimize-single-semop-operations.patch - patches.fixes/ipc-semc-optimize-single-sops-when-semval-is-zero.patch - patches.fixes/ipc-remove-unreachable-code-in-semc.patch - - ######################################################## - # nfsacl protocol (agruen) - ######################################################## -+agruen patches.suse/nfsacl-client-cache-CHECK.diff -+agruen patches.fixes/nfs-acl-caching.diff - - ######################################################## - # misc small fixes - ######################################################## - patches.suse/connector-read-mostly - patches.suse/kbd-ignore-gfx.patch - patches.fixes/ds1682-build-fix - - ######################################################## - # - # ACPI patches - # - ######################################################## - patches.suse/apm_setup_UP.diff - - # Check resource conflicts between hwmon and ACPI OpRegs - patches.arch/acpi_thinkpad_introduce_acpi_root_table_boot_param.patch - -+trenn patches.suse/acpi-dsdt-initrd-v0.9a-2.6.25.patch -+jeffm patches.suse/add-initramfs-file_read_write -+jeffm patches.suse/init-move-populate_rootfs-back-to-start_kernel -+jeffm patches.suse/acpi-generic-initramfs-table-override-support - - patches.arch/acpi_thermal_passive_blacklist.patch - patches.arch/acpi-export-hotplug_execute - -+needs_update-32 patches.arch/acpi_ec_provide_non_interrupt_mode_boot_param.patch - - # Adjust this patch for every new product (at least Enterprise - # level) to provide OEMs a safety break so that they can add - # for example SLE11 specific BIOS updates (if there is no other - # way to safely solve an ACPI issue). -+trenn patches.suse/acpi_osi_sle11_ident.patch - patches.arch/acpi_srat-pxm-rev-store.patch - patches.arch/acpi_srat-pxm-rev-ia64.patch - patches.arch/acpi_srat-pxm-rev-x86-64.patch - patches.arch/x86_cpu_hotplug_map_numa_node_correctly.patch - - patches.arch/acpi_enable_C3_on_huge_latencies.patch - patches.fixes/acpi-fix-regression-where-_ppc-is-not-read-at-boot-even-when-ignore_ppc-0 - ######################################################## - # CPUFREQ - ######################################################## - -## cpuidle feature patch set still not consistent. -# patches.suse/cpuidle-cleanup -# patches.suse/cpuidle-implement-list -# patches.suse/cpuidle-cleanup-x86 -# patches.suse/cpuidle-enable-pseries -# patches.suse/cpuidle-cleanup-pseries -# patches.suse/cpuidle-add-default-idle-ppc -# patches.suse/cpuidle-pseries-proc-idle -# patches.suse/cpuidle-eliminate-ppcmdpowersave1 -# patches.suse/cpuidle-documentation - patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch - - # PCC -> HP's cpufreq driver - patches.drivers/cpufreq_ondemand_limit_fix.patch - patches.drivers/cpufreq_processor_clocking_control_pcc_driver.patch - patches.fixes/bios_driven_exclude_firmware_error.patch - - ######################################################## - # AGP, graphics related stuff - ######################################################## - patches.arch/x86_agpgart-g33-stoeln-fix-2.patch - - ######################################################## - # Suse specific stuff - ######################################################## - # TIOCGDEV - suse special - patches.fixes/tiocgdev -+still_needed? patches.suse/mm-increase-dirty-limits.patch - patches.suse/panic-on-io-nmi-SLE11-user-space-api.patch - patches.suse/stop_machine-implement-lazy - - ######################################################## - # Networking, IPv6 - ######################################################## - patches.fixes/bridge-module-get-put.patch - patches.fixes/gre-fix-netns-vs-proto-registration-ordering - patches.fixes/tunnels-fix-netns-vs-proto-registration-ordering - - ######################################################## - # NFS - ######################################################## - patches.fixes/nfs-slot-table-alloc - - patches.fixes/nfsd-05-sunrpc-cache-allow-thread-to-block-while-waiting-for.patch - patches.fixes/nfsd-06-sunrpc-cache-retry-cache-lookups-that-return-ETIMEDO.patch - patches.fixes/nfsd-07-nfsd-idmap-drop-special-request-deferal-in-favour-of.patch - patches.fixes/nfsd-09-fix-kabi - - patches.fixes/nfs-fix-NFS4ERR_FILE_OPEN-handling - patches.fixes/sunrpc-monotonic-expiry - patches.fixes/nfs-bdi-leak.fix - patches.fixes/01-rnfs_read_complete_calc_rq_respages.patch - - ######################################################## - # lockd + statd - ######################################################## - - ######################################################## - # cifs patches - ######################################################## - - ######################################################## - # ext2/ext3 - ######################################################## -# patches.suse/ext3-barrier-default -# patches.suse/ext2-fsync-err - patches.fixes/ext3-mark-super-uptodate - - ######################################################## - # ext4 - ######################################################## - - ######################################################## - # Reiserfs Patches - ######################################################## - patches.fixes/reiserfs-replay-honor-ro - patches.suse/reiserfs-barrier-default - - ######################################################## - # dlm - ######################################################## - patches.fixes/dlm-enable-debug.patch - patches.fixes/dlm-always-use-GFP_NOFS.patch - patches.fixes/dlm-fix-ordering-of-bast-and-cast.patch - patches.fixes/dlm-send-reply-before-bast.patch - patches.fixes/dlm-Send-lockspace-name-with-uevents.patch - patches.fixes/dlm-use-bastmode-in-debugfs-output.patch - - ######################################################## - # ocfs2 - ######################################################## - # ocfs2 fixes from 2.6.32 - patches.fixes/ocfs2-always-include-acl-support.patch - patches.fixes/ocfs2-make-acl-use-the-default.patch - patches.fixes/ocfs2-set-MS_POSIXACL-on-remount.patch - patches.fixes/ocfs2-Find-proper-end-cpos-for-a-leaf-refcount-block.patch - patches.fixes/ocfs2-refcounttree.c-cleanup.patch - patches.fixes/ocfs2-cluster-Make-fence-method-configurable-v2.patch - patches.fixes/ocfs2-return-EAGAIN-instead-of-EAGAIN-in-dlm.patch - patches.fixes/ocfs-stop-using-do_sync_mapping_range.patch - patches.fixes/ocfs2-devel-remove-redundant-OCFS2_MOUNT_POSIX_ACL-c.patch - patches.fixes/ocfs2-explicit-declare-uninitialized-var-in-user_clu.patch - patches.fixes/ocfs2-replace-u8-by-__u8-in-ocfs2_fs.h.patch - patches.suse/fiemap-Add-new-extent-flag-FIEMAP_EXTENT_SHARED.patch - patches.suse/ocfs2-Use-FIEMAP_EXTENT_SHARED.patch - patches.fixes/Ocfs2-Should-ocfs2-support-fiemap-for-S_IFDIR-inode.patch - patches.fixes/ocfs2-Add-reflinked-file-s-inode-to-inode-hash-earil.patch - patches.fixes/ocfs2-Set-i_nlink-properly-during-reflink.patch - patches.fixes/Ocfs2-Let-ocfs2-support-fiemap-for-symlink-and-fast-.patch - patches.fixes/ocfs2-trivial-Use-proper-mask-for-2-places-in-hearbe.patch - patches.fixes/ocfs2-trivial-Use-le16_to_cpu-for-a-disk-value-in-xa.patch - patches.fixes/ocfs2-Handle-O_DIRECT-when-writing-to-a-refcounted-c.patch - - patches.fixes/ocfs2-Fix-refcnt-leak-on-ocfs2_fast_follow_link-erro.patch - patches.fixes/ocfs2-Sync-max_inline_data_with_xattr-from-tools.patch - patches.fixes/ocfs2-fix-a-misleading-variable-name.patch - patches.fixes/ocfs2-trivial-Remove-trailing-whitespaces.patch - patches.fixes/ocfs2-dlm-Ignore-LVBs-of-locks-in-the-Blocked-list.patch - patches.fixes/ocfs2-dlm-Print-more-messages-during-lock-migration.patch - - patches.suse/ocfs2-allocation-resrvations.patch - - # ocfs2 fixes from 2.6.33-rc8 - patches.fixes/ocfs2-Fix-memory-overflow-in-cow_by_page.patch - patches.fixes/ocfs2-Only-bug-out-when-page-size-is-larger-than-clu.patch - patches.fixes/ocfs2-dlm-Handle-EAGAIN-for-compatibility-v2.patch - patches.fixes/ocfs2-Use-compat_ptr-in-reflink_arguments.patch - patches.fixes/ocfs2-Fix-setting-of-OCFS2_LOCK_BLOCKED-during-bast.patch - patches.fixes/ocfs2-Prevent-a-livelock-in-dlmglue.patch - patches.fixes/ocfs2-Do-not-downconvert-if-the-lock-level-is-alread.patch - patches.fixes/ocfs2-Remove-overzealous-BUG_ON-during-blocked-lock-.patch - patches.fixes/ocfs2-Plugs-race-between-the-dc-thread-and-an-unlock.patch - patches.fixes/ocfs2-dlm-Remove-BUG_ON-in-dlm-recovery-when-freeing.patch - patches.fixes/ocfs2-Fix-contiguousness-check-in-ocfs2_try_to_merge.patch - patches.fixes/ocfs2-dlm-Fix-printing-of-lockname.patch - patches.fixes/ocfs2-cluster-Make-o2net-connect-messages-KERN_NOTIC.patch - - #bnc#575752 - patches.fixes/ocfs2-set-i_mode-on-disk-during-acl-operations.patch - - ######################################################## - # gfs2 read-only support for migration - ######################################################## - patches.suse/gfs2-ro-mounts-only.patch - patches.suse/gfs2-ro-fixes.patch - - ######################################################## - # xfs - ######################################################## - patches.suse/xfs-dmapi-src - patches.suse/xfs-dmapi-enable - patches.suse/xfs-dmapi-xfs-enable - patches.suse/xfs-nfsd-dmapi-aware - patches.fixes/xfs-dmapi-fixes - patches.fixes/xfs-redirty-ENOSPC.patch - patches.fixes/xfs-export-debug - - patches.xfs/xfs-simplify-inode-teardown.patch - patches.xfs/xfs-fix-mmap_sem-iolock-inversion-in-xfs_free_eofblo.patch - patches.xfs/xfs-I-O-completion-handlers-must-use-NOFS-allocation.patch - patches.xfs/xfs-reset-the-i_iolock-lock-class-in-the-reclaim-pat.patch - patches.xfs/xfs-use-WRITE_SYNC_PLUG-for-synchronous-writeout.patch - patches.xfs/xfs-cleanup-data-end-I-O-handlers.patch - patches.xfs/xfs-Wrapped-journal-record-corruption-on-read-at-rec.patch - patches.xfs/xfs-remove-IO_ISAIO.patch - patches.xfs/xfs-simplify-xfs_buf_get-xfs_buf_read-interfaces.patch - patches.xfs/xfs-rename-xfs_attr_fetch-to-xfs_attr_get_int.patch - patches.xfs/xfs-uninline-xfs_get_extsz_hint.patch - patches.xfs/xfs-kill-the-STATIC_INLINE-macro.patch - patches.xfs/xfs-remove-incorrect-sparse-annotation-for-xfs_iget_.patch - patches.xfs/xfs-cleanup-dmapi-macros-in-the-umount-path.patch - patches.xfs/xfs-Fix-error-return-for-fallocate-on-XFS.patch - patches.xfs/xfs-cleanup-bmap-extent-state-macros.patch - patches.xfs/xfs-change-the-xfs_iext_insert-xfs_iext_remove.patch - patches.xfs/xfs-check-for-not-fully-initialized-inodes-in-xfs_ir.patch - patches.xfs/xfs-improve-metadata-I-O-merging-in-the-elevator.patch - patches.xfs/xfs-kill-xfs_bmbt_rec_32-64-types.patch - patches.xfs/XFS-Free-buffer-pages-array-unconditionally.patch - patches.xfs/kill-I_LOCK.patch - patches.xfs/xfs-fix-timestamp-handling-in-xfs_setattr.patch - patches.xfs/xfs-Don-t-flush-stale-inodes.patch - patches.xfs/xfs-Ensure-we-force-all-busy-extents-in-range-to-dis.patch - patches.xfs/xfs-reclaim-inodes-under-a-write-lock.patch - patches.xfs/xfs-Avoid-inodes-in-reclaim-when-flushing-from-inode.patch - patches.xfs/xfs-reclaim-all-inodes-by-background-tree-walks.patch - patches.xfs/xfs-Remove-inode-iolock-held-check-during-allocation.patch - patches.xfs/xfs-fix-stale-inode-flush-avoidance.patch - patches.xfs/xfs-fix-missing-error-check-in-xfs_rtfree_range.patch - patches.xfs/xfs-xfs_swap_extents-needs-to-handle-dynamic-fork-of.patch - patches.fixes/xfs-nonblocking-inode-locking-io-completion.patch - - patches.suse/xfs-dmapi-re-add-flags-for-xfs_free_eofblocks - - ######################################################## - # novfs - ######################################################## -# patches.suse/novfs-client-module -# patches.suse/novfs-fix-debug-message.patch -# patches.fixes/novfs-err_ptr-fix.diff -# patches.fixes/novfs-fix-inode-uid -# patches.fixes/novfs-incorrect-filesize-fix -# patches.fixes/novfs-truncate-fix - - ######################################################## - # other filesystem stuff - ######################################################## - patches.suse/parser-match_string.diff - patches.suse/fs-may_iops.diff - patches.suse/fs-knows-MAY_APPEND.diff - patches.suse/nfs4acl-common.diff - patches.suse/nfs4acl-ext3.diff - patches.suse/nfs4acl-ai.diff - patches.fixes/zisofs-large-pagesize-read.patch - - - ######################################################## - # Swap-over-NFS - ######################################################## - patches.suse/SoN-01-mm-setup_per_zone_wmarks.patch - patches.suse/SoN-02-doc.patch - patches.suse/SoN-03-mm-gfp-to-alloc_flags-expose.patch - patches.suse/SoN-04-page_alloc-reserve.patch - patches.suse/SoN-05-reserve-slub.patch - patches.suse/SoN-06-mm-kmem_estimate_pages.patch - patches.suse/SoN-07-mm-PF_MEMALLOC-softirq.patch - patches.suse/SoN-08-mm-page_alloc-emerg.patch - patches.suse/SoN-09-global-ALLOC_NO_WATERMARKS.patch - patches.suse/SoN-10-mm-page_alloc-GFP_EMERGENCY.patch - patches.suse/SoN-11-mm-reserve.patch - patches.suse/SoN-12-mm-selinux-emergency.patch - patches.suse/SoN-13-net-ps_rx.patch - patches.suse/SoN-14-net-sk_allocation.patch - patches.suse/SoN-15-netvm-reserve.patch - patches.suse/SoN-16-netvm-reserve-inet.patch - patches.suse/SoN-17-netvm-reserve-inet.patch-fix - patches.suse/SoN-18-netvm-skbuff-reserve.patch - patches.suse/SoN-19-netvm-sk_filter.patch - patches.suse/SoN-20-netvm-tcp-deadlock.patch - patches.suse/SoN-21-emergency-nf_queue.patch - patches.suse/SoN-22-netvm.patch - patches.suse/SoN-23-mm-swapfile.patch - patches.suse/SoN-24-mm-page_file_methods.patch - patches.suse/SoN-25-nfs-swapcache.patch - patches.suse/SoN-26-nfs-swapper.patch - patches.suse/SoN-27-nfs-swap_ops.patch - patches.suse/SoN-28-nfs-alloc-recursions.patch - patches.suse/SoN-29-fix-swap_sync_page-race - patches.suse/SoN-30-fix-uninitialized-var.patch - - # dont want to rediff SoN until these get more testing - patches.suse/slab-memless-node-01-introduce-numa_mem_id.patch - patches.suse/slab-memless-node-02-slab-use-numa_mem_id.patch - patches.suse/slab-memless-node-03-ia64-memoryless-nodes.patch - patches.suse/slab-memless-node-04-kernel-profile-memoryless-nodes.patch - - ######################################################## - # Netfilter - ######################################################## - - patches.suse/netfilter-ipt_LOG-mac - - patches.suse/netfilter-ip_conntrack_slp.patch - patches.fixes/fix-nf_conntrack_slp -# patches.fixes/netfilter-remove-pointless-config_nf_ct_acct-warning - patches.suse/netfilter-ipv4options - - ######################################################## - # - # Device drivers - # - ######################################################## - - patches.drivers/disable-catas_reset-by-default-to-avoid-problems-with-eeh.patch - patches.drivers/reenable-generic_serial - patches.drivers/msi-wmi.patch - - ######################################################## - # Storage - ######################################################## - - # add genhd.mangle_minor parameter - patches.suse/block-add-mangle-devt-switch - - # libata - patches.drivers/libata-add-waits-for-govault - patches.drivers/libata-unlock-hpa-by-default - patches.drivers/libata-prefer-over-ide - - patches.drivers/libata-ata_piix-clear-spurious-IRQ - patches.drivers/libata-ahci-aspire-3810t-noncq - patches.drivers/libata-missing-_SDD-is-not-an-error - - # Block layer fixes - patches.fixes/scsi-inquiry-too-short-ratelimit - patches.suse/scsi-netlink-ml - - # from scsi-misc - patches.fixes/scsi-fc-class-failfast-bsg-requests - patches.fixes/scsi-add-scsi-target-reset-support-to-ioctl - patches.suse/modify-change_queue_depth-to-take-in-reason-why-it-is-being-called.patch - patches.suse/scsi-error-have-scsi-ml-call-change_queue_depth-to-handle-queue_full.patch - patches.suse/add-queue_depth-ramp-up-code.patch - - patches.drivers/mpt-fusion-4.22.00.00-update - patches.drivers/hpsa - patches.fixes/scsi-introduce-helper-function-for-blocking-eh - patches.fixes/scsi-dh-queuedata-accessors - patches.fixes/scsi-dh-alua-retry-UA - patches.fixes/scsi-add-tgps-setting - patches.fixes/scsi-dh-alua-send-stpg - patches.fixes/scsi_dh-change-activate-interface - patches.fixes/scsi_dh-make-rdac-handler-asynchronous - patches.fixes/scsi_dh-make-hp_sw-handler-asynchronous - patches.fixes/scsi_dh-make-alua-handler-asynchronous - patches.fixes/scsi-dh-emc-mode-select-10-size - patches.fixes/scsi-dh-emc-rw-mismatch - patches.fixes/scsi-dh-rdac-add-stk - patches.fixes/scsi-dh-rdac-add-ibm-174x - patches.fixes/scsi-retry-alua-transition-in-progress - patches.suse/fc-transport-allow-dev_loss_tmo-disable - patches.suse/blk-queue-unprep-fn - patches.suse/blk-add-atomic-abort-flag - patches.fixes/fc_bsg_request_packed - patches.fixes/bsg-SG_IO-compat_ioctl - - patches.fixes/scsi-check-host-lookup-failure - patches.drivers/aacraid-24701-update - patches.drivers/megaraid-04.12-update - patches.drivers/qla2xxx-8.03.01.01.11.1-k8-update - patches.drivers/qla2xxx-8.03.01.02.11.1-k8-update - patches.drivers/qla2xxx-8.03.01.03.11.1-k8-update - patches.drivers/megaraid-mbox-fix-SG_IO - patches.drivers/mpt2sas-03.100.03.00-update - patches.drivers/mpt2sas-04.100.01.00-update - patches.drivers/mpt2sas-04.100.01.02-update - patches.drivers/bfa-2.1.2.1-update - patches.drivers/qla4xxx-5.01.00-k9-5.01.00.00.11.01-k10.patch - patches.drivers/qla4xxx-5.01.00.00.11.01-k10_5.01.00.00.11.01-k11.patch - patches.drivers/qla4xxx-5.01.00.00.11.01-k11_5.01.00.00.11.01-k12.patch - patches.drivers/qla4xxx-5.01.00.00.11.01-k12_5.01.00.00.11.01-k13.patch - patches.fixes/aic79xx-null-scb-in-nonpkt-busfree - patches.drivers/lpfc-8.3.5-update - patches.drivers/lpfc-8.3.5.3-update - patches.drivers/lpfc-8.3.5.4-update - patches.drivers/lpfc-8.3.5.5-update - patches.drivers/lpfc-8.3.5.6-update - patches.drivers/lpfc-8.3.5.7-update - patches.drivers/vmw_pvscsi-scsi-driver-for-vmware-s-virtual-hba.patch - patches.fixes/scsi-fc-class-allow-LLD-bsg-timeout - patches.drivers/pmcraid-2.6.33-rc6-update - patches.drivers/qla1280-fallback-to-loaded-fw - patches.fixes/fc-transport-dev_loss_tmo-overflow - patches.drivers/megaraid-sas-04.27-update - patches.drivers/scsi-transport-sas-enable-tlr - patches.fixes/scsi-fixup-vpd-page-allocation - patches.fixes/fc-transport-make-sure-cmds-are-completed-for-offlined-rport - - # Remaining SCSI patches (garloff) - patches.suse/scsi-error-test-unit-ready-timeout - patches.fixes/scsi-scan-blist-update - - patches.fixes/proc-scsi-scsi-fix.diff - - patches.fixes/scsi-ibmvscsi-show-config.patch - # bnc#362850 - patches.fixes/sd_liberal_28_sense_invalid.diff - - patches.fixes/scsi-ibmvscsi-module_alias.patch - patches.fixes/scsi_debug-scale-virtual_gb-with-sector_size-properly - - # bug 578429 - patches.fixes/cciss-remove-scan-thread.patch - - ######################################################## - # DRM/Video - ######################################################## - patches.drivers/drm-i915-implement-drmmode-overlay-support-v4.patch - patches.drivers/drm-i915-fully-switch-off-overlay-when-not-in-use.patch - patches.drivers/drm-i915-implement-fastpath-for-overlay-flip-waiting.patch - patches.drivers/drm-i915-add-acpi-opregion-support-for-ironlake.patch - patches.drivers/drm-i915-fix-crt-hotplug-hang - patches.drivers/drm-i915-adhoc-disable-lid-detection - - ######################################################## - # Network - ######################################################## - - # Core networking - - # Driver changes - patches.fixes/tulip-quad-NIC-ifdown - patches.suse/nameif-track-rename.patch - patches.fixes/tg3-fix-default-wol.patch - patches.drivers/ehea-modinfo.patch - patches.drivers/igb-add-support-for-82576NS-SerDes-adapter.patch - patches.fixes/tehuti-firmware-name - patches.drivers/dmfe-tulip-Let-dmfe-handle-DM910x-except-for-SPARC-o.patch - - patches.drivers/s2io-fixing-dbg_print-macro.patch - - # barton hills support bnc#557479 - patches.drivers/igb-add-new-data-structure-for-handling-interrupts-a.patch - patches.drivers/igb-cleanup-interrupt-enablement-in-regards-to-msix_.patch - patches.drivers/igb-cleanup-some-of-the-code-related-to-hw-timestamp.patch - patches.drivers/igb-use-packet-buffer-sizes-from-RXPBS-register.patch - patches.drivers/igb-0001-add-support-for-the-82580-phy.patch - patches.drivers/igb-0002-Add-full-support-for-82580-devices.patch - patches.drivers/igb-0003-add-support-for-82580-MAC.patch - patches.drivers/igb-check-both-function-bits-in-status-register-in-w.patch - - patches.drivers/phy-broadcom-bug-fixes-for-sp1.patch - patches.drivers/tg3-update-version-to-3.104.patch - patches.drivers/tg3-updates-from-f4188d-to-ba5b0bf.patch - patches.suse/tg3-5785-and-57780-asic-revs-not-working.patch - patches.drivers/tg3-Add-support-for-2-new-selfboot-formats.patch - patches.drivers/tg3-Add-more-partno-entries-for-fallback-path.patch - patches.drivers/tg3-Give-MSI-X-vec-1-rx-backlog-space.patch - patches.drivers/tg3-Prevent-rx-producer-ring-overruns.patch - patches.drivers/tg3-Unwedge-stuck-MSI-X-vectors.patch - patches.drivers/tg3-Fix-57765-A0-bootcode-race-condition.patch - patches.drivers/tg3-Turn-off-multiple-DMA-reads-for-5717.patch - patches.drivers/tg3-Fix-napi-assignments-in-loopback-test.patch - patches.drivers/tg3-Fix-AC131-loopback-test-errors-for-5785.patch - patches.drivers/tg3-Enforce-DMA-mapping-skb-assignment-ordering.patch - patches.drivers/tg3-Make-57791-and-57795-10-100-only.patch - - patches.drivers/bnx2-v2.6.32-to-b746656.patch - patches.drivers/bnx2-update-firmware-and-some-bug-fixes-from-upstream.patch - - patches.drivers/sky2-add-register-definitions - patches.drivers/sky2-88E8059-support - patches.drivers/sky2-optima-tcp-offload-fix - patches.drivers/sky2-optima-fix-pci-cfg - - patches.suse/allow_bonding_with_blacklisted_ipv6.patch - - #FCOE update (fate#306857, fate#306859, bnc#551175) - patches.suse/libfc-fcoe-don-t-export_symbols-unnecessarily.patch - patches.suse/libfc-remove-unused-fc_lport-pointer-from-fc_fcp_pkt_abort.patch - patches.suse/libfc-removes-initializing-fc_cpu_order-and-fc_cpu_mask-per-lport.patch - patches.suse/libfc-adds-missing-exch-release-for-accepted-rrq.patch - patches.suse/libfc-removes-unused-disc_work-and-ex_list.patch - patches.suse/fcoe-use-netif_f_fcoe_mtu-flag-to-set-up-max-frame-size-lport-mfs.patch - patches.suse/fcoe-call-ndo_fcoe_enable-disable-to-turn-fcoe-feature-on-off-in-lld.patch - patches.suse/libfc-convert-to-scsi_track_queue_full.patch - patches.suse/libfc-add-queue_depth-ramp-up.patch - patches.suse/fcoe-increase-fcoe_max_lun-to-0xffff-65535.patch - patches.suse/libfc-move-non-common-routines-and-prototypes-out-of-libfc-h.patch - patches.suse/libfc-remove-fc_fcp_complete.patch - patches.suse/libfc-add-libfc-fc_libfc-ch-for-libfc-internal-routines.patch - patches.suse/libfc-move-libfc_init-and-libfc_exit-to-fc_libfc-c.patch - patches.suse/libfc-changes-to-libfc_host_alloc-to-consolidate-initialization-with-allocation.patch - patches.suse/libfc-add-some-generic-npiv-support-routines-to-libfc.patch - patches.suse/libfc-vport-link-handling-and-fc_vport-state-managment.patch - patches.suse/libfc-libfcoe-fdisc-els-for-npiv.patch - patches.suse/libfcoe-fcoe-libfcoe-npiv-support.patch - patches.suse/fcoe-add-a-separate-scsi-transport-template-for-npiv-vports.patch - patches.suse/fcoe-npiv-vport-create-destroy.patch - patches.suse/libfc-rpn_id-is-obsolete-and-unnecessary.patch - patches.suse/libfc-rnn_id-may-be-required-before-rsnn_nn-with-some-switches.patch - patches.suse/libfc-register-symbolic-node-name-rsnn_nn.patch - patches.suse/libfc-register-symbolic-port-name-rspn_id.patch - patches.suse/libfc-combine-name-server-registration-response-handlers.patch - patches.suse/libfc-combine-name-server-registration-request-functions.patch - patches.suse/fcoe-vport-symbolic-name-support.patch - patches.suse/libfc-export-fc-headers.patch - patches.suse/libfc-add-routine-to-copy-data-from-a-buffer-to-a-sg-list.patch - patches.suse/libfc-fcoe-add-fc-passthrough-support.patch - patches.suse/libfc-formatting-cleanups-across-libfc.patch - patches.suse/libfcoe-formatting-and-comment-cleanups.patch - patches.suse/fcoe-formatting-cleanups-and-commenting.patch - patches.suse/fcoe-libfc-use-single-frame-allocation-api.patch - patches.suse/libfc-reduce-can_queue-for-all-fcp-frame-allocation-failures.patch - patches.suse/libfc-adds-can_queue-ramp-up.patch - patches.suse/libfcoe-allow-fip-to-be-disabled-by-the-driver.patch - patches.suse/libfcoe-fip-use-scsi-host-number-to-identify-debug-messages.patch - patches.suse/libfcoe-fip-allow-fip-receive-to-be-called-from-irq.patch - patches.suse/libfcoe-fip-should-report-link-to-libfc-whether-selected-or-not.patch - patches.suse/libfcoe-don-t-send-els-in-fip-mode-if-no-fcf-selected.patch - patches.suse/fcoe-remove-extra-function-decalrations.patch - patches.suse/fcoe-add-check-to-fail-gracefully-in-bonding-mode.patch - patches.suse/libfc-fix-rnn_id-smashing-skb-payload.patch - patches.suse/libfc-fix-symbolic-name-registrations-smashing-skb-data.patch - patches.suse/libfc-fix-fc_els_resp_type-to-correct-display-of-ct-responses.patch - patches.suse/libfc-add-set_fid-function-to-libfc-template.patch - patches.suse/libfc-add-host-number-to-lport-link-up-down-messages.patch - patches.suse/libfcoe-fcoe-simplify-receive-flogi-response.patch - patches.suse/libfc-register-fc4-features-with-the-fc-switch.patch - patches.suse/fcoe-fix-setting-lport-s-wwnn-wwpn-to-use-san-mac-address.patch - patches.suse/libfc-do-not-use-did_no_connect-for-pkt-alloc-failures.patch - patches.suse/fcoe-fix-using-vlan-id-in-creating-lport-s-wwwn-wwpn.patch - patches.suse/libfc-fcoe-fixes-for-highmem-skb-linearize-panics.patch - patches.suse/libfc-fix-an-issue-of-pending-exch-es-after-i-f-destroyed-or-rmmod-fcoe.patch - patches.suse/libfcoe-do-not-pad-fip-keep-alive-to-full-frame-size.patch - patches.suse/libfc-fcoe-increase-els-and-ct-timeouts.patch - patches.suse/libfc-call-ddp-setup-for-FCP-reads-only - patches.suse/libfc-fix-e_d_tov-ns-ms-scaling - patches.suse/libfc-don-t-assume-response-request-present - patches.suse/libfcoe-send-port-lka-every-fip_vn_ka_period - patches.suse/fcoe-only-rmmod-fcoe-ko-if-no-active-connections - - # qlge patches from 2.6.33 bnc#560420, fate#307130 - patches.drivers/qlge-0001-Use-the-instance-of-net_device_stats-from-net_.patch - patches.drivers/qlge-0005-Store-firmware-revision-as-early-as-possible.patch - patches.drivers/qlge-0006-Remove-inline-math-for-small-rx-buf-mapping.patch - patches.drivers/qlge-0007-Get-rid-of-firmware-handler-debug-code.patch - patches.drivers/qlge-0009-Add-CBFC-pause-frame-counters-to-ethtool-stats.patch - patches.drivers/qlge-0010-Size-RX-buffers-based-on-MTU.patch - patches.drivers/qlge-0011-Add-ethtool-get-set-pause-parameter.patch - patches.drivers/qlge-0012-Add-ethtool-blink-function.patch - patches.drivers/qlge-0013-Add-ethtool-wake-on-LAN-function.patch - patches.drivers/qlge-0014-Add-ethtool-register-dump-function.patch - patches.drivers/qlge-0015-Add-ethtool-self-test.patch - patches.drivers/qlge-0016-Change-naming-on-vlan-API.patch - patches.drivers/qlge-0017-Fix-indentations.patch - patches.drivers/qlge-0018-Add-firmware-driver-sub-command-support.patch - patches.drivers/qlge-0019-Clean-up-netdev-stats-usage.patch - patches.drivers/qlge-0020-Do-not-change-frame-routing-during-suspend.patch - patches.drivers/qlge-0021-Add-asic-reset-to-open-call.patch - patches.drivers/qlge-0022-Clean-up-module-parameter-name.patch - patches.drivers/qlge-0023-Change-version-to-v1.00.00.23.00.00-01.patch - patches.drivers/qlge-0025-drivers-net-Move-and-to-end-of-previous-line.patch - patches.drivers/qlge-0026-Turn-on-RX-header-split-based-on-platform.patch - patches.drivers/qlge-0027-Add-RX-frame-handlers-for-non-split-frames.patch - patches.drivers/qlge-0028-Add-napi-gro-frags-interface.patch - patches.drivers/qlge-0029-drivers-net-qlge-qlge_main.c-use-pM-to-show-MAC-ad.patch - patches.drivers/qlge-0030-drivers-net-use-DEFINE_PCI_DEVICE_TABLE.patch - patches.drivers/qlge-0031-Add-data-for-firmware-dump.patch - patches.drivers/qlge-0032-Add-basic-firmware-dump.patch - patches.drivers/qlge-0033-Add-probe-regs-to-firmware-dump.patch - patches.drivers/qlge-0034-Add-RAM-dump-to-firmware-dump.patch - patches.drivers/qlge-0035-Add-alternate-function-s-reg-dump-to-fw-dump.patch - patches.drivers/qlge-0036-Add-serdes-reg-blocks-dump-to-firmware-dump.patch - patches.drivers/qlge-0037-Add-xgmac-reg-blocks-to-firwmare-dump.patch - patches.drivers/qlge-0038-Add-module-param-to-force-firmware-core-dump.patch - patches.drivers/qlge-Fix-dropping-of-large-non-TCP-UDP-frames.patch - patches.drivers/qlge-Fix-occasional-loopback-test-failure.patch - patches.drivers/qlge-Fix-bonding-mac-address-bug.patch - - # bnc#575956 qlge eeh - patches.drivers/qlge-0001-move-reset-from-eeh-io_resume-to-slot_reset.patch - patches.drivers/qlge-0002-add-watchdog-timer.patch - patches.drivers/qlge-0003-add-check-for-eeh-failure-when-closing-device.patch - - # netxen patches from 2.6.33 bnc#560003, fate#307134 - patches.drivers/netxen-0000-Use-the-instance-of-net_device_stats-from-net.patch - patches.drivers/netxen-0001-remove-sub-64-bit-mem-accesses.patch - patches.drivers/netxen-0002-add-access-to-on-chip-memory-for-tools.patch - patches.drivers/netxen-0003-annotate-register-windowing-code.patch - patches.drivers/netxen-0004-separate-register-and-memory-access-lock.patch - patches.drivers/netxen-0005-add-sysfs-entries-for-diag-tools.patch - patches.drivers/netxen-0006-defines-for-next-revision.patch - patches.drivers/netxen-0007-128-memory-controller-support.patch - patches.drivers/netxen-0008-reset-sequence-changes.patch - patches.drivers/netxen-0009-onchip-memory-access-change.patch - patches.drivers/netxen-0010-fix-error-codes-in-for-tools-access.patch - patches.drivers/netxen-0011-sysfs-control-for-auto-firmware-recovery.patch - patches.drivers/netxen-0012-update-version-to-4.0.62.patch - patches.drivers/netxen-0013-fix-builds-for-SYSFS-n-or-MODULES-n.patch - patches.drivers/netxen-0014-support-for-new-firmware-file-format.patch - patches.drivers/netxen-0015-refactor-indirect-register-access.patch - patches.drivers/netxen-0016-add-PCI-IDs-for-new-chip.patch - patches.drivers/netxen-0017-update-module-info.patch - patches.drivers/netxen-0018-module-firmware-hints.patch - patches.drivers/netxen-0019-update-version-to-4.0.65.patch - patches.drivers/netxen-0020-remove-PCI-IDs-of-CNA-device.patch - patches.drivers/netxen-0021-fix-debug-tools-access-for-NX2031.patch - patches.drivers/netxen-0022-fix-failure-cases-for-fw-hang-recovery.patch - patches.drivers/netxen-8f9b3f-to-c651a8.patch - - # fcoe patches from 2.6.33 bnc#562046 - patches.fixes/libfc-fix-payload-size-pa - patches.fixes/fcoe-allow-scsi-fcp-to-be - patches.fixes/libfc-add-fc-bb-5-lesb-co - patches.fixes/libfcoe-add-checking-disa - patches.fixes/libfcoe-add-tracking-fip--0 - patches.fixes/libfcoe-add-tracking-fip- - patches.fixes/libfc-add-fcoe_fc_els_les - patches.fixes/fcoe-libfc-add-get_lesb-t - patches.fixes/libfc-add-support-of-rece - patches.fixes/libfc-add-target-reset-fl - patches.fixes/fcoe-use-lld-s-wwpn-and-w - patches.fixes/libfc-reduce-hold-time-on - patches.fixes/fcoe-libfc-adds-enable-di - - patches.fixes/fc_sdev_blocked.patch - patches.suse/libfc-fix-unnecessary-seq-id-jump - patches.suse/libfc-use-offload-em-instance-again - patches.suse/libfc-fix-fcp-pkt-recovery - - # ixgbe patches from 2.6.33 bnc#562046 - patches.drivers/dcb-data-center-bridging-ops-s - patches.drivers/ixgbe-use-the-instance-of-net_ - patches.drivers/ixgbe-add-support-for-82599-ba - patches.drivers/ixgbe-fix-kr-to-kx-fail-over-f - patches.drivers/net-add-netdev_alloc_skb_ip_al - patches.drivers/net-use-netdev_alloc_skb_ip_al - patches.drivers/ixgbe-fix-erroneous-display-of - patches.drivers/ixgbe-add-support-for-82599-al - patches.drivers/net-add-ndo_fcoe_get_wwn-to-ne - patches.drivers/ixgbe-add-support-for-netdev_o - patches.drivers/vlan-add-support-to-netdev_ops - patches.drivers/ixgbe-r_idx-not-used-in-ixgbe_ - patches.drivers/ixgbe-flush-the-lsc-mask-chang - patches.drivers/ixgbe-make-queue-pairs-on-sing - patches.drivers/drivers-net-request_irq-remove - patches.drivers/ixgbe-modify-82599-hwrsc-stati - patches.drivers/ixgbe-use-rx-buffer-length-fro - patches.drivers/ixgbe-only-set-clear-vfe-in-ix - patches.drivers/ixgbe-handle-parameters-for-tx - patches.drivers/ixgbe-disable-flow-control-for - patches.drivers/ixgbe-links2-is-not-a-valid-re - patches.drivers/ixgbe-fix-receive-address-regi - patches.drivers/ethtool-add-direct-attach-supp - patches.drivers/ixgbe-display-currently-attach - patches.drivers/ixgbe-use-known-user-priority- - patches.drivers/ixgbe-select-fcoe-tx-queue-in- - patches.drivers/ixgbe-change-default-ring-size - patches.drivers/ixgbe-performance-tweaks - patches.drivers/ixgbe-use-eiam-to-automask-msi - patches.drivers/ixgbe-Fix-DMA-mapping-unmapping-issues-when-HWRSC-is.patch - - patches.drivers/ixgbe-only-process-one-ixgbe_watchdog_task-at-a-time.patch - patches.drivers/ixgbe-prevent-speculative-processing-of-descriptors.patch - patches.drivers/ixgbe-add-support-for-82599-KR-device-0x1517.patch - patches.drivers/ixgbe-don-t-exceed-user-buffer - -+philips patches.drivers/ixgbe-Add-support-for-the-new-ethtool-n-tuple-progra.patch -+philips patches.drivers/ethtool-Introduce-n-tuple-filter-programming-support.patch - - patches.drivers/bnx2x-backports-v2.6.32-to-af901ca.patch - patches.drivers/bnx2x-to-version-1.52.1-7.patch - - patches.drivers/cxgb3-add-memory-barriers.patch - patches.drivers/cxgb3-Set-the-rxq.patch - patches.drivers/cxgb3-fix-GRO-checksum-check.patch - patches.drivers/cxgb3-FIx-VLAN-over-Jumbo-frames.patch - patches.drivers/cxgb3-fix-link-flap.patch - patches.drivers/cxgb3-fixing-eeh-handlers.patch - - patches.drivers/benet-from-v2.6.32-to-8f47afe0.patch - patches.drivers/be2net-swap-only-first-2-fields-of-mcc_wrb.patch - patches.drivers/be2net-set-proper-value-to-version-field-in-req-hdr.patch - patches.drivers/be2net-remove-ASIC-generation-number-from-Kconfig.patch - patches.drivers/be2net-change-the-driver-description.patch - patches.drivers/be2net-fix-to-limit-max-vlans-supported-in-certain-s.patch - patches.drivers/be2net-minor-code-optimizations.patch - patches.drivers/be2net-0000-fix-bug-in-rx-page-posting.patch - patches.drivers/be2net-0001-Add-link-test-to-list-of-ethtool-self-tests.patch - patches.drivers/be2net-0002-ethtool-self-test-reorganization.patch - patches.drivers/be2net-0003-bug-fix-in-be_read_eeprom.patch - patches.drivers/be2net-0004-bug-fix-for-flashing-the-BladeEngine3-ASIC.patch - patches.drivers/be2net-0005-remove-unused-pci-device-id.patch - patches.drivers/be2net-0006-bug-fix-in-be_change_mtu.patch - patches.drivers/be2net-use-eq-id-to-calculate-cev-isr-reg-offset.patch - patches.drivers/be2net-implement-EEH-pci-error-recovery-handlers.patch - patches.drivers/be2net-a-mini-optimization-in-rx_compl_process-co.patch - patches.drivers/be2net-don-t-rearm-mcc-cq-when-device-is-not-open.patch - patches.drivers/be2net-fix-rx-path-to-ignore-a-flush-completion.patch - patches.drivers/be2net-fix-tx-completion-polling.patch - patches.drivers/be2net-download-NCSI-section-during-firmware-update.patch - patches.drivers/be2net-update-version-2.101.346u-to-2.102.147s.patch - - # Infiniband fixes - patches.drivers/ehca-ib-qp-max-supported.patch - patches.drivers/ehca-no-disable-irq-in-tasklet.patch - - patches.drivers/e1000e-call-pci_save_state-after-pci_restore_state.patch - patches.drivers/e1000e-enable-new-82567V-3-device.patch - - # entropy FATE##307517 suse patches, put below rest of netdev patches - patches.drivers/bnx2-entropy-source.patch - patches.drivers/e1000-entropy-source.patch - patches.drivers/e1000e-entropy-source.patch - patches.drivers/igb-entropy-source.patch - patches.drivers/ixgbe-entropy-source.patch - patches.drivers/tg3-entropy-source.patch - - patches.drivers/ehca-process-mad-null.patch - patches.drivers/mlx4_core-missing-device-id-6778.patch - patches.drivers/iw_cxgb3-dlpar.patch - - ######################################################## - # Wireless Networking - ######################################################## - patches.suse/wireless-no-aes-select - - ######################################################## - # iSCSI - ######################################################## - patches.fixes/bnx2i-use-common-iscsi-suspend-queue - patches.drivers/bnx2i-backport-from-v2.6.32-to-45ca38e.patch - patches.fixes/libiscsi-fix-login-text-checks-in-pdu-inject - patches.fixes/libiscsi-check-tmf-state-before-sending-pdu - patches.fixes/libiscsi-add-warm-target-reset-tmf-support - patches.fixes/iser-set-tgt-and-lu-reset-timeout - patches.drivers/cnic-backport-from-v2.6.32-4e9c4f.patch - patches.drivers/be2iscsi-beta4-update - patches.fixes/libiscsi-add-recover-target - patches.drivers/be2iscsi-BE3-support - - ######################################################## - # PCI and PCI hotplug - ######################################################## - patches.fixes/PCIe-AER-reject-aer-inject-if-hardware-mask-error-reporting.patch - - # Use list instead static array for pci resources - patches.fixes/pci_use_list_for_resources_1_5.patch - patches.fixes/pci_use_list_for_resources_2_5.patch - patches.fixes/pci_use_list_for_resources_3_5.patch - patches.fixes/pci_use_list_for_resources_4_5.patch - patches.fixes/pci_use_list_for_resources_5_5.patch - - # bug 586343 - patches.fixes/vgaarb-fix-vga-arbiter-to-accept-pci-domains-other-than-0.patch - patches.fixes/pci-update-pci_set_vga_state-to-call-arch-functions.patch - patches.fixes/pci_aer_unconditionally_clear_uncor_status.patch - - ######################################################## - # sysfs / driver core - ######################################################## - patches.suse/driver-core-reduce-level-of-request_firmware-messages.patch - - ######################################################## - # USB - ######################################################## - patches.suse/usb-storage-disable-delay.patch - - # remove this for openSUSE 11.3, it is here only for SLE11 SP1 and later. - patches.suse/revert-usb-remove-phidget-drivers-from-kernel-tree.patch - - ######################################################## - # I2C - ######################################################## - - ######################################################## - # Input & Console - ######################################################## - patches.suse/bootsplash - patches.suse/Cleanup-and-make-boot-splash-work-with-KMS.patch - patches.suse/bootsplash-keep-multiple-data - patches.suse/bootsplash-scaler - patches.drivers/elousb.patch - patches.fixes/input-add-acer-aspire-5710-to-nomux.patch - patches.drivers/synaptics-hp-clickpad - patches.drivers/synaptics-clickpad-area-param - patches.drivers/synaptics-clickpad-button-toggle - patches.drivers/synaptics-clickpad-bottom-enable - - ########################################################## - # Sound - ########################################################## - patches.drivers/alsa-sp1-hda-02-vectorize-get_empty_pcm_device - patches.drivers/alsa-sp1-hda-03-allow-up-to-4-HDMI - patches.drivers/alsa-sp1-hda-04-convert-intelhdmi-global-references - patches.drivers/alsa-sp1-hda-05-remove-intelhdmi-dependency-on-multiout - patches.drivers/alsa-sp1-hda-06-use-pcm-prepare-callbacks-for-intelhdmi - patches.drivers/alsa-sp1-hda-07-reorder-intelhemi-prepare-callbacks - patches.drivers/alsa-sp1-hda-08-vectorize-intelhdmi - patches.drivers/alsa-sp1-hda-09-get-intelhtemi-max-channels - patches.drivers/alsa-sp1-hda-10-auto-parse-intelhdmi-cvt-pin - patches.drivers/alsa-sp1-hda-11-remove-static-intelhdmi-config - patches.drivers/alsa-sp1-hda-12-reset-pins-idt-codec-free - patches.drivers/alsa-sp1-hda-13-add-reboot-notifier - patches.drivers/alsa-sp1-hda-14-add-missing-export - patches.drivers/alsa-sp1-hda-15-fix-build-warning - patches.drivers/alsa-sp1-hda-16-stac-dual-headphones-fix - patches.drivers/alsa-sp1-hda-17-fix-mute-LED-sync-idt92h383xxx - patches.drivers/alsa-sp1-hda-19-cx5047-test-mode-fix - patches.drivers/alsa-sp1-hda-20-fsc-amilo-pi1505-fix - patches.drivers/alsa-sp1-hda-21-hp-dv3-position-fix-quirk - patches.drivers/alsa-sp1-hda-22-alc888-exclude-unusable-adcs - patches.drivers/alsa-sp1-hda-23-hp-mute-led-gpio-fixes - patches.drivers/alsa-sp1-hda-24-keep-msi-on - patches.drivers/alsa-sp1-hda-25-add-power-counter - patches.drivers/alsa-sp1-hda-26-fix-hwdep-config-dependency - patches.drivers/alsa-sp1-hda-27-sony-vaio-use-default-auto - patches.drivers/alsa-sp1-hda-28-hdmi-fix-audio-infoframe-size - patches.drivers/alsa-sp1-hda-29-hdmi-fix-channel-mapping-slot - patches.drivers/alsa-sp1-hda-30-hdmi-export-monitor-presence - patches.drivers/alsa-sp1-hda-31-hdmi-add-jack-detect-helper - patches.drivers/alsa-sp1-hda-32-hdmi-probe-monitor-at-init - patches.drivers/alsa-sp1-hda-33-hdmi-separate-checksum-routine - patches.drivers/alsa-sp1-hda-34-hdmi-sticky-infoframe - patches.drivers/alsa-sp1-hda-35-hdmi-sticky-stream-id - patches.drivers/alsa-sp1-hda-36-sticky-channel-count - patches.drivers/alsa-sp1-hda-37-show-epps-capability-in-proc - patches.drivers/alsa-sp1-hda-38-acer-aspire-4930g-mute-fix - patches.drivers/alsa-sp1-hda-39-hdmi-show-hbr-pincap - patches.drivers/alsa-sp1-hda-40-hdmi-accept-DP-pin - patches.drivers/alsa-sp1-hda-41-hdmi-channel-mapping-pin - patches.drivers/alsa-sp1-hda-42-hdmi-add-chmap-configs - patches.drivers/alsa-sp1-hda-43-dont-power-off-hda-link - patches.drivers/alsa-sp1-hda-44-alc661-892-support - patches.drivers/alsa-sp1-hda-45-alc661-memleak-fix - patches.drivers/alsa-sp1-hda-47-quirk-for-intel-d945-mobo - patches.drivers/alsa-sp1-hda-48-alc260-will-quirk-for-acer - patches.drivers/alsa-sp1-hda-49-more-alc663-fixes - patches.drivers/alsa-sp1-hda-52-hdmi-sticky-stream-tag - patches.drivers/alsa-sp1-hda-55-alc259-hp-pin-fix - patches.drivers/alsa-sp1-hda-56-realtek-eapd-fix - patches.drivers/alsa-sp1-hda-57-cx5051-toshiba-quirk - patches.drivers/alsa-sp1-hda-58-cx5051-lenovo-mute-fix - patches.drivers/alsa-sp1-hda-59-idt92hd83xxx-hp-mute-led - patches.drivers/alsa-sp1-hda-60-add-idt92hd88x-support - patches.drivers/alsa-sp1-hda-61-add-idt92hd88x-support2 - patches.drivers/alsa-sp1-hda-62-fix-hp-dv-mute-led - patches.drivers/alsa-sp1-hda-63-idt-hp-mute-led-detect - patches.drivers/alsa-sp1-hda-64-idt-hp-mute-led-cleanup - patches.drivers/alsa-sp1-hda-65-idt-hp-mute-led-cleanup2 - patches.drivers/alsa-sp1-hda-66-idt-hp-mute-led-fix-polarity - patches.drivers/alsa-sp1-hda-67-alc268-fix-quirk-check - patches.drivers/alsa-sp1-hda-68-fix-realtek-secondary-adcs - patches.drivers/alsa-sp1-hda-69-alc262-single-adc-fix - - ######################################################## - # Other driver fixes - ######################################################## - patches.fixes/ieee1394-sbp2_long_sysfs_ieee1394_id.patch - - patches.fixes/parport-mutex - - # suse-2.4 compatible crypto loop driver - patches.suse/twofish-2.6 - # Allow setting maximum number of raw devices - patches.suse/raw_device_max_minors_param.diff - patches.suse/no-partition-scan - - patches.drivers/add-support-for-intel-cougar-point-chipset.patch - patches.fixes/pci-fix-nested-spinlock-hang-in-aer_inject.patch - patches.drivers/support-pci-domains-in-aer-inject - - ######################################################## - # Other drivers we have added to the tree - ######################################################## - - ######################################################## - # Suspend/Resume stuff - ######################################################## - - ######################################################## - # device-mapper - ######################################################## - patches.suse/dm-emulate-blkrrpart-ioctl - patches.suse/dm-raid45-26-Nov-2009.patch - patches.fixes/dm-mpath-reattach-dh - patches.suse/dm-mpath-leastpending-path-update - patches.suse/dm-mpath-accept-failed-paths - patches.suse/dm-mpath-detach-existing-hardware-handler - patches.suse/dm-mpath-null-pgs - patches.fixes/dm-table-switch-to-readonly - patches.suse/dm-mpath-evaluate-request-result-and-sense - patches.fixes/dm-release-map_lock-before-set_disk_ro - patches.suse/dm-mpath-no-activate-for-offlined-paths - patches.suse/dm-mpath-no-partitions-feature - patches.suse/dm-mpath-skip-disabled-devices-when-iterating - - ######################################################## - # md - ######################################################## - - ########################################################## - # - # Security stuff - # - ########################################################## - - ########################################################## - # Audit - ########################################################## - - ########################################################## - # AppArmor - ########################################################## -# patches.apparmor/security-default-lsm -# patches.apparmor/apparmor-security-module -# patches.apparmor/apparmor-correct-mapping-of-file-permissions -# patches.apparmor/apparmor-turn-auditing-of-ptrace-on -# patches.apparmor/apparmor-fix-operator-precidence-issue-in-as_path_link -# patches.apparmor/apparmor-explicitly-include-header-files-to-allow-apparmor-to-build-on-powerpc -# patches.apparmor/apparmor-ensure-apparmor-enabled-parmater-is-off-if-apparmor-fails-to-initialize -# patches.apparmor/apparmor-fix-auditing-of-domain-transitions-to-include-target-profile-information -# patches.apparmor/apparmor-fix-c99-violation -# patches.apparmor/apparmor-fix-build-failure-on-ia64 -# patches.apparmor/apparmor-revert-reporting-of-create-to-write-permission -# patches.apparmor/apparmor-fix-null-pointer-dereference-oops-in-profile-attachment -# patches.apparmor/apparmor-fix-argument-size-missmatch-on-64-bit-builds -# patches.apparmor/apparmor-fix-change_profile-failing-lpn401931 -# patches.apparmor/apparmor-fix-determination-of-forced-audit-messages -# patches.apparmor/apparmor-fix-oops-in-auditing-of-the-policy-interface-offset -# patches.apparmor/apparmor-fix-profile-attachment-for-regexp-based-profile-names -# patches.apparmor/apparmor-return-the-correct-error-codes-on-profile-addition-removal -# patches.apparmor/apparmor-fix-oops-in-profile-listing-and-display-full-list -# patches.apparmor/apparmor-fix-mapping-of-pux-to-new-internal-permission-format -# patches.apparmor/apparmor-fix-change_profile-failure -# patches.apparmor/apparmor-fix-profile-namespace-removal -# patches.apparmor/apparmor-fix-oops-when-auditing-the-addition-of-profile-namespace -# patches.apparmor/apparmor-fix-mediation-of-created-paths-that-look-like-deleted-paths -# patches.apparmor/apparmor-fix-file-auditing-when-quiet-is-used -# patches.apparmor/apparmor-policy-load-and-replacement-can-fail-to-alloc-mem -# patches.apparmor/apparmor-fix-failure-to-audit-change_hat-correctly - -# patches.apparmor/apparmor-allow-truncation-of-deleted-files -# patches.apparmor/apparmor-fix-oops-after-profile-removal -# patches.apparmor/apparmor-fix-oops-when-in-apparmor_bprm_set_creds -# patches.apparmor/apparmor-fix-cap-audit_caching-preemption-disabling -# patches.apparmor/apparmor-fix-refcounting-bug-causing-leak-of-creds-and-oops -# patches.apparmor/apparmor-fix-leak-when-profile-transition-table-fails-unpack -# patches.apparmor/apparmor-fully-close-race-condition-for-deleted-paths - -# patches.apparmor/apparmor-missing-unlock -# patches.apparmor/ptrace_may_access-fix -# patches.apparmor/apparmor-fix-security_ops-task_setrlimit-api-use -# patches.apparmor/apparmor-check-for-network-in-interrupt-and-work-around - - ######################################################## - # Address space layout randomization - ######################################################## - - ######################################################## - # KDB v4.4 - ######################################################## - - patches.suse/kdb-common - patches.suse/kdb-x86 - patches.suse/kdb-ia64 - patches.suse/kdb-build-fixes - patches.suse/kdb-x86-build-fixes - patches.suse/kdb-usb-rework - patches.suse/kdb_fix_ia64_build.patch - patches.suse/kdb_dont_touch_i8042_early.patch - patches.suse/kdb-handle-nonexistance-keyboard-controller - patches.suse/kdb-fix-kdb_cmds-to-include-the-arch-common-macro - patches.suse/kdb-fix-the-multi-word-nop-instructions-in-the-disassembler - patches.suse/x86-uv-kdb-support-for-uv-nmi-handler.patch - patches.suse/x86-add-kdb-support-for-unknown_nmi_error-handler.patch - patches.suse/kdb-x86-backtrace-code-to-use-the-in-kernel-show_stack-function - - # bug 586343, depends on the KDB patches - patches.fixes/x86_64-uv-update-uv-arch-to-target-legacy-vga-i-o-correctly.patch - - ######################################################## - # Other patches for debugging - ######################################################## -# patches.suse/crasher-26.diff -# patches.suse/stack-unwind -# patches.suse/no-frame-pointer-select -# patches.arch/x86_64-unwind-annotations - - ######################################################## - # Kdump - ######################################################## - patches.suse/kdump-dump_after_notifier.patch - - ######################################################## - # audit subsystem - ######################################################## - patches.suse/audit-export-logging.patch - - ######################################################## - # Performance Monitoring, Tracing etc - ######################################################## - - patches.suse/perfmon2.patch - patches.suse/perfmon2_ioctl.patch - patches.suse/perfmon2-remove_syscalls.patch - patches.suse/perfmon2-remove_get_base_syscall_attr.patch - patches.suse/perfmon2_noutrace.patch - - patches.fixes/oprofile_bios_ctr.patch - - patches.trace/utrace-core - -+needs_update-32 patches.fixes/nfs-write.c-bug-removal.patch - patches.fixes/ia64-configure-HAVE_UNSTABLE_SCHED_CLOCK-for-SGI_SN.patch - - ######################################################## - # KVM patches - ######################################################## - - patches.fixes/kvm-ioapic.patch - patches.fixes/kvm-macos.patch - - ######################################################## - # Staging tree patches - # new drivers that are going upstream - ######################################################## - - ######################################################## - # "fastboot" patches - # These should all be upstream, we took them from - # moblin to try to speed up the boot process - ######################################################## - patches.suse/linux-2.6.29-dont-wait-for-mouse.patch - patches.suse/linux-2.6.29-enable-async-by-default.patch -- patches.suse/linux-2.6.29-even-faster-kms.patch - patches.suse/linux-2.6.29-silence-acer-message.patch - patches.suse/linux-2.6.29-kms-after-sata.patch - patches.suse/linux-2.6.29-jbd-longer-commit-interval.patch - - patches.suse/trace-open.patch - - # some driver patches, should move up in the series... - patches.suse/linux-2.6.29-touchkit.patch - patches.suse/uvcvideo-ignore-hue-control-for-5986-0241.patch - - ######################################################## - # You'd better have a good reason for adding a patch - # below here. - ######################################################## - -######################################################## -# XEN architecture, version 3 -######################################################## - -# xen patches, from xenbits mercurial repository. -# http://xenbits.xensource.com/ext/linux-2.6-merge.hg -# -# everything named "xen3-auto-*" is auto-generated. -# PLEASE DON'T EDIT THESE PATCHES. Create fixup patches -# on top of them instead. This reduces workload when -# re-basing to a newer xen tree. -# - ### both uml framebuffer and xen need this one. - patches.xen/add-console-use-vt - - # split out patches - patches.xen/linux-2.6.19-rc1-kexec-move_segment_code-i386.patch - patches.xen/linux-2.6.19-rc1-kexec-move_segment_code-x86_64.patch - patches.xen/ipv6-no-autoconf - patches.xen/pci-guestdev - patches.xen/pci-reserve - patches.xen/sfc-driverlink - patches.xen/sfc-resource-driver - patches.xen/sfc-driverlink-conditional - patches.xen/sfc-external-sram - patches.xen/tmem - - # bulk stuff, new files for xen - patches.xen/xen3-auto-xen-arch.diff - patches.xen/xen3-auto-xen-drivers.diff - patches.xen/xen3-auto-include-xen-interface.diff - - # kconfig bits for xen - patches.xen/xen3-auto-xen-kconfig.diff - - # common code changes - patches.xen/xen3-auto-common.diff - patches.xen/xen3-auto-arch-x86.diff - patches.xen/xen3-auto-arch-i386.diff - patches.xen/xen3-auto-arch-x86_64.diff - - # fixups due to upstream Xen parts - patches.xen/xen3-fixup-xen - - patches.xen/sfc-set-arch - patches.xen/sfc-endianness - - # newer changeset backports - - # changes outside arch/{i386,x86_64}/xen - patches.xen/xen3-fixup-kconfig - patches.xen/xen3-fixup-common - patches.xen/xen3-fixup-arch-x86 - - # ports of other patches - patches.xen/xen3-patch-2.6.18 - patches.xen/xen3-patch-2.6.19 - patches.xen/xen3-patch-2.6.20 - patches.xen/xen3-patch-2.6.21 - patches.xen/xen3-patch-2.6.22 - patches.xen/xen3-patch-2.6.23 - patches.xen/xen3-patch-2.6.24 - patches.xen/xen3-patch-2.6.25 - patches.xen/xen3-patch-2.6.26 - patches.xen/xen3-patch-2.6.27 - patches.xen/xen3-patch-2.6.28 - patches.xen/xen3-patch-2.6.29 - patches.xen/xen3-patch-2.6.30 - patches.xen/xen3-patch-2.6.31 - patches.xen/xen3-patch-2.6.32 - patches.xen/xen3-patch-2.6.32.1-2 - patches.xen/xen3-patch-2.6.32.2-3 - patches.xen/xen3-patch-2.6.32.3-4 - patches.xen/xen3-patch-2.6.32.7-8 - patches.xen/xen3-patch-2.6.32.8-9 - patches.xen/xen3-seccomp-disable-tsc-option - patches.xen/xen3-fix_clock_gettime_vsyscall_time_warp.diff - patches.xen/xen3-x86-mcp51-no-dac - patches.xen/xen3-x86-64-preserve-large-page-mapping-for-1st-2mb-kernel-txt-with-config_debug_rodata - patches.xen/xen3-x86-64-align-rodata-kernel-section-to-2mb-with-config_debug_rodata - patches.xen/xen3-x86-mark_rodata_rw.patch - patches.xen/xen3-x86-ftrace-fix-rodata-1.patch - patches.xen/xen3-x86-ftrace-fix-rodata-3.patch - patches.xen/xen3-x86-Remove-CPU-cache-size-output-for-non-Intel-too.patch - patches.xen/xen3-x86-cpu-mv-display_cacheinfo-cpu_detect_cache_sizes.patch - patches.xen/xen3-x86-Limit-the-number-of-processor-bootup-messages.patch - patches.xen/xen3-x86_irq_setup_extra_ioapic_for_sci.patch - patches.xen/xen3-x86_64_apic_consider_hotplug_for_mode_logical_flat.patch - patches.xen/xen3-x86_ioapic_fix_out_of_order_gsi.patch - patches.xen/xen3-bug-561933_uv_pat_is_gru_range.patch - patches.xen/xen3-x86-Fix-sched_clock_cpu-for-systems-with-unsynchronized-TSC.patch - patches.xen/xen3-x86-Unify-fixup_irqs-for-32-bit-and-64-bit-kernels.patch - patches.xen/xen3-x86-intr-remap-Avoid-irq_chip-mask-unmask-in-fixup_irqs-for-intr-remapping.patch - patches.xen/xen3-x86-Remove-local_irq_enable-local_irq_disable-in-fixup_irqs.patch - patches.xen/xen3-vmw_pvscsi-scsi-driver-for-vmware-s-virtual-hba.patch - patches.xen/xen3-add-support-for-intel-cougar-point-chipset.patch - patches.xen/xen3-kdb-x86 - patches.xen/xen3-stack-unwind - patches.xen/xen3-x86_64-unwind-annotations - - # bugfixes and enhancements - patches.xen/xen-balloon-max-target - patches.xen/xen-modular-blktap - patches.xen/xen-blkback-bimodal-suse - patches.xen/xen-blkif-protocol-fallback-hack - patches.xen/xen-blkback-cdrom - patches.xen/xen-blktap-write-barriers - patches.xen/xen-op-packet - patches.xen/xen-blkfront-cdrom - patches.xen/xen-vbd-resize - patches.xen/xen-sections - patches.xen/xen-swiotlb-heuristics - patches.xen/xen-kconfig-compat - patches.xen/xen-cpufreq-report - patches.xen/xen-staging-build - patches.xen/xen-sysdev-suspend - patches.xen/xen-ipi-per-cpu-irq - patches.xen/xen-virq-per-cpu-irq - patches.xen/xen-spinlock-poll-early - patches.xen/xen-configurable-guest-devices - patches.xen/xen-netback-nr-irqs - patches.xen/xen-netback-notify-multi - patches.xen/xen-netback-generalize - patches.xen/xen-netback-multiple-tasklets - patches.xen/xen-netback-kernel-threads - patches.xen/xen-usbfront-schedule - patches.xen/xen-unpriv-build - patches.xen/xen-dcdbas - patches.xen/xen-floppy - patches.xen/xen-x86-panic-no-reboot - patches.xen/xen-x86-dcr-fallback - patches.xen/xen-x86-consistent-nmi - patches.xen/xen-x86-no-lapic - patches.xen/xen-x86-pmd-handling - patches.xen/xen-x86-bigmem - patches.xen/xen-x86-machphys-prediction - patches.xen/xen-x86-exit-mmap - patches.xen/xen-x86-per-cpu-vcpu-info - patches.xen/xen-x86-xtime-lock - patches.xen/xen-x86-time-per-cpu - patches.xen/xen-x86_64-pgd-pin - patches.xen/xen-x86_64-pgd-alloc-order - patches.xen/xen-x86_64-dump-user-pgt - patches.xen/xen-x86_64-note-init-p2m diff --git a/src/patches/sysklogd-1.4.1-8bit-1.patch b/src/patches/sysklogd-1.4.1-8bit-1.patch deleted file mode 100644 index de12167..0000000 --- a/src/patches/sysklogd-1.4.1-8bit-1.patch +++ /dev/null @@ -1,23 +0,0 @@ -Submitted By: Alexander E. Patrakov -Date: 2004-05-09 -Initial Package Version: 1.4.1 -Origin: Alexander E. Patrakov -Upstream status: not submitted yet, probably will not be accepted -Description: Weakens rules for determining whether a character is printable. -Now only bytes < 0x20 and the 0x7f byte are considered to be unprintable. -The original rules were valid for ISO-8859-* and KOI*. - -Without this fix, logging meaningful Russian messages in UTF-8 is impossible. - -diff -u sysklogd-1.4.1/syslogd.c sysklogd-1.4.1.fixed/syslogd.c ---- sysklogd-1.4.1/syslogd.c 2001-03-12 00:40:10.000000000 +0500 -+++ sysklogd-1.4.1.fixed/syslogd.c 2004-05-09 09:05:42.972864104 +0600 -@@ -1449,7 +1449,7 @@ - else if (c < 040) { - *q++ = '^'; - *q++ = c ^ 0100; -- } else if (c == 0177 || (c & 0177) < 040) { -+ } else if (c == 0177) { - *q++ = '\'; - *q++ = '0' + ((c & 0300) >> 6); - *q++ = '0' + ((c & 0070) >> 3); diff --git a/src/patches/sysklogd-1.4.1-fixes-1.patch b/src/patches/sysklogd-1.4.1-fixes-1.patch deleted file mode 100644 index 68ac87c..0000000 --- a/src/patches/sysklogd-1.4.1-fixes-1.patch +++ /dev/null @@ -1,833 +0,0 @@ -Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes) -Date: 2005-01-23 -Initial Package Version: 1.4.1 -Upstream Status: Not submitted -Origin: http://www.infodrom.org/projects/sysklogd/cvs.php3 -Description: This patch is a cvs snapshot update as of 20050123. -Minus the debain and CVS directories. See the CHANGES. - -diff -Naur sysklogd-1.4.1/CHANGES sysklogd-20050123/CHANGES ---- sysklogd-1.4.1/CHANGES 2001-03-11 14:35:51.000000000 -0500 -+++ sysklogd-20050123/CHANGES 2005-01-15 14:14:21.000000000 -0500 -@@ -1,3 +1,42 @@ -+Version 1.4.2 -+ -+ . Dmitry V. Levin ldv@altlinux.org -+ - Close file descriptor in FindSymbolFile() in ksym.c in order not to -+ leak file descriptors. -+ . Solar Designer solar@openwall.com -+ - improve crunch_list() -+ - Prevent potential buffer overflow in reading messages from the -+ kernel log ringbuffer. -+ - Ensure that "len" is not placed in a register, and that the -+ endtty() signal handler is not installed too early which could -+ cause a segmentation fault or worse. -+ . Steve Grubb linux_4ever@yahoo.com -+ - fix memory calculation in crunch_list() -+ . Martin Schulze joey@infodrom.org -+ - klogd will reconnect to the logger (mostly syslogd) after it went -+ away -+ - On heavily loaded system syslog will not spit out error messages -+ anymore when recvfrom() results in EAGAIN -+ - Makefile improvements -+ - Local copy of module.h -+ - Improved sysklogd.8 -+ - Always log with syslogd's timezone and locale -+ - Remove trailing newline when forwarding messages -+ . Jon Burgess Jon_Burgess@eur.3com.com -+ - Moved the installation of the signal handler up a little bit so it -+ guaranteed to be available when the child is forked, hence, fixing a -+ race condition. This used to create problems with UML and fast -+ machines. -+ . Greg Trounson gregt@maths.otago.ac.nz -+ - Improved README.linux -+ . Ulf Härnhammar Ulf.Harnhammar.9485@student.uu.se -+ - Bondary check for fscanf() in InitKsyms() and CheckMapVersion() -+ . Colin Phipps cph@cph.demon.co.uk -+ - Don't block on the network socket in case of package los -+ . Dirk Mueller mueller@kde.org -+ - Don't crash when filesize limit is reached (e.g. without LFS) -+ -+ - Version 1.4.1 - - . klogd will set the console log level only if `-c' is given on the -@@ -30,3 +69,9 @@ - . Olaf Kirch okir@caldera.de - - Remove Unix Domain Sockets and switch to Datagram Unix Sockets - . Several bugfixes and improvements, please refer to the .c files -+ -+ -+Local variables: -+mode: indented-text -+fill-column: 72 -+End: -diff -Naur sysklogd-1.4.1/klogd.8 sysklogd-20050123/klogd.8 ---- sysklogd-1.4.1/klogd.8 2001-03-11 14:35:51.000000000 -0500 -+++ sysklogd-20050123/klogd.8 2001-03-11 18:00:51.000000000 -0500 -@@ -321,7 +321,7 @@ - .B klogd - to reload the module symbol information whenever a protection fault - is detected. Caution should be used before invoking the program in --'paranoid' mode. The stability of the kernel and the operating -+&'paranoid&' mode. The stability of the kernel and the operating - environment is always under question when a protection fault occurs. - Since the klogd daemon must execute system calls in order to read the - module symbol information there is the possibility that the system may -diff -Naur sysklogd-1.4.1/klogd.c sysklogd-20050123/klogd.c ---- sysklogd-1.4.1/klogd.c 2001-03-11 14:40:10.000000000 -0500 -+++ sysklogd-20050123/klogd.c 2004-04-29 09:29:03.000000000 -0400 -@@ -243,6 +243,9 @@ - * people have submitted patches: Troels Walsted Hansen - * troels@thule.no, Wolfgang Oertl Wolfgang.Oertl@uibk.ac.at - * and Thomas Roessler. -+ * Thu Apr 29 15:24:07 2004: Solar Designer solar@openwall.com -+ * Prevent potential buffer overflow in reading messages from the -+ * kernel log rinbuffer. - */ - - -@@ -938,7 +941,7 @@ - * messages into this fresh buffer. - */ - memset(log_buffer, '\0', sizeof(log_buffer)); -- if ( (rdcnt = ksyslog(2, log_buffer, sizeof(log_buffer))) < 0 ) -+ if ( (rdcnt = ksyslog(2, log_buffer, sizeof(log_buffer)-1)) < 0 ) - { - if ( errno == EINTR ) - return; -diff -Naur sysklogd-1.4.1/ksym.c sysklogd-20050123/ksym.c ---- sysklogd-1.4.1/ksym.c 2000-09-12 17:53:31.000000000 -0400 -+++ sysklogd-20050123/ksym.c 2004-07-16 02:48:27.000000000 -0400 -@@ -105,6 +105,15 @@ - * - * Tue Sep 12 23:48:12 CEST 2000: Martin Schulze joey@infodrom.ffis.de - * Close symbol file in InitKsyms() when an error occurred. -+ * -+ * Thu Apr 29 18:07:16 CEST 2004: Dmitry Levin ldv@altlinux.org -+ * Close file descriptor in FindSymbolFile() in order not to leak -+ * file descriptors. -+ * -+ * Fri Jul 16 08:32:49 CEST 2004: Ulf Härnhammar Ulf.Harnhammar.9485@student.uu.se -+ * Added boundary check for fscanf() in InitKsyms() and -+ * CheckMapVersion() to prevent an unintended crash when reading -+ * an incorrect System.map. - */ - - -@@ -236,7 +245,7 @@ - */ - while ( !feof(sym_file) ) - { -- if ( fscanf(sym_file, "%lx %c %s\n", &address, &type, sym) -+ if ( fscanf(sym_file, "%lx %c %511s\n", &address, &type, sym) - != 3 ) - { - Syslog(LOG_ERR, "Error in symbol table input (#1)."); -@@ -344,6 +353,7 @@ - if ( (sym_file = fopen(symfile, "r")) != (FILE *) 0 ) { - if (CheckMapVersion(symfile) == 1) - file = symfile; -+ fclose (sym_file); - } - if (sym_file == (FILE *) 0 || file == (char *) 0) { - sprintf (symfile, "%s", *mf); -@@ -352,6 +362,7 @@ - if ( (sym_file = fopen(symfile, "r")) != (FILE *) 0 ) { - if (CheckMapVersion(symfile) == 1) - file = symfile; -+ fclose (sym_file); - } - } - -@@ -533,7 +544,7 @@ - version = 0; - while ( !feof(sym_file) && (version == 0) ) - { -- if ( fscanf(sym_file, "%lx %c %s\n", &address, \ -+ if ( fscanf(sym_file, "%lx %c %511s\n", &address, \ - &type, sym) != 3 ) - { - Syslog(LOG_ERR, "Error in symbol table input (#2)."); -@@ -899,3 +910,11 @@ - return; - } - #endif -+ -+/* -+ * Local variables: -+ * c-indent-level: 8 -+ * c-basic-offset: 8 -+ * tab-width: 8 -+ * End: -+ */ -diff -Naur sysklogd-1.4.1/ksym_mod.c sysklogd-20050123/ksym_mod.c ---- sysklogd-1.4.1/ksym_mod.c 2000-09-12 17:15:28.000000000 -0400 -+++ sysklogd-20050123/ksym_mod.c 2004-03-31 10:47:08.000000000 -0500 -@@ -78,6 +78,11 @@ - * - * Tue Sep 12 23:11:13 CEST 2000: Martin Schulze joey@infodrom.ffis.de - * Changed llseek() to lseek64() in order to skip a libc warning. -+ * -+ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze joey@infodrom.org -+ * Removed references to <linux/module.h> since it doesn't work -+ * anymore with its recent content from Linux 2.4/2.6, created -+ * module.h locally instead. - */ - - -@@ -89,11 +94,12 @@ - #include <errno.h> - #include <sys/fcntl.h> - #include <sys/stat.h> -+#include "module.h" - #if !defined(__GLIBC__) - #include <linux/time.h> --#include <linux/module.h> -+#include <linux/linkage.h> - #else /* __GLIBC__ */ --#include <linux/module.h> -+#include <linux/linkage.h> - extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); - extern int get_kernel_syms __P ((struct kernel_sym *__table)); - #endif /* __GLIBC__ */ -@@ -107,7 +113,7 @@ - - #if !defined(__GLIBC__) - /* -- * The following bit uses some kernel/library magic to product what -+ * The following bit uses some kernel/library magic to produce what - * looks like a function call to user level code. This function is - * actually a system call in disguise. The purpose of the getsyms - * call is to return a current copy of the in-kernel symbol table. -diff -Naur sysklogd-1.4.1/Makefile sysklogd-20050123/Makefile ---- sysklogd-1.4.1/Makefile 1998-10-12 16:25:15.000000000 -0400 -+++ sysklogd-20050123/Makefile 2004-04-29 07:04:03.000000000 -0400 -@@ -4,12 +4,15 @@ - #CFLAGS= -g -DSYSV -Wall - #LDFLAGS= -g - CFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce -+# -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE - LDFLAGS= -s - - # Look where your install program is. - INSTALL = /usr/bin/install --BINDIR = /usr/sbin --MANDIR = /usr/man -+ -+# Destination paths, set prefix=/opt if required -+BINDIR = $(prefix)/usr/sbin -+MANDIR = $(prefix)/usr/share/man - - # There is one report that under an all ELF system there may be a need to - # explicilty link with libresolv.a. If linking syslogd fails you may wish -@@ -34,8 +37,9 @@ - # The following define establishes ownership for the man pages. - # Avery tells me that there is a difference between Debian and - # Slackware. Rather than choose sides I am leaving it up to the user. --MAN_OWNER = root --# MAN_OWNER = man -+MAN_USER = root -+MAN_GROUP = root -+MAN_PERMS = 644 - - # The following define establishes the name of the pid file for the - # syslogd daemon. The library include file (paths.h) defines the -@@ -116,7 +120,7 @@ - ${INSTALL} -m 500 -s klogd ${BINDIR}/klogd - - install_man: -- ${INSTALL} -o ${MAN_OWNER} -g ${MAN_OWNER} -m 644 sysklogd.8 ${MANDIR}/man8/sysklogd.8 -- ${INSTALL} -o ${MAN_OWNER} -g ${MAN_OWNER} -m 644 syslogd.8 ${MANDIR}/man8/syslogd.8 -- ${INSTALL} -o ${MAN_OWNER} -g ${MAN_OWNER} -m 644 syslog.conf.5 ${MANDIR}/man5/syslog.conf.5 -- ${INSTALL} -o ${MAN_OWNER} -g ${MAN_OWNER} -m 644 klogd.8 ${MANDIR}/man8/klogd.8 -+ ${INSTALL} -o ${MAN_USER} -g ${MAN_GROUP} -m ${MAN_PERMS} sysklogd.8 ${MANDIR}/man8/sysklogd.8 -+ ${INSTALL} -o ${MAN_USER} -g ${MAN_GROUP} -m ${MAN_PERMS} syslogd.8 ${MANDIR}/man8/syslogd.8 -+ ${INSTALL} -o ${MAN_USER} -g ${MAN_GROUP} -m ${MAN_PERMS} syslog.conf.5 ${MANDIR}/man5/syslog.conf.5 -+ ${INSTALL} -o ${MAN_USER} -g ${MAN_GROUP} -m ${MAN_PERMS} klogd.8 ${MANDIR}/man8/klogd.8 -diff -Naur sysklogd-1.4.1/module.h sysklogd-20050123/module.h ---- sysklogd-1.4.1/module.h 1969-12-31 19:00:00.000000000 -0500 -+++ sysklogd-20050123/module.h 2004-07-27 07:36:10.000000000 -0400 -@@ -0,0 +1,90 @@ -+/* -+ module.h - Miscellaneous module definitions -+ Copyright (c) 1996 Richard Henderson rth@tamu.edu -+ Copyright (c) 2004 Martin Schulze joey@infodrom.org -+ -+ This file is part of the sysklogd package. -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 2 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, write to the Free Software -+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+*/ -+ -+/* ChangeLog: -+ * -+ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze joey@infodrom.org -+ * Created local copy of module.h based on the content of Linux -+ * 2.2 since <linux/module.h> doesn't work anymore with its -+ * recent content from Linux 2.4/2.6. -+ */ -+ -+#include <asm/atomic.h> -+ -+#define MODULE_NAME_LEN 60 -+ -+struct kernel_sym -+{ -+ unsigned long value; -+ char name[MODULE_NAME_LEN]; -+}; -+ -+ -+struct list_head { -+ struct list_head *next, *prev; -+}; -+ -+ -+struct module_info -+{ -+ unsigned long addr; -+ unsigned long size; -+ unsigned long flags; -+ long usecount; -+}; -+ -+ -+struct module -+{ -+ unsigned long size_of_struct; /* == sizeof(module) */ -+ struct module *next; -+ const char *name; -+ unsigned long size; -+ -+ union -+ { -+ int usecount; -+ long pad; -+ } uc; /* Needs to keep its size - so says rth */ -+ -+ unsigned long flags; /* AUTOCLEAN et al */ -+ -+ unsigned nsyms; -+ unsigned ndeps; -+ -+ struct module_symbol *syms; -+ struct module_ref *deps; -+ struct module_ref *refs; -+ int (*init)(void); -+ void (*cleanup)(void); -+ const struct exception_table_entry *ex_table_start; -+ const struct exception_table_entry *ex_table_end; -+#ifdef __alpha__ -+ unsigned long gp; -+#endif -+ /* Members past this point are extensions to the basic -+ module support and are optional. Use mod_opt_member() -+ to examine them. */ -+ const struct module_persist *persist_start; -+ const struct module_persist *persist_end; -+ int (*can_unload)(void); -+}; -diff -Naur sysklogd-1.4.1/pidfile.c sysklogd-20050123/pidfile.c ---- sysklogd-1.4.1/pidfile.c 1998-02-10 17:37:12.000000000 -0500 -+++ sysklogd-20050123/pidfile.c 2003-09-27 22:38:18.000000000 -0400 -@@ -87,7 +87,7 @@ - int fd; - int pid; - -- if ( ((fd = open(pidfile, O_RDWR|O_CREAT, 0644)) == -1) -+ if ( ((fd = open(pidfile, O_RDWR|O_CREAT|O_TRUNC, 0644)) == -1) - || ((f = fdopen(fd, "r+")) == NULL) ) { - fprintf(stderr, "Can't open or create %s.\n", pidfile); - return 0; -diff -Naur sysklogd-1.4.1/README.1st sysklogd-20050123/README.1st ---- sysklogd-1.4.1/README.1st 1997-06-02 13:21:39.000000000 -0400 -+++ sysklogd-20050123/README.1st 2003-09-04 09:22:23.000000000 -0400 -@@ -1,5 +1,5 @@ --Very important information before using version 1.3 ----------------------------------------------------- -+Important information -+--------------------- - - The included version of syslogd behaves in a slightly different manner - to the one in former releases. Please review the following important -@@ -63,3 +63,10 @@ - these scripts should remove all old .pid files found in /var/run. - This will insure that klogd and syslogd start properly even if prior - executions have been terminated harshly. -+ -+* Large file support, i.e. support to write to log files that are -+ larger than 2 GB is not part of syslogd, but a matter of the Glibc -+ emitting different system calls to the kernel interface. To support -+ large files you'll have to compile syslogd with the compiler defines -+ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE so that glibc adjusts the -+ system calls. -diff -Naur sysklogd-1.4.1/README.linux sysklogd-20050123/README.linux ---- sysklogd-1.4.1/README.linux 1999-01-18 19:09:12.000000000 -0500 -+++ sysklogd-20050123/README.linux 2004-07-09 13:22:29.000000000 -0400 -@@ -40,12 +40,17 @@ - a useful addition to the software gene pool. - - There is a mailing list covering this package and syslog in general. --The lists address is sysklogd@Infodrom.North.DE . To subscribe send a --mail to Majordomo@Infodrom.North.DE with a line "subscribe sysklogd" -+The lists address is infodrom-sysklogd@lists.infodrom.org . To subscribe send a -+mail to majordomo@lists.infodrom.org with a line "subscribe infodrom-sysklogd" - in the message body. - --New versions of this package will be available at Joey's ftp server. --ftp://ftp.infodrom.north.de/pub/people/joey/sysklogd/ -+A second mailing list exists as infodrom-sysklogd-cvs@lists.infodrom.org. Only -+CVS messages and diffs are distributed there. Whenever new code is added to -+sysklogd, CVS generates a mail from these changes which will be sent to -+this list. Discussions will take place on the first list. -+ -+The latest version of this software can be found at: -+http://www.infodrom.org/projects/sysklogd/download.php3 - - Best regards, - -@@ -67,6 +72,6 @@ - - Martin Schulze - Infodrom Oldenburg --joey@linux.de -+joey@infodrom.org - --And a host of bug reporters whose contributions cannot be underestimated. -+And a number of bug reporters whose contributions cannot be underestimated. -diff -Naur sysklogd-1.4.1/sysklogd.8 sysklogd-20050123/sysklogd.8 ---- sysklogd-1.4.1/sysklogd.8 2001-03-11 14:35:51.000000000 -0500 -+++ sysklogd-20050123/sysklogd.8 2004-07-09 13:33:32.000000000 -0400 -@@ -84,7 +84,7 @@ - .B MAXFUNIX - within the syslogd.c source file. An example for a chroot() daemon is - described by the people from OpenBSD at --http://www.psionic.com/papers/dns.html. -+http://www.guides.sk/psionic/dns/. - .TP - .B "-d" - Turns on debug mode. Using this the daemon will not proceed a -@@ -117,7 +117,8 @@ - between two \fI-- MARK --\fR lines is 20 minutes. This can be changed - with this option. Setting the - .I interval --to zero turns it off entirely. -+to zero turns it off entirely. Depending on other log messages -+generated these lines may not be written consecutively. - .TP - .B "-n" - Avoid auto-backgrounding. This is needed especially if the -@@ -364,8 +365,10 @@ - - To avoid this in further times no messages that were received from a - remote host are sent out to another (or the same) remote host --anymore. If there are scenarios where this doesn't make sense, please --drop me (Joey) a line. -+anymore. If you experience are setup in which this doesn't make -+sense, please use the -+.B -h -+commandline switch. - - If the remote host is located in the same domain as the host, - .B syslogd -diff -Naur sysklogd-1.4.1/syslog.c sysklogd-20050123/syslog.c ---- sysklogd-1.4.1/syslog.c 2001-03-11 14:35:51.000000000 -0500 -+++ sysklogd-20050123/syslog.c 2003-08-27 11:56:01.000000000 -0400 -@@ -47,6 +47,9 @@ - * Sun Mar 11 20:23:44 CET 2001: Martin Schulze joey@infodrom.ffis.de - * Use SOCK_DGRAM for loggin, renables it to work. - * -+ * Wed Aug 27 17:48:16 CEST 2003: Martin Schulze joey@Infodrom.org -+ * Improved patch by Michael Pomraning mjp@securepipe.com to -+ * reconnect klogd to the logger after it went away. - */ - - #include <sys/types.h> -@@ -98,6 +101,7 @@ - register char *p; - time_t now; - int fd, saved_errno; -+ int result; - char tbuf[2048], fmt_cpy[1024], *stdp = (char *) 0; - - saved_errno = errno; -@@ -167,7 +171,16 @@ - } - - /* output the message to the local logger */ -- if (write(LogFile, tbuf, cnt + 1) >= 0 || !(LogStat&LOG_CONS)) -+ result = write(LogFile, tbuf, cnt + 1); -+ -+ if (result == -1 -+ && (errno == ECONNRESET || errno == ENOTCONN || errno == ECONNREFUSED)) { -+ closelog(); -+ openlog(LogTag, LogStat | LOG_NDELAY, LogFacility); -+ result = write(LogFile, tbuf, cnt + 1); -+ } -+ -+ if (result >= 0 || !(LogStat&LOG_CONS)) - return; - - /* -diff -Naur sysklogd-1.4.1/syslog.conf.5 sysklogd-20050123/syslog.conf.5 ---- sysklogd-1.4.1/syslog.conf.5 1999-08-21 06:49:14.000000000 -0400 -+++ sysklogd-20050123/syslog.conf.5 2003-05-22 15:31:20.000000000 -0400 -@@ -64,7 +64,7 @@ - The - .I facility - is one of the following keywords: --.BR auth ", " authpriv ", " cron ", " daemon ", " kern ", " lpr ", " -+.BR auth ", " authpriv ", " cron ", " daemon ", " ftp ", " kern ", " lpr ", " - .BR mail ", " mark ", " news ", " security " (same as " auth "), " - .BR syslog ", " user ", " uucp " and " local0 " through " local7 . - The keyword -@@ -121,12 +121,21 @@ - - This - .BR syslogd (8) --has a syntax extension to the original BSD source, that makes its use -+has a syntax extension to the original BSD source, which makes its use - more intuitively. You may precede every priority with an equation sign --(``='') to specify only this single priority and not any of the --above. You may also (both is valid, too) precede the priority with an --exclamation mark (``!'') to ignore all that priorities, either exact --this one or this and any higher priority. If you use both extensions -+(``='') to specify that -+.B syslogd -+should only refer to this single priority and not this priority and -+all higher priorities. -+ -+You may also precide the priority with an exclamation mark (``!'') if -+you want -+.B syslogd -+to ignore this priority and all higher priorities. -+You may even use both, the exclamation mark and the equation sign if -+you want -+.B syslogd -+to ignore only this single priority. If you use both extensions - than the exclamation mark must occur before the equation sign, just - use it intuitively. - -@@ -300,7 +309,7 @@ - .B syslogd - log all messages that come with either the - .BR info " or the " notice --facility into the file -+priority into the file - .IR /var/log/messages , - except for all messages that use the - .B mail -diff -Naur sysklogd-1.4.1/syslogd.c sysklogd-20050123/syslogd.c ---- sysklogd-1.4.1/syslogd.c 2001-03-11 14:40:10.000000000 -0500 -+++ sysklogd-20050123/syslogd.c 2005-01-15 14:13:08.000000000 -0500 -@@ -441,6 +441,39 @@ - * Don't return a closed fd if `-a' is called with a wrong path. - * Thanks to Bill Nottingham notting@redhat.com for providing - * a patch. -+ * Thu Apr 13 05:08:10 CEST 2001: Jon Burgess Jon_Burgess@eur.3com.com -+ * Moved the installation of the signal handler up a little bit -+ * so it guaranteed to be available when the child is forked, -+ * hence, fixing a race condition. This used to create problems -+ * with UML and fast machines. -+ * -+ * Sat Apr 17 18:03:05 CEST 2004: Steve Grubb linux_4ever@yahoo.com -+ * Correct memory allocation for for commandline arguments in -+ * crunch_list(). -+ * -+ * Thu Apr 29 12:38:39 CEST 2004: Solar Designer solar@openwall.com -+ * Applied Openwall paranoia patches to improve crunch_list(). -+ * -+ * Tue May 4 16:47:30 CEST 2004: Solar Designer solar@openwall.com -+ * Ensure that "len" is not placed in a register, and that the -+ * endtty() signal handler is not installed too early which could -+ * cause a segmentation fault or worse. -+ * -+ * Tue May 4 16:52:01 CEST 2004: Solar Designer solar@openwall.com -+ * Adjust the size of a variable to prevent a buffer overflow -+ * should _PATH_DEV ever contain something different than "/dev/". -+ * -+ * Tue Nov 2 20:28:23 CET 2004: Colin Phipps cph@cph.demon.co.uk -+ * Don't block on the network socket, in case a packet gets lost -+ * between select and recv. -+ * -+ * Sun Nov 7 12:28:47 CET 2004: Martin Schulze joey@infodrom.org -+ * Discard any timestamp information found in received syslog -+ * messages. This will affect local messages sent from a -+ * different timezone. -+ * -+ * Sun Nov 7 13:47:00 CET 2004: Martin Schulze joey@infodrom.org -+ * Remove trailing newline when forwarding messages. - */ - - -@@ -890,11 +923,11 @@ - dprintf("Checking pidfile.\n"); - if (!check_pid(PidFile)) - { -+ signal (SIGTERM, doexit); - if (fork()) { - /* - * Parent process - */ -- signal (SIGTERM, doexit); - sleep(300); - /* - * Not reached unless something major went wrong. 5 -@@ -992,6 +1025,7 @@ - (void) signal(SIGCHLD, reapchild); - (void) signal(SIGALRM, domark); - (void) signal(SIGUSR1, Debug ? debug_switch : SIG_IGN); -+ (void) signal(SIGXFSZ, SIG_IGN); - (void) alarm(TIMERINTVL); - - /* Create a partial message table for all file descriptors. */ -@@ -1141,13 +1175,13 @@ - */ - printchopped(from, line, \ - i + 2, finet); -- } else if (i < 0 && errno != EINTR) { -+ } else if (i < 0 && errno != EINTR && errno != EAGAIN) { - dprintf("INET socket error: %d = %s.\n", \ - errno, strerror(errno)); - logerror("recvfrom inet"); - /* should be harmless now that we set - * BSDCOMPAT on the socket */ -- sleep(10); -+ sleep(1); - } - } - #endif -@@ -1216,6 +1250,7 @@ - { - int fd, on = 1; - struct sockaddr_in sin; -+ int sockflags; - - fd = socket(AF_INET, SOCK_DGRAM, 0); - if (fd < 0) { -@@ -1241,6 +1276,24 @@ - close(fd); - return -1; - } -+ /* We must not block on the network socket, in case a packet -+ * gets lost between select and recv, otherise the process -+ * will stall until the timeout, and other processes trying to -+ * log will also stall. -+ */ -+ if ((sockflags = fcntl(fd, F_GETFL)) != -1) { -+ sockflags |= O_NONBLOCK; -+ /* -+ * SETFL could fail too, so get it caught by the subsequent -+ * error check. -+ */ -+ sockflags = fcntl(fd, F_SETFL, sockflags); -+ } -+ if (sockflags == -1) { -+ logerror("fcntl(O_NONBLOCK), suspending inet"); -+ close(fd); -+ return -1; -+ } - if (bind(fd, (struct sockaddr *) &sin, sizeof(sin)) < 0) { - logerror("bind, suspending inet"); - close(fd); -@@ -1254,30 +1307,26 @@ - crunch_list(list) - char *list; - { -- int count, i; -+ int i, m, n; - char *p, *q; - char **result = NULL; - - p = list; - - /* strip off trailing delimiters */ -- while (p[strlen(p)-1] == LIST_DELIMITER) { -- count--; -+ while (*p && p[strlen(p)-1] == LIST_DELIMITER) - p[strlen(p)-1] = '\0'; -- } - /* cut off leading delimiters */ -- while (p[0] == LIST_DELIMITER) { -- count--; -+ while (p[0] == LIST_DELIMITER) - p++; -- } - -- /* count delimiters to calculate elements */ -- for (count=i=0; p[i]; i++) -- if (p[i] == LIST_DELIMITER) count++; -+ /* count delimiters to calculate the number of elements */ -+ for (n = i = 0; p[i]; i++) -+ if (p[i] == LIST_DELIMITER) n++; - -- if ((result = (char **)malloc(sizeof(char *) * count+2)) == NULL) { -+ if ((result = (char **)malloc(sizeof(char *) * (n + 2))) == NULL) { - printf ("Sorry, can't get enough memory, exiting.\n"); -- exit(0); -+ exit(1); - } - - /* -@@ -1285,30 +1334,28 @@ - * characters are different from any delimiters, - * so we don't have to care about this. - */ -- count = 0; -- while ((q=strchr(p, LIST_DELIMITER))) { -- result[count] = (char *) malloc((q - p + 1) * sizeof(char)); -- if (result[count] == NULL) { -+ m = 0; -+ while ((q = strchr(p, LIST_DELIMITER)) && m < n) { -+ result[m] = (char *) malloc((q - p + 1) * sizeof(char)); -+ if (result[m] == NULL) { - printf ("Sorry, can't get enough memory, exiting.\n"); -- exit(0); -+ exit(1); - } -- strncpy(result[count], p, q - p); -- result[count][q - p] = '\0'; -+ memcpy(result[m], p, q - p); -+ result[m][q - p] = '\0'; - p = q; p++; -- count++; -+ m++; - } -- if ((result[count] = \ -- (char *)malloc(sizeof(char) * strlen(p) + 1)) == NULL) { -+ if ((result[m] = strdup(p)) == NULL) { - printf ("Sorry, can't get enough memory, exiting.\n"); -- exit(0); -+ exit(1); - } -- strcpy(result[count],p); -- result[++count] = NULL; -+ result[++m] = NULL; - - #if 0 -- count=0; -- while (result[count]) -- dprintf ("#%d: %s\n", count, StripDomains[count++]); -+ m = 0; -+ while (result[m]) -+ dprintf ("#%d: %s\n", m, result[m++]); - #endif - return result; - } -@@ -1548,21 +1595,25 @@ - - /* - * Check to see if msg looks non-standard. -+ * -+ * A message looks like -+ * Nov 17 11:42:33 CRON[ -+ * 01234567890123456 -+ * ^ ^ ^ ^ ^ -+ * -+ * Remote messages are not accompanied by a timestamp. -+ * Local messages are accompanied by a timestamp (program's timezone) - */ - msglen = strlen(msg); -- if (msglen < 16 || msg[3] != ' ' || msg[6] != ' ' || -- msg[9] != ':' || msg[12] != ':' || msg[15] != ' ') -- flags |= ADDDATE; -- -- (void) time(&now); -- if (flags & ADDDATE) -- timestamp = ctime(&now) + 4; -- else { -- timestamp = msg; -+ if (!(msglen < 16 || msg[3] != ' ' || msg[6] != ' ' || -+ msg[9] != ':' || msg[12] != ':' || msg[15] != ' ')) { - msg += 16; - msglen -= 16; - } - -+ (void) time(&now); -+ timestamp = ctime(&now) + 4; -+ - /* extract facility and priority level */ - if (flags & MARK) - fac = LOG_NFACILITIES; -@@ -1771,7 +1822,7 @@ - dprintf("Not sending message to remote.\n"); - else { - f->f_time = now; -- (void) snprintf(line, sizeof(line), "<%d>%s\n", f->f_prevpri, \ -+ (void) snprintf(line, sizeof(line), "<%d>%s", f->f_prevpri, \ - (char *) iov[4].iov_base); - l = strlen(line); - if (l > MAXLINE) -@@ -1815,7 +1866,7 @@ - v->iov_len = 1; - } - again: -- /* f->f_file == -1 is an indicator that the we couldn't -+ /* f->f_file == -1 is an indicator that we couldn't - open the file at startup. */ - if (f->f_file == -1) - break; -@@ -1852,7 +1903,7 @@ - errno = e; - logerror(f->f_un.f_fname); - } -- } else if (f->f_flags & SYNC_FILE) -+ } else if (f->f_type == F_FILE && (f->f_flags & SYNC_FILE)) - (void) fsync(f->f_file); - break; - -@@ -1891,7 +1942,7 @@ - register struct filed *f; - struct iovec *iov; - { -- char p[6 + UNAMESZ]; -+ char p[sizeof (_PATH_DEV) + UNAMESZ]; - register int i; - int ttyf, len; - static int reenter = 0; -@@ -1899,6 +1950,8 @@ - struct utmp *uptr; - char greetings[200]; - -+ (void) &len; -+ - if (reenter++) - return; - -@@ -1913,7 +1966,6 @@ - if (fork() == 0) { - (void) signal(SIGTERM, SIG_DFL); - (void) alarm(0); -- (void) signal(SIGALRM, endtty); - #ifndef SYSV - (void) signal(SIGTTOU, SIG_IGN); - (void) sigsetmask(0); -@@ -1929,7 +1981,7 @@ - /* is this slot used? */ - if (ut.ut_name[0] == '\0') - continue; -- if (ut.ut_type == LOGIN_PROCESS) -+ if (ut.ut_type != USER_PROCESS) - continue; - if (!(strcmp (ut.ut_name,"LOGIN"))) /* paranoia */ - continue; -@@ -1959,6 +2011,7 @@ - iov[1].iov_len = 0; - } - if (setjmp(ttybuf) == 0) { -+ (void) signal(SIGALRM, endtty); - (void) alarm(15); - /* open the terminal */ - ttyf = open(p, O_WRONLY|O_NOCTTY); diff --git a/src/patches/sysklogd-1.4.1_xen_empty_buffer_check.patch b/src/patches/sysklogd-1.4.1_xen_empty_buffer_check.patch deleted file mode 100644 index 3aece3a..0000000 --- a/src/patches/sysklogd-1.4.1_xen_empty_buffer_check.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -Naur sysklogd-1.4.1.org/klogd.c sysklogd-1.4.1/klogd.c ---- sysklogd-1.4.1.org/klogd.c 2001-03-11 20:40:10.000000000 +0100 -+++ sysklogd-1.4.1/klogd.c 2010-01-20 19:49:36.000000000 +0100 -@@ -1171,10 +1171,24 @@ - switch ( logsrc ) - { - case kernel: -- LogKernelLine(); -+ if (ksyslog(9, NULL, 0)>0) -+ { -+ LogKernelLine(); -+ } -+ else -+ { -+ usleep(100000); -+ } - break; - case proc: -- LogProcLine(); -+ if (ksyslog(9, NULL, 0)>0) -+ { -+ LogProcLine(); -+ } -+ else -+ { -+ usleep(100000); -+ } - break; - case none: - pause(); diff --git a/src/patches/xen-co_assignment.patch b/src/patches/xen-co_assignment.patch deleted file mode 100644 index f0b59f0..0000000 --- a/src/patches/xen-co_assignment.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -r 6ab55f716ce3 tools/python/xen/util/pci.py ---- a/tools/python/xen/util/pci.py Thu Oct 09 17:18:11 2008 +0100 -+++ b/tools/python/xen/util/pci.py Fri Oct 10 13:16:00 2008 +0800 -@@ -696,6 +696,7 @@ class PciDevice: - def do_FLR(self): - """ Perform FLR (Functional Level Reset) for the device. - """ -+ return - if self.dev_type == DEV_TYPE_PCIe_ENDPOINT: - # If PCIe device supports FLR, we use it. - if self.pcie_flr: -diff -r 6ab55f716ce3 tools/python/xen/xend/server/pciif.py ---- a/tools/python/xen/xend/server/pciif.py Thu Oct 09 17:18:11 2008 +0100 -+++ b/tools/python/xen/xend/server/pciif.py Fri Oct 10 13:18:25 2008 +0800 -@@ -375,6 +375,7 @@ class PciController(DevController): - pci_dev_list = pci_dev_list + [(domain, bus, slot, func)] - - for (domain, bus, slot, func) in pci_dev_list: -+ continue - try: - dev = PciDevice(domain, bus, slot, func) - except Exception, e: diff --git a/src/patches/xen-cpufreq.patch b/src/patches/xen-cpufreq.patch deleted file mode 100644 index 4a8f3f3..0000000 --- a/src/patches/xen-cpufreq.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/xen/arch/x86/platform_hypercall.c 2009-07-23 07:26:18.000000000 +0000 -+++ b/xen/arch/x86/platform_hypercall.c 2009-07-23 07:28:30.000000000 +0000 -@@ -313,7 +313,6 @@ - { - uint32_t cpu; - uint64_t idletime, now = NOW(); -- struct vcpu *v; - struct xenctl_cpumap ctlmap; - cpumask_t cpumap; - XEN_GUEST_HANDLE(uint8) cpumap_bitmap; -@@ -336,7 +335,7 @@ - - for_each_cpu_mask ( cpu, cpumap ) - { -- if ( (v = idle_vcpu[cpu]) != NULL ) -+ if ( !idle_vcpu[cpu] ) - cpu_clear(cpu, cpumap); - idletime = get_cpu_idle_time(cpu); - diff --git a/src/patches/xen-passthrough-fix.patch b/src/patches/xen-passthrough-fix.patch deleted file mode 100644 index 75abd77..0000000 --- a/src/patches/xen-passthrough-fix.patch +++ /dev/null @@ -1,36 +0,0 @@ -From: jbeulich@novell.com -Subject: also register pirq for DomU (which doesn't use the IO-APIC code) -References: bnc#463596 -Patch-mainline: obsolete - -Additionally make sure IRQ chip and handler aren't getting set twice -for an IRQ possibly in use by more than one device. - ---- head-2009-02-02.orig/arch/x86/pci/pcifront.c 2009-02-03 17:27:59.000000000 +0100 -+++ head-2009-02-02/arch/x86/pci/pcifront.c 2009-02-03 11:22:28.000000000 +0100 -@@ -8,12 +8,14 @@ - #include <linux/init.h> - #include <linux/pci.h> - #include <asm/acpi.h> -+#include <xen/evtchn.h> - #include "pci.h" - - static int pcifront_enable_irq(struct pci_dev *dev) - { - u8 irq; - pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq); -+ evtchn_register_pirq(irq); - dev->irq = irq; - - return 0; ---- head-2009-02-02.orig/drivers/xen/core/evtchn.c 2009-01-14 15:16:43.000000000 +0100 -+++ head-2009-02-02/drivers/xen/core/evtchn.c 2009-02-03 17:34:44.000000000 +0100 -@@ -1561,7 +1561,7 @@ core_initcall(evtchn_register); - void evtchn_register_pirq(int irq) - { - BUG_ON(irq < PIRQ_BASE || irq - PIRQ_BASE > NR_PIRQS); -- if (identity_mapped_irq(irq)) -+ if (identity_mapped_irq(irq) || type_from_irq(irq) != IRQT_UNBOUND) - return; - irq_info[irq] = mk_irq_info(IRQT_PIRQ, irq, 0); - set_irq_chip_and_handler_name(irq, &pirq_chip, handle_level_irq, diff --git a/src/patches/xend-config.patch b/src/patches/xend-config.patch deleted file mode 100644 index fce98f9..0000000 --- a/src/patches/xend-config.patch +++ /dev/null @@ -1,99 +0,0 @@ ---- a/tools/examples/xend-config.sxp 2009-05-18 11:05:38.000000000 +0000 -+++ b/tools/examples/xend-config.sxp 2009-07-23 08:00:23.000000000 +0000 -@@ -14,10 +14,6 @@ - #(logfile /var/log/xen/xend.log) - #(loglevel DEBUG) - --# Uncomment the line below. Set the value to flask, acm, or dummy to --# select a security module. -- --#(xsm_module_name dummy) - - # The Xen-API server configuration. - # -@@ -58,21 +54,20 @@ - - - #(xend-http-server no) --#(xend-unix-server no) --#(xend-tcp-xmlrpc-server no) --#(xend-unix-xmlrpc-server yes) -+(xend-unix-server yes) -+(xend-tcp-xmlrpc-server yes) -+(xend-unix-xmlrpc-server yes) - #(xend-relocation-server no) - (xend-relocation-server yes) - #(xend-relocation-ssl-server no) --#(xend-udev-event-server no) - - #(xend-unix-path /var/lib/xend/xend-socket) - - - # Address and port xend should use for the legacy TCP XMLRPC interface, - # if xend-tcp-xmlrpc-server is set. --#(xend-tcp-xmlrpc-server-address 'localhost') --#(xend-tcp-xmlrpc-server-port 8006) -+(xend-tcp-xmlrpc-server-address 'localhost') -+(xend-tcp-xmlrpc-server-port 8006) - - # SSL key and certificate to use for the legacy TCP XMLRPC interface. - # Setting these will mean that this port serves only SSL connections as -@@ -82,11 +77,11 @@ - - - # Port xend should use for the HTTP interface, if xend-http-server is set. --#(xend-port 8000) -+(xend-port 8000) - - # Port xend should use for the relocation interface, if xend-relocation-server - # is set. --#(xend-relocation-port 8002) -+(xend-relocation-port 8002) - - # Port xend should use for the ssl relocation interface, if - # xend-relocation-ssl-server is set. -@@ -154,7 +149,7 @@ - # two fake interfaces per guest domain. To do things like this, write - # yourself a wrapper script, and call network-bridge from it, as appropriate. - # --(network-script network-bridge) -+(network-script network-dummy) - - # The script used to control virtual interfaces. This can be overridden on a - # per-vif basis when creating a domain or a configuring a new vif. The -@@ -169,7 +164,7 @@ - # If you are using only one bridge, the vif-bridge script will discover that, - # so there is no need to specify it explicitly. - # --(vif-script vif-bridge) -+#(vif-script vif-bridge) - - - ## Use the following if network traffic is routed, as an alternative to the -@@ -194,7 +189,7 @@ - - # In SMP system, dom0 will use dom0-cpus # of CPUS - # If dom0-cpus = 0, dom0 will take all cpus available --(dom0-cpus 0) -+#(dom0-cpus 0) - - # Whether to enable core-dumps when domains crash. - #(enable-dump no) -@@ -205,7 +200,7 @@ - # The interface for VNC servers to listen on. Defaults - # to 127.0.0.1 To restore old 'listen everywhere' behaviour - # set this to 0.0.0.0 --#(vnc-listen '127.0.0.1') -+(vnc-listen '0.0.0.0') - - # The default password for VNC console on HVM domain. - # Empty string is no authentication. -@@ -243,7 +238,7 @@ - - # The default keymap to use for the VM's virtual keyboard - # when not specififed in VM's configuration --#(keymap 'en-us') -+(keymap 'de') - - # Script to run when the label of a resource has changed. - #(resource-label-change-script '') diff --git a/src/r8101/Makefile b/src/r8101/Makefile deleted file mode 100644 index ed8e97e..0000000 --- a/src/r8101/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -KSRC ?= /lib/modules/$(shell uname -r)/build - -obj-m += r8101.o - -all: - $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules - -clean: - rm -rf *.ko *.mod.* *.o .*.cmd .tmp_versions Module.symvers - -distclean: clean - rm -rf cscope.* *~ diff --git a/src/r8101/r8101.c b/src/r8101/r8101.c deleted file mode 100644 index 57cda49..0000000 --- a/src/r8101/r8101.c +++ /dev/null @@ -1,3464 +0,0 @@ -/* - * r8101.c: RealTek 8101 ethernet driver. - * - * This driver based on r8169 from Kernel 2.6.27.39 with SuSE patches - * All pciids except for 8101 are removed becaue we want use - * original realtek drivers except for 8101 because the - * vendors r8101 produce a kernel panic. - * - * Copyright (c) 2002 ShuChen shuchen@realtek.com.tw - * Copyright (c) 2003 - 2007 Francois Romieu romieu@fr.zoreil.com - * Copyright (c) 2009 Arne Fitzenreiter arne_f@ipfire.org - * Copyright (c) a lot of people too. Please respect their work. - * - * See MAINTAINERS file for support contact information. - */ - -#include <linux/module.h> -#include <linux/moduleparam.h> -#include <linux/pci.h> -#include <linux/netdevice.h> -#include <linux/etherdevice.h> -#include <linux/delay.h> -#include <linux/ethtool.h> -#include <linux/mii.h> -#include <linux/if_vlan.h> -#include <linux/crc32.h> -#include <linux/in.h> -#include <linux/ip.h> -#include <linux/tcp.h> -#include <linux/init.h> -#include <linux/dma-mapping.h> - -#include <asm/system.h> -#include <asm/io.h> -#include <asm/irq.h> - -#define RTL8101_VERSION "2.3LK-NAPI" -#define MODULENAME "r8101" -#define PFX MODULENAME ": " - -#ifdef RTL8101_DEBUG -#define assert(expr) \ - if (!(expr)) { \ - printk( "Assertion failed! %s,%s,%s,line=%d\n", \ - #expr,__FILE__,__FUNCTION__,__LINE__); \ - } -#define dprintk(fmt, args...) \ - do { printk(KERN_DEBUG PFX fmt, ## args); } while (0) -#else -#define assert(expr) do {} while (0) -#define dprintk(fmt, args...) do {} while (0) -#endif /* RTL8101_DEBUG */ - -#define R8101_MSG_DEFAULT \ - (NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_IFUP | NETIF_MSG_IFDOWN) - -#define TX_BUFFS_AVAIL(tp) \ - (tp->dirty_tx + NUM_TX_DESC - tp->cur_tx - 1) - -/* Maximum events (Rx packets, etc.) to handle at each interrupt. */ -static const int max_interrupt_work = 20; - -/* Maximum number of multicast addresses to filter (vs. Rx-all-multicast). - The RTL chips use a 64 element hash table based on the Ethernet CRC. */ -static const int multicast_filter_limit = 32; - -/* MAC address length */ -#define MAC_ADDR_LEN 6 - -#define MAX_READ_REQUEST_SHIFT 12 -#define RX_FIFO_THRESH 7 /* 7 means NO threshold, Rx buffer level before first PCI xfer. */ -#define RX_DMA_BURST 6 /* Maximum PCI burst, '6' is 1024 */ -#define TX_DMA_BURST 6 /* Maximum PCI burst, '6' is 1024 */ -#define EarlyTxThld 0x3F /* 0x3F means NO early transmit */ -#define SafeMtu 0x1c20 /* ... actually life sucks beyond ~7k */ -#define InterFrameGap 0x03 /* 3 means InterFrameGap = the shortest one */ - -#define R8101_REGS_SIZE 256 -#define R8101_NAPI_WEIGHT 64 -#define NUM_TX_DESC 64 /* Number of Tx descriptor registers */ -#define NUM_RX_DESC 256 /* Number of Rx descriptor registers */ -#define RX_BUF_SIZE 1536 /* Rx Buffer size */ -#define R8101_TX_RING_BYTES (NUM_TX_DESC * sizeof(struct TxDesc)) -#define R8101_RX_RING_BYTES (NUM_RX_DESC * sizeof(struct RxDesc)) - -#define RTL8101_TX_TIMEOUT (6*HZ) -#define RTL8101_PHY_TIMEOUT (10*HZ) - -/* write/read MMIO register */ -#define RTL_W8(reg, val8) writeb ((val8), ioaddr + (reg)) -#define RTL_W16(reg, val16) writew ((val16), ioaddr + (reg)) -#define RTL_W32(reg, val32) writel ((val32), ioaddr + (reg)) -#define RTL_R8(reg) readb (ioaddr + (reg)) -#define RTL_R16(reg) readw (ioaddr + (reg)) -#define RTL_R32(reg) ((unsigned long) readl (ioaddr + (reg))) - -enum mac_version { - RTL_GIGA_MAC_VER_01 = 0x01, // 8169 - RTL_GIGA_MAC_VER_02 = 0x02, // 8169S - RTL_GIGA_MAC_VER_03 = 0x03, // 8110S - RTL_GIGA_MAC_VER_04 = 0x04, // 8169SB - RTL_GIGA_MAC_VER_05 = 0x05, // 8110SCd - RTL_GIGA_MAC_VER_06 = 0x06, // 8110SCe - RTL_GIGA_MAC_VER_07 = 0x07, // 8102e - RTL_GIGA_MAC_VER_08 = 0x08, // 8102e - RTL_GIGA_MAC_VER_09 = 0x09, // 8102e - RTL_GIGA_MAC_VER_10 = 0x0a, // 8101e - RTL_GIGA_MAC_VER_11 = 0x0b, // 8168Bb - RTL_GIGA_MAC_VER_12 = 0x0c, // 8168Be - RTL_GIGA_MAC_VER_13 = 0x0d, // 8101Eb - RTL_GIGA_MAC_VER_14 = 0x0e, // 8101 ? - RTL_GIGA_MAC_VER_15 = 0x0f, // 8101 ? - RTL_GIGA_MAC_VER_16 = 0x11, // 8101Ec - RTL_GIGA_MAC_VER_17 = 0x10, // 8168Bf - RTL_GIGA_MAC_VER_18 = 0x12, // 8168CP - RTL_GIGA_MAC_VER_19 = 0x13, // 8168C - RTL_GIGA_MAC_VER_20 = 0x14 // 8168C -}; - -#define _R(NAME,MAC,MASK) \ - { .name = NAME, .mac_version = MAC, .RxConfigMask = MASK } - -static const struct { - const char *name; - u8 mac_version; - u32 RxConfigMask; /* Clears the bits supported by this chip */ -} rtl_chip_info[] = { - _R("RTL8169", RTL_GIGA_MAC_VER_01, 0xff7e1880), // 8169 - _R("RTL8169s", RTL_GIGA_MAC_VER_02, 0xff7e1880), // 8169S - _R("RTL8110s", RTL_GIGA_MAC_VER_03, 0xff7e1880), // 8110S - _R("RTL8169sb/8110sb", RTL_GIGA_MAC_VER_04, 0xff7e1880), // 8169SB - _R("RTL8169sc/8110sc", RTL_GIGA_MAC_VER_05, 0xff7e1880), // 8110SCd - _R("RTL8169sc/8110sc", RTL_GIGA_MAC_VER_06, 0xff7e1880), // 8110SCe - _R("RTL8102e", RTL_GIGA_MAC_VER_07, 0xff7e1880), // PCI-E - _R("RTL8102e", RTL_GIGA_MAC_VER_08, 0xff7e1880), // PCI-E - _R("RTL8102e", RTL_GIGA_MAC_VER_09, 0xff7e1880), // PCI-E - _R("RTL8101e", RTL_GIGA_MAC_VER_10, 0xff7e1880), // PCI-E - _R("RTL8168b/8111b", RTL_GIGA_MAC_VER_11, 0xff7e1880), // PCI-E - _R("RTL8168b/8111b", RTL_GIGA_MAC_VER_12, 0xff7e1880), // PCI-E - _R("RTL8101e", RTL_GIGA_MAC_VER_13, 0xff7e1880), // PCI-E 8139 - _R("RTL8100e", RTL_GIGA_MAC_VER_14, 0xff7e1880), // PCI-E 8139 - _R("RTL8100e", RTL_GIGA_MAC_VER_15, 0xff7e1880), // PCI-E 8139 - _R("RTL8168b/8111b", RTL_GIGA_MAC_VER_17, 0xff7e1880), // PCI-E - _R("RTL8101e", RTL_GIGA_MAC_VER_16, 0xff7e1880), // PCI-E - _R("RTL8168cp/8111cp", RTL_GIGA_MAC_VER_18, 0xff7e1880), // PCI-E - _R("RTL8168c/8111c", RTL_GIGA_MAC_VER_19, 0xff7e1880), // PCI-E - _R("RTL8168c/8111c", RTL_GIGA_MAC_VER_20, 0xff7e1880) // PCI-E -}; -#undef _R - -enum cfg_version { - RTL_CFG_0 = 0x00, - RTL_CFG_1, - RTL_CFG_2 -}; - -static void rtl_hw_start_8169(struct net_device *); -static void rtl_hw_start_8168(struct net_device *); -static void rtl_hw_start_8101(struct net_device *); - -static struct pci_device_id rtl8101_pci_tbl[] = { -// { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8129), 0, 0, RTL_CFG_0 }, - { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8136), 0, 0, RTL_CFG_2 }, -// { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 }, -// { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8168), 0, 0, RTL_CFG_1 }, -// { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 }, -// { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4300), 0, 0, RTL_CFG_0 }, -// { PCI_DEVICE(PCI_VENDOR_ID_AT, 0xc107), 0, 0, RTL_CFG_0 }, -// { PCI_DEVICE(0x16ec, 0x0116), 0, 0, RTL_CFG_0 }, -// { PCI_VENDOR_ID_LINKSYS, 0x1032, -// PCI_ANY_ID, 0x0024, 0, 0, RTL_CFG_0 }, - { 0x0001, 0x8168, - PCI_ANY_ID, 0x2410, 0, 0, RTL_CFG_2 }, - {0,}, -}; - -MODULE_DEVICE_TABLE(pci, rtl8101_pci_tbl); - -static int rx_copybreak = 200; -static int use_dac; -static struct { - u32 msg_enable; -} debug = { -1 }; - -enum rtl_registers { - MAC0 = 0, /* Ethernet hardware address. */ - MAC4 = 4, - MAR0 = 8, /* Multicast filter. */ - CounterAddrLow = 0x10, - CounterAddrHigh = 0x14, - TxDescStartAddrLow = 0x20, - TxDescStartAddrHigh = 0x24, - TxHDescStartAddrLow = 0x28, - TxHDescStartAddrHigh = 0x2c, - FLASH = 0x30, - ERSR = 0x36, - ChipCmd = 0x37, - TxPoll = 0x38, - IntrMask = 0x3c, - IntrStatus = 0x3e, - TxConfig = 0x40, - RxConfig = 0x44, - RxMissed = 0x4c, - Cfg9346 = 0x50, - Config0 = 0x51, - Config1 = 0x52, - Config2 = 0x53, - Config3 = 0x54, - Config4 = 0x55, - Config5 = 0x56, - MultiIntr = 0x5c, - PHYAR = 0x60, - PHYstatus = 0x6c, - RxMaxSize = 0xda, - CPlusCmd = 0xe0, - IntrMitigate = 0xe2, - RxDescAddrLow = 0xe4, - RxDescAddrHigh = 0xe8, - EarlyTxThres = 0xec, - FuncEvent = 0xf0, - FuncEventMask = 0xf4, - FuncPresetState = 0xf8, - FuncForceEvent = 0xfc, -}; - -enum rtl8110_registers { - TBICSR = 0x64, - TBI_ANAR = 0x68, - TBI_LPAR = 0x6a, -}; - -enum rtl8168_8101_registers { - CSIDR = 0x64, - CSIAR = 0x68, -#define CSIAR_FLAG 0x80000000 -#define CSIAR_WRITE_CMD 0x80000000 -#define CSIAR_BYTE_ENABLE 0x0f -#define CSIAR_BYTE_ENABLE_SHIFT 12 -#define CSIAR_ADDR_MASK 0x0fff - - EPHYAR = 0x80, -#define EPHYAR_FLAG 0x80000000 -#define EPHYAR_WRITE_CMD 0x80000000 -#define EPHYAR_REG_MASK 0x1f -#define EPHYAR_REG_SHIFT 16 -#define EPHYAR_DATA_MASK 0xffff - DBG_REG = 0xd1, -#define FIX_NAK_1 (1 << 4) -#define FIX_NAK_2 (1 << 3) -}; - -enum rtl_register_content { - /* InterruptStatusBits */ - SYSErr = 0x8000, - PCSTimeout = 0x4000, - SWInt = 0x0100, - TxDescUnavail = 0x0080, - RxFIFOOver = 0x0040, - LinkChg = 0x0020, - RxOverflow = 0x0010, - TxErr = 0x0008, - TxOK = 0x0004, - RxErr = 0x0002, - RxOK = 0x0001, - - /* RxStatusDesc */ - RxFOVF = (1 << 23), - RxRWT = (1 << 22), - RxRES = (1 << 21), - RxRUNT = (1 << 20), - RxCRC = (1 << 19), - - /* ChipCmdBits */ - CmdReset = 0x10, - CmdRxEnb = 0x08, - CmdTxEnb = 0x04, - RxBufEmpty = 0x01, - - /* TXPoll register p.5 */ - HPQ = 0x80, /* Poll cmd on the high prio queue */ - NPQ = 0x40, /* Poll cmd on the low prio queue */ - FSWInt = 0x01, /* Forced software interrupt */ - - /* Cfg9346Bits */ - Cfg9346_Lock = 0x00, - Cfg9346_Unlock = 0xc0, - - /* rx_mode_bits */ - AcceptErr = 0x20, - AcceptRunt = 0x10, - AcceptBroadcast = 0x08, - AcceptMulticast = 0x04, - AcceptMyPhys = 0x02, - AcceptAllPhys = 0x01, - - /* RxConfigBits */ - RxCfgFIFOShift = 13, - RxCfgDMAShift = 8, - - /* TxConfigBits */ - TxInterFrameGapShift = 24, - TxDMAShift = 8, /* DMA burst value (0-7) is shift this many bits */ - - /* Config1 register p.24 */ - LEDS1 = (1 << 7), - LEDS0 = (1 << 6), - MSIEnable = (1 << 5), /* Enable Message Signaled Interrupt */ - Speed_down = (1 << 4), - MEMMAP = (1 << 3), - IOMAP = (1 << 2), - VPD = (1 << 1), - PMEnable = (1 << 0), /* Power Management Enable */ - - /* Config2 register p. 25 */ - PCI_Clock_66MHz = 0x01, - PCI_Clock_33MHz = 0x00, - - /* Config3 register p.25 */ - MagicPacket = (1 << 5), /* Wake up when receives a Magic Packet */ - LinkUp = (1 << 4), /* Wake up when the cable connection is re-established */ - Beacon_en = (1 << 0), /* 8168 only. Reserved in the 8168b */ - - /* Config5 register p.27 */ - BWF = (1 << 6), /* Accept Broadcast wakeup frame */ - MWF = (1 << 5), /* Accept Multicast wakeup frame */ - UWF = (1 << 4), /* Accept Unicast wakeup frame */ - LanWake = (1 << 1), /* LanWake enable/disable */ - PMEStatus = (1 << 0), /* PME status can be reset by PCI RST# */ - - /* TBICSR p.28 */ - TBIReset = 0x80000000, - TBILoopback = 0x40000000, - TBINwEnable = 0x20000000, - TBINwRestart = 0x10000000, - TBILinkOk = 0x02000000, - TBINwComplete = 0x01000000, - - /* CPlusCmd p.31 */ - EnableBist = (1 << 15), // 8168 8101 - Mac_dbgo_oe = (1 << 14), // 8168 8101 - Normal_mode = (1 << 13), // unused - Force_half_dup = (1 << 12), // 8168 8101 - Force_rxflow_en = (1 << 11), // 8168 8101 - Force_txflow_en = (1 << 10), // 8168 8101 - Cxpl_dbg_sel = (1 << 9), // 8168 8101 - ASF = (1 << 8), // 8168 8101 - PktCntrDisable = (1 << 7), // 8168 8101 - Mac_dbgo_sel = 0x001c, // 8168 - RxVlan = (1 << 6), - RxChkSum = (1 << 5), - PCIDAC = (1 << 4), - PCIMulRW = (1 << 3), - INTT_0 = 0x0000, // 8168 - INTT_1 = 0x0001, // 8168 - INTT_2 = 0x0002, // 8168 - INTT_3 = 0x0003, // 8168 - - /* rtl8101_PHYstatus */ - TBI_Enable = 0x80, - TxFlowCtrl = 0x40, - RxFlowCtrl = 0x20, - _1000bpsF = 0x10, - _100bps = 0x08, - _10bps = 0x04, - LinkStatus = 0x02, - FullDup = 0x01, - - /* _TBICSRBit */ - TBILinkOK = 0x02000000, - - /* DumpCounterCommand */ - CounterDump = 0x8, -}; - -enum desc_status_bit { - DescOwn = (1 << 31), /* Descriptor is owned by NIC */ - RingEnd = (1 << 30), /* End of descriptor ring */ - FirstFrag = (1 << 29), /* First segment of a packet */ - LastFrag = (1 << 28), /* Final segment of a packet */ - - /* Tx private */ - LargeSend = (1 << 27), /* TCP Large Send Offload (TSO) */ - MSSShift = 16, /* MSS value position */ - MSSMask = 0xfff, /* MSS value + LargeSend bit: 12 bits */ - IPCS = (1 << 18), /* Calculate IP checksum */ - UDPCS = (1 << 17), /* Calculate UDP/IP checksum */ - TCPCS = (1 << 16), /* Calculate TCP/IP checksum */ - TxVlanTag = (1 << 17), /* Add VLAN tag */ - - /* Rx private */ - PID1 = (1 << 18), /* Protocol ID bit 1/2 */ - PID0 = (1 << 17), /* Protocol ID bit 2/2 */ - -#define RxProtoUDP (PID1) -#define RxProtoTCP (PID0) -#define RxProtoIP (PID1 | PID0) -#define RxProtoMask RxProtoIP - - IPFail = (1 << 16), /* IP checksum failed */ - UDPFail = (1 << 15), /* UDP/IP checksum failed */ - TCPFail = (1 << 14), /* TCP/IP checksum failed */ - RxVlanTag = (1 << 16), /* VLAN tag available */ -}; - -#define RsvdMask 0x3fffc000 - -struct TxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; -}; - -struct RxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; -}; - -struct ring_info { - struct sk_buff *skb; - u32 len; - u8 __pad[sizeof(void *) - sizeof(u32)]; -}; - -enum features { - RTL_FEATURE_WOL = (1 << 0), - RTL_FEATURE_MSI = (1 << 1), - RTL_FEATURE_GMII = (1 << 2), -}; - -struct rtl8101_counters { - __le64 tx_packets; - __le64 rx_packets; - __le64 tx_errors; - __le32 rx_errors; - __le16 rx_missed; - __le16 align_errors; - __le32 tx_one_collision; - __le32 tx_multi_collision; - __le64 rx_unicast; - __le64 rx_broadcast; - __le32 rx_multicast; - __le16 tx_aborted; - __le16 tx_underun; -}; - -struct rtl8101_private { - void __iomem *mmio_addr; /* memory map physical address */ - struct pci_dev *pci_dev; /* Index of PCI device */ - struct net_device *dev; - struct napi_struct napi; - spinlock_t lock; /* spin lock flag */ - u32 msg_enable; - int chipset; - int mac_version; - u32 cur_rx; /* Index into the Rx descriptor buffer of next Rx pkt. */ - u32 cur_tx; /* Index into the Tx descriptor buffer of next Rx pkt. */ - u32 dirty_rx; - u32 dirty_tx; - struct TxDesc *TxDescArray; /* 256-aligned Tx descriptor ring */ - struct RxDesc *RxDescArray; /* 256-aligned Rx descriptor ring */ - dma_addr_t TxPhyAddr; - dma_addr_t RxPhyAddr; - struct sk_buff *Rx_skbuff[NUM_RX_DESC]; /* Rx data buffers */ - struct ring_info tx_skb[NUM_TX_DESC]; /* Tx data buffers */ - unsigned align; - unsigned rx_buf_sz; - struct timer_list timer; - u16 cp_cmd; - u16 intr_event; - u16 napi_event; - u16 intr_mask; - int phy_auto_nego_reg; - int phy_1000_ctrl_reg; -#ifdef CONFIG_R8101_VLAN - struct vlan_group *vlgrp; -#endif - int (*set_speed)(struct net_device *, u8 autoneg, u16 speed, u8 duplex); - int (*get_settings)(struct net_device *, struct ethtool_cmd *); - void (*phy_reset_enable)(void __iomem *); - void (*hw_start)(struct net_device *); - unsigned int (*phy_reset_pending)(void __iomem *); - unsigned int (*link_ok)(void __iomem *); - int pcie_cap; - struct delayed_work task; - unsigned features; - - struct mii_if_info mii; - struct rtl8101_counters counters; -}; - -MODULE_AUTHOR("Realtek,the Linux r8169 crew & Arne Fitzenreiter arne_f@ipfire.org"); -MODULE_DESCRIPTION("RealTek RTL-8101 Fast Ethernet driver"); -module_param(rx_copybreak, int, 0); -MODULE_PARM_DESC(rx_copybreak, "Copy breakpoint for copy-only-tiny-frames"); -module_param(use_dac, int, 0); -MODULE_PARM_DESC(use_dac, "Enable PCI DAC. Unsafe on 32 bit PCI slot."); -module_param_named(debug, debug.msg_enable, int, 0); -MODULE_PARM_DESC(debug, "Debug verbosity level (0=none, ..., 16=all)"); -MODULE_LICENSE("GPL"); -MODULE_VERSION(RTL8101_VERSION); - -static int rtl8101_open(struct net_device *dev); -static int rtl8101_start_xmit(struct sk_buff *skb, struct net_device *dev); -static irqreturn_t rtl8101_interrupt(int irq, void *dev_instance); -static int rtl8101_init_ring(struct net_device *dev); -static void rtl_hw_start(struct net_device *dev); -static int rtl8101_close(struct net_device *dev); -static void rtl_set_rx_mode(struct net_device *dev); -static void rtl8101_tx_timeout(struct net_device *dev); -static struct net_device_stats *rtl8101_get_stats(struct net_device *dev); -static int rtl8101_rx_interrupt(struct net_device *, struct rtl8101_private *, - void __iomem *, u32 budget); -static int rtl8101_change_mtu(struct net_device *dev, int new_mtu); -static void rtl8101_down(struct net_device *dev); -static void rtl8101_rx_clear(struct rtl8101_private *tp); -static int rtl8101_poll(struct napi_struct *napi, int budget); - -static const unsigned int rtl8101_rx_config = - (RX_FIFO_THRESH << RxCfgFIFOShift) | (RX_DMA_BURST << RxCfgDMAShift); - -static void mdio_write(void __iomem *ioaddr, int reg_addr, int value) -{ - int i; - - RTL_W32(PHYAR, 0x80000000 | (reg_addr & 0x1f) << 16 | (value & 0xffff)); - - for (i = 20; i > 0; i--) { - /* - * Check if the RTL8101 has completed writing to the specified - * MII register. - */ - if (!(RTL_R32(PHYAR) & 0x80000000)) - break; - udelay(25); - } -} - -static int mdio_read(void __iomem *ioaddr, int reg_addr) -{ - int i, value = -1; - - RTL_W32(PHYAR, 0x0 | (reg_addr & 0x1f) << 16); - - for (i = 20; i > 0; i--) { - /* - * Check if the RTL8101 has completed retrieving data from - * the specified MII register. - */ - if (RTL_R32(PHYAR) & 0x80000000) { - value = RTL_R32(PHYAR) & 0xffff; - break; - } - udelay(25); - } - return value; -} - -static void mdio_patch(void __iomem *ioaddr, int reg_addr, int value) -{ - mdio_write(ioaddr, reg_addr, mdio_read(ioaddr, reg_addr) | value); -} - -static void rtl_mdio_write(struct net_device *dev, int phy_id, int location, - int val) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - - mdio_write(ioaddr, location, val); -} - -static int rtl_mdio_read(struct net_device *dev, int phy_id, int location) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - - return mdio_read(ioaddr, location); -} - -static void rtl_ephy_write(void __iomem *ioaddr, int reg_addr, int value) -{ - unsigned int i; - - RTL_W32(EPHYAR, EPHYAR_WRITE_CMD | (value & EPHYAR_DATA_MASK) | - (reg_addr & EPHYAR_REG_MASK) << EPHYAR_REG_SHIFT); - - for (i = 0; i < 100; i++) { - if (!(RTL_R32(EPHYAR) & EPHYAR_FLAG)) - break; - udelay(10); - } -} - -static u16 rtl_ephy_read(void __iomem *ioaddr, int reg_addr) -{ - u16 value = 0xffff; - unsigned int i; - - RTL_W32(EPHYAR, (reg_addr & EPHYAR_REG_MASK) << EPHYAR_REG_SHIFT); - - for (i = 0; i < 100; i++) { - if (RTL_R32(EPHYAR) & EPHYAR_FLAG) { - value = RTL_R32(EPHYAR) & EPHYAR_DATA_MASK; - break; - } - udelay(10); - } - - return value; -} - -static void rtl_csi_write(void __iomem *ioaddr, int addr, int value) -{ - unsigned int i; - - RTL_W32(CSIDR, value); - RTL_W32(CSIAR, CSIAR_WRITE_CMD | (addr & CSIAR_ADDR_MASK) | - CSIAR_BYTE_ENABLE << CSIAR_BYTE_ENABLE_SHIFT); - - for (i = 0; i < 100; i++) { - if (!(RTL_R32(CSIAR) & CSIAR_FLAG)) - break; - udelay(10); - } -} - -static u32 rtl_csi_read(void __iomem *ioaddr, int addr) -{ - u32 value = ~0x00; - unsigned int i; - - RTL_W32(CSIAR, (addr & CSIAR_ADDR_MASK) | - CSIAR_BYTE_ENABLE << CSIAR_BYTE_ENABLE_SHIFT); - - for (i = 0; i < 100; i++) { - if (RTL_R32(CSIAR) & CSIAR_FLAG) { - value = RTL_R32(CSIDR); - break; - } - udelay(10); - } - - return value; -} - -static void rtl8101_irq_mask_and_ack(void __iomem *ioaddr) -{ - RTL_W16(IntrMask, 0x0000); - - RTL_W16(IntrStatus, 0xffff); -} - -static void rtl8101_asic_down(void __iomem *ioaddr) -{ - RTL_W8(ChipCmd, 0x00); - rtl8101_irq_mask_and_ack(ioaddr); - RTL_R16(CPlusCmd); -} - -static unsigned int rtl8101_tbi_reset_pending(void __iomem *ioaddr) -{ - return RTL_R32(TBICSR) & TBIReset; -} - -static unsigned int rtl8101_xmii_reset_pending(void __iomem *ioaddr) -{ - return mdio_read(ioaddr, MII_BMCR) & BMCR_RESET; -} - -static unsigned int rtl8101_tbi_link_ok(void __iomem *ioaddr) -{ - return RTL_R32(TBICSR) & TBILinkOk; -} - -static unsigned int rtl8101_xmii_link_ok(void __iomem *ioaddr) -{ - return RTL_R8(PHYstatus) & LinkStatus; -} - -static void rtl8101_tbi_reset_enable(void __iomem *ioaddr) -{ - RTL_W32(TBICSR, RTL_R32(TBICSR) | TBIReset); -} - -static void rtl8101_xmii_reset_enable(void __iomem *ioaddr) -{ - unsigned int val; - - val = mdio_read(ioaddr, MII_BMCR) | BMCR_RESET; - mdio_write(ioaddr, MII_BMCR, val & 0xffff); -} - -static void rtl8101_check_link_status(struct net_device *dev, - struct rtl8101_private *tp, - void __iomem *ioaddr) -{ - unsigned long flags; - - spin_lock_irqsave(&tp->lock, flags); - if (tp->link_ok(ioaddr)) { - netif_carrier_on(dev); - if (netif_msg_ifup(tp)) - printk(KERN_INFO PFX "%s: link up\n", dev->name); - } else { - if (netif_msg_ifdown(tp)) - printk(KERN_INFO PFX "%s: link down\n", dev->name); - netif_carrier_off(dev); - } - spin_unlock_irqrestore(&tp->lock, flags); -} - -static void rtl8101_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - u8 options; - - wol->wolopts = 0; - -#define WAKE_ANY (WAKE_PHY | WAKE_MAGIC | WAKE_UCAST | WAKE_BCAST | WAKE_MCAST) - wol->supported = WAKE_ANY; - - spin_lock_irq(&tp->lock); - - options = RTL_R8(Config1); - if (!(options & PMEnable)) - goto out_unlock; - - options = RTL_R8(Config3); - if (options & LinkUp) - wol->wolopts |= WAKE_PHY; - if (options & MagicPacket) - wol->wolopts |= WAKE_MAGIC; - - options = RTL_R8(Config5); - if (options & UWF) - wol->wolopts |= WAKE_UCAST; - if (options & BWF) - wol->wolopts |= WAKE_BCAST; - if (options & MWF) - wol->wolopts |= WAKE_MCAST; - -out_unlock: - spin_unlock_irq(&tp->lock); -} - -static int rtl8101_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - unsigned int i; - static struct { - u32 opt; - u16 reg; - u8 mask; - } cfg[] = { - { WAKE_ANY, Config1, PMEnable }, - { WAKE_PHY, Config3, LinkUp }, - { WAKE_MAGIC, Config3, MagicPacket }, - { WAKE_UCAST, Config5, UWF }, - { WAKE_BCAST, Config5, BWF }, - { WAKE_MCAST, Config5, MWF }, - { WAKE_ANY, Config5, LanWake } - }; - - spin_lock_irq(&tp->lock); - - RTL_W8(Cfg9346, Cfg9346_Unlock); - - for (i = 0; i < ARRAY_SIZE(cfg); i++) { - u8 options = RTL_R8(cfg[i].reg) & ~cfg[i].mask; - if (wol->wolopts & cfg[i].opt) - options |= cfg[i].mask; - RTL_W8(cfg[i].reg, options); - } - - RTL_W8(Cfg9346, Cfg9346_Lock); - - if (wol->wolopts) - tp->features |= RTL_FEATURE_WOL; - else - tp->features &= ~RTL_FEATURE_WOL; - - spin_unlock_irq(&tp->lock); - - return 0; -} - -static void rtl8101_get_drvinfo(struct net_device *dev, - struct ethtool_drvinfo *info) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - strcpy(info->driver, MODULENAME); - strcpy(info->version, RTL8101_VERSION); - strcpy(info->bus_info, pci_name(tp->pci_dev)); -} - -static int rtl8101_get_regs_len(struct net_device *dev) -{ - return R8101_REGS_SIZE; -} - -static int rtl8101_set_speed_tbi(struct net_device *dev, - u8 autoneg, u16 speed, u8 duplex) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - int ret = 0; - u32 reg; - - reg = RTL_R32(TBICSR); - if ((autoneg == AUTONEG_DISABLE) && (speed == SPEED_1000) && - (duplex == DUPLEX_FULL)) { - RTL_W32(TBICSR, reg & ~(TBINwEnable | TBINwRestart)); - } else if (autoneg == AUTONEG_ENABLE) - RTL_W32(TBICSR, reg | TBINwEnable | TBINwRestart); - else { - if (netif_msg_link(tp)) { - printk(KERN_WARNING "%s: " - "incorrect speed setting refused in TBI mode\n", - dev->name); - } - ret = -EOPNOTSUPP; - } - - return ret; -} - -static int rtl8101_set_speed_xmii(struct net_device *dev, - u8 autoneg, u16 speed, u8 duplex) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - int giga_ctrl, bmcr; - - if (autoneg == AUTONEG_ENABLE) { - int auto_nego; - - auto_nego = mdio_read(ioaddr, MII_ADVERTISE); - auto_nego |= (ADVERTISE_10HALF | ADVERTISE_10FULL | - ADVERTISE_100HALF | ADVERTISE_100FULL); - auto_nego |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM; - - giga_ctrl = mdio_read(ioaddr, MII_CTRL1000); - giga_ctrl &= ~(ADVERTISE_1000FULL | ADVERTISE_1000HALF); - - /* The 8100e/8101e/8102e do Fast Ethernet only. */ - if ((tp->mac_version != RTL_GIGA_MAC_VER_07) && - (tp->mac_version != RTL_GIGA_MAC_VER_08) && - (tp->mac_version != RTL_GIGA_MAC_VER_09) && - (tp->mac_version != RTL_GIGA_MAC_VER_10) && - (tp->mac_version != RTL_GIGA_MAC_VER_13) && - (tp->mac_version != RTL_GIGA_MAC_VER_14) && - (tp->mac_version != RTL_GIGA_MAC_VER_15) && - (tp->mac_version != RTL_GIGA_MAC_VER_16)) { - giga_ctrl |= ADVERTISE_1000FULL | ADVERTISE_1000HALF; - } else if (netif_msg_link(tp)) { - printk(KERN_INFO "%s: PHY does not support 1000Mbps.\n", - dev->name); - } - - bmcr = BMCR_ANENABLE | BMCR_ANRESTART; - - if ((tp->mac_version == RTL_GIGA_MAC_VER_11) || - (tp->mac_version == RTL_GIGA_MAC_VER_12) || - (tp->mac_version >= RTL_GIGA_MAC_VER_17)) { - /* - * Wake up the PHY. - * Vendor specific (0x1f) and reserved (0x0e) MII - * registers. - */ - mdio_write(ioaddr, 0x1f, 0x0000); - mdio_write(ioaddr, 0x0e, 0x0000); - } - - tp->phy_auto_nego_reg = auto_nego; - - mdio_write(ioaddr, MII_ADVERTISE, auto_nego); - mdio_write(ioaddr, MII_CTRL1000, giga_ctrl); - } else { - giga_ctrl = 0; - - if (speed == SPEED_10) - bmcr = 0; - else if (speed == SPEED_100) - bmcr = BMCR_SPEED100; - else - return -EINVAL; - - if (duplex == DUPLEX_FULL) - bmcr |= BMCR_FULLDPLX; - - mdio_write(ioaddr, 0x1f, 0x0000); - } - - tp->phy_1000_ctrl_reg = giga_ctrl; - - mdio_write(ioaddr, MII_BMCR, bmcr); - - if ((tp->mac_version == RTL_GIGA_MAC_VER_02) || - (tp->mac_version == RTL_GIGA_MAC_VER_03)) { - if ((speed == SPEED_100) && (autoneg != AUTONEG_ENABLE)) { - mdio_write(ioaddr, 0x17, 0x2138); - mdio_write(ioaddr, 0x0e, 0x0260); - } else { - mdio_write(ioaddr, 0x17, 0x2108); - mdio_write(ioaddr, 0x0e, 0x0000); - } - } - - return 0; -} - -static int rtl8101_set_speed(struct net_device *dev, - u8 autoneg, u16 speed, u8 duplex) -{ - struct rtl8101_private *tp = netdev_priv(dev); - int ret; - - ret = tp->set_speed(dev, autoneg, speed, duplex); - - if (netif_running(dev) && (tp->phy_1000_ctrl_reg & ADVERTISE_1000FULL)) - mod_timer(&tp->timer, jiffies + RTL8101_PHY_TIMEOUT); - - return ret; -} - -static int rtl8101_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) -{ - struct rtl8101_private *tp = netdev_priv(dev); - unsigned long flags; - int ret; - - spin_lock_irqsave(&tp->lock, flags); - ret = rtl8101_set_speed(dev, cmd->autoneg, cmd->speed, cmd->duplex); - spin_unlock_irqrestore(&tp->lock, flags); - - return ret; -} - -static u32 rtl8101_get_rx_csum(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - return tp->cp_cmd & RxChkSum; -} - -static int rtl8101_set_rx_csum(struct net_device *dev, u32 data) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - unsigned long flags; - - spin_lock_irqsave(&tp->lock, flags); - - if (data) - tp->cp_cmd |= RxChkSum; - else - tp->cp_cmd &= ~RxChkSum; - - RTL_W16(CPlusCmd, tp->cp_cmd); - RTL_R16(CPlusCmd); - - spin_unlock_irqrestore(&tp->lock, flags); - - return 0; -} - -#ifdef CONFIG_R8101_VLAN - -static inline u32 rtl8101_tx_vlan_tag(struct rtl8101_private *tp, - struct sk_buff *skb) -{ - return (tp->vlgrp && vlan_tx_tag_present(skb)) ? - TxVlanTag | swab16(vlan_tx_tag_get(skb)) : 0x00; -} - -static void rtl8101_vlan_rx_register(struct net_device *dev, - struct vlan_group *grp) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - unsigned long flags; - - spin_lock_irqsave(&tp->lock, flags); - tp->vlgrp = grp; - if (tp->vlgrp) - tp->cp_cmd |= RxVlan; - else - tp->cp_cmd &= ~RxVlan; - RTL_W16(CPlusCmd, tp->cp_cmd); - RTL_R16(CPlusCmd); - spin_unlock_irqrestore(&tp->lock, flags); -} - -static int rtl8101_rx_vlan_skb(struct rtl8101_private *tp, struct RxDesc *desc, - struct sk_buff *skb) -{ - u32 opts2 = le32_to_cpu(desc->opts2); - struct vlan_group *vlgrp = tp->vlgrp; - int ret; - - if (vlgrp && (opts2 & RxVlanTag)) { - vlan_hwaccel_receive_skb(skb, vlgrp, swab16(opts2 & 0xffff)); - ret = 0; - } else - ret = -1; - desc->opts2 = 0; - return ret; -} - -#else /* !CONFIG_R8101_VLAN */ - -static inline u32 rtl8101_tx_vlan_tag(struct rtl8101_private *tp, - struct sk_buff *skb) -{ - return 0; -} - -static int rtl8101_rx_vlan_skb(struct rtl8101_private *tp, struct RxDesc *desc, - struct sk_buff *skb) -{ - return -1; -} - -#endif - -static int rtl8101_gset_tbi(struct net_device *dev, struct ethtool_cmd *cmd) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - u32 status; - - cmd->supported = - SUPPORTED_1000baseT_Full | SUPPORTED_Autoneg | SUPPORTED_FIBRE; - cmd->port = PORT_FIBRE; - cmd->transceiver = XCVR_INTERNAL; - - status = RTL_R32(TBICSR); - cmd->advertising = (status & TBINwEnable) ? ADVERTISED_Autoneg : 0; - cmd->autoneg = !!(status & TBINwEnable); - - cmd->speed = SPEED_1000; - cmd->duplex = DUPLEX_FULL; /* Always set */ - - return 0; -} - -static int rtl8101_gset_xmii(struct net_device *dev, struct ethtool_cmd *cmd) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - return mii_ethtool_gset(&tp->mii, cmd); -} - -static int rtl8101_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) -{ - struct rtl8101_private *tp = netdev_priv(dev); - unsigned long flags; - int rc; - - spin_lock_irqsave(&tp->lock, flags); - - rc = tp->get_settings(dev, cmd); - - spin_unlock_irqrestore(&tp->lock, flags); - return rc; -} - -static void rtl8101_get_regs(struct net_device *dev, struct ethtool_regs *regs, - void *p) -{ - struct rtl8101_private *tp = netdev_priv(dev); - unsigned long flags; - - if (regs->len > R8101_REGS_SIZE) - regs->len = R8101_REGS_SIZE; - - spin_lock_irqsave(&tp->lock, flags); - memcpy_fromio(p, tp->mmio_addr, regs->len); - spin_unlock_irqrestore(&tp->lock, flags); -} - -static u32 rtl8101_get_msglevel(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - return tp->msg_enable; -} - -static void rtl8101_set_msglevel(struct net_device *dev, u32 value) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - tp->msg_enable = value; -} - -static const char rtl8101_gstrings[][ETH_GSTRING_LEN] = { - "tx_packets", - "rx_packets", - "tx_errors", - "rx_errors", - "rx_missed", - "align_errors", - "tx_single_collisions", - "tx_multi_collisions", - "unicast", - "broadcast", - "multicast", - "tx_aborted", - "tx_underrun", -}; - -static int rtl8101_get_sset_count(struct net_device *dev, int sset) -{ - switch (sset) { - case ETH_SS_STATS: - return ARRAY_SIZE(rtl8101_gstrings); - default: - return -EOPNOTSUPP; - } -} - -static void rtl8101_update_counters(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - struct rtl8101_counters *counters; - dma_addr_t paddr; - u32 cmd; - int wait = 1000; - - /* - * Some chips are unable to dump tally counters when the receiver - * is disabled. - */ - if ((RTL_R8(ChipCmd) & CmdRxEnb) == 0) - return; - - counters = pci_alloc_consistent(tp->pci_dev, sizeof(*counters), &paddr); - if (!counters) - return; - - RTL_W32(CounterAddrHigh, (u64)paddr >> 32); - cmd = (u64)paddr & DMA_32BIT_MASK; - RTL_W32(CounterAddrLow, cmd); - RTL_W32(CounterAddrLow, cmd | CounterDump); - - while (wait--) { - if ((RTL_R32(CounterAddrLow) & CounterDump) == 0) { - /* copy updated counters */ - memcpy(&tp->counters, counters, sizeof(*counters)); - break; - } - udelay(10); - } - - RTL_W32(CounterAddrLow, 0); - RTL_W32(CounterAddrHigh, 0); - - pci_free_consistent(tp->pci_dev, sizeof(*counters), counters, paddr); -} - -static void rtl8101_get_ethtool_stats(struct net_device *dev, - struct ethtool_stats *stats, u64 *data) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - ASSERT_RTNL(); - - rtl8101_update_counters(dev); - - data[0] = le64_to_cpu(tp->counters.tx_packets); - data[1] = le64_to_cpu(tp->counters.rx_packets); - data[2] = le64_to_cpu(tp->counters.tx_errors); - data[3] = le32_to_cpu(tp->counters.rx_errors); - data[4] = le16_to_cpu(tp->counters.rx_missed); - data[5] = le16_to_cpu(tp->counters.align_errors); - data[6] = le32_to_cpu(tp->counters.tx_one_collision); - data[7] = le32_to_cpu(tp->counters.tx_multi_collision); - data[8] = le64_to_cpu(tp->counters.rx_unicast); - data[9] = le64_to_cpu(tp->counters.rx_broadcast); - data[10] = le32_to_cpu(tp->counters.rx_multicast); - data[11] = le16_to_cpu(tp->counters.tx_aborted); - data[12] = le16_to_cpu(tp->counters.tx_underun); -} - -static void rtl8101_get_strings(struct net_device *dev, u32 stringset, u8 *data) -{ - switch(stringset) { - case ETH_SS_STATS: - memcpy(data, *rtl8101_gstrings, sizeof(rtl8101_gstrings)); - break; - } -} - -static const struct ethtool_ops rtl8101_ethtool_ops = { - .get_drvinfo = rtl8101_get_drvinfo, - .get_regs_len = rtl8101_get_regs_len, - .get_link = ethtool_op_get_link, - .get_settings = rtl8101_get_settings, - .set_settings = rtl8101_set_settings, - .get_msglevel = rtl8101_get_msglevel, - .set_msglevel = rtl8101_set_msglevel, - .get_rx_csum = rtl8101_get_rx_csum, - .set_rx_csum = rtl8101_set_rx_csum, - .set_tx_csum = ethtool_op_set_tx_csum, - .set_sg = ethtool_op_set_sg, - .set_tso = ethtool_op_set_tso, - .get_regs = rtl8101_get_regs, - .get_wol = rtl8101_get_wol, - .set_wol = rtl8101_set_wol, - .get_strings = rtl8101_get_strings, - .get_sset_count = rtl8101_get_sset_count, - .get_ethtool_stats = rtl8101_get_ethtool_stats, -}; - -static void rtl8101_write_gmii_reg_bit(void __iomem *ioaddr, int reg, - int bitnum, int bitval) -{ - int val; - - val = mdio_read(ioaddr, reg); - val = (bitval == 1) ? - val | (bitval << bitnum) : val & ~(0x0001 << bitnum); - mdio_write(ioaddr, reg, val & 0xffff); -} - -static void rtl8101_get_mac_version(struct rtl8101_private *tp, - void __iomem *ioaddr) -{ - /* - * The driver currently handles the 8168Bf and the 8168Be identically - * but they can be identified more specifically through the test below - * if needed: - * - * (RTL_R32(TxConfig) & 0x700000) == 0x500000 ? 8168Bf : 8168Be - * - * Same thing for the 8101Eb and the 8101Ec: - * - * (RTL_R32(TxConfig) & 0x700000) == 0x200000 ? 8101Eb : 8101Ec - */ - const struct { - u32 mask; - u32 val; - int mac_version; - } mac_info[] = { - /* 8168B family. */ - { 0x7c800000, 0x3c800000, RTL_GIGA_MAC_VER_18 }, - { 0x7cf00000, 0x3c000000, RTL_GIGA_MAC_VER_19 }, - { 0x7cf00000, 0x3c200000, RTL_GIGA_MAC_VER_20 }, - { 0x7c800000, 0x3c000000, RTL_GIGA_MAC_VER_20 }, - - /* 8168B family. */ - { 0x7cf00000, 0x38000000, RTL_GIGA_MAC_VER_12 }, - { 0x7cf00000, 0x38500000, RTL_GIGA_MAC_VER_17 }, - { 0x7c800000, 0x38000000, RTL_GIGA_MAC_VER_17 }, - { 0x7c800000, 0x30000000, RTL_GIGA_MAC_VER_11 }, - - /* 8101 family. */ - { 0x7cf00000, 0x34a00000, RTL_GIGA_MAC_VER_09 }, - { 0x7cf00000, 0x24a00000, RTL_GIGA_MAC_VER_09 }, - { 0x7cf00000, 0x34900000, RTL_GIGA_MAC_VER_08 }, - { 0x7cf00000, 0x24900000, RTL_GIGA_MAC_VER_08 }, - { 0x7cf00000, 0x34800000, RTL_GIGA_MAC_VER_07 }, - { 0x7cf00000, 0x24800000, RTL_GIGA_MAC_VER_07 }, - { 0x7cf00000, 0x34000000, RTL_GIGA_MAC_VER_13 }, - { 0x7cf00000, 0x34300000, RTL_GIGA_MAC_VER_10 }, - { 0x7cf00000, 0x34200000, RTL_GIGA_MAC_VER_16 }, - { 0x7c800000, 0x34800000, RTL_GIGA_MAC_VER_09 }, - { 0x7c800000, 0x24800000, RTL_GIGA_MAC_VER_09 }, - { 0x7c800000, 0x34000000, RTL_GIGA_MAC_VER_16 }, - /* FIXME: where did these entries come from ? -- FR */ - { 0xfc800000, 0x38800000, RTL_GIGA_MAC_VER_15 }, - { 0xfc800000, 0x30800000, RTL_GIGA_MAC_VER_14 }, - - /* 8110 family. */ - { 0xfc800000, 0x98000000, RTL_GIGA_MAC_VER_06 }, - { 0xfc800000, 0x18000000, RTL_GIGA_MAC_VER_05 }, - { 0xfc800000, 0x10000000, RTL_GIGA_MAC_VER_04 }, - { 0xfc800000, 0x04000000, RTL_GIGA_MAC_VER_03 }, - { 0xfc800000, 0x00800000, RTL_GIGA_MAC_VER_02 }, - { 0xfc800000, 0x00000000, RTL_GIGA_MAC_VER_01 }, - - { 0x00000000, 0x00000000, RTL_GIGA_MAC_VER_01 } /* Catch-all */ - }, *p = mac_info; - u32 reg; - - reg = RTL_R32(TxConfig); - while ((reg & p->mask) != p->val) - p++; - tp->mac_version = p->mac_version; - - if (p->mask == 0x00000000) { - struct pci_dev *pdev = tp->pci_dev; - - dev_info(&pdev->dev, "unknown MAC (%08x)\n", reg); - } -} - -static void rtl8101_print_mac_version(struct rtl8101_private *tp) -{ - dprintk("mac_version = 0x%02x\n", tp->mac_version); -} - -struct phy_reg { - u16 reg; - u16 val; -}; - -static void rtl_phy_write(void __iomem *ioaddr, struct phy_reg *regs, int len) -{ - while (len-- > 0) { - mdio_write(ioaddr, regs->reg, regs->val); - regs++; - } -} - -static void rtl8101s_hw_phy_config(void __iomem *ioaddr) -{ - struct { - u16 regs[5]; /* Beware of bit-sign propagation */ - } phy_magic[5] = { { - { 0x0000, //w 4 15 12 0 - 0x00a1, //w 3 15 0 00a1 - 0x0008, //w 2 15 0 0008 - 0x1020, //w 1 15 0 1020 - 0x1000 } },{ //w 0 15 0 1000 - { 0x7000, //w 4 15 12 7 - 0xff41, //w 3 15 0 ff41 - 0xde60, //w 2 15 0 de60 - 0x0140, //w 1 15 0 0140 - 0x0077 } },{ //w 0 15 0 0077 - { 0xa000, //w 4 15 12 a - 0xdf01, //w 3 15 0 df01 - 0xdf20, //w 2 15 0 df20 - 0xff95, //w 1 15 0 ff95 - 0xfa00 } },{ //w 0 15 0 fa00 - { 0xb000, //w 4 15 12 b - 0xff41, //w 3 15 0 ff41 - 0xde20, //w 2 15 0 de20 - 0x0140, //w 1 15 0 0140 - 0x00bb } },{ //w 0 15 0 00bb - { 0xf000, //w 4 15 12 f - 0xdf01, //w 3 15 0 df01 - 0xdf20, //w 2 15 0 df20 - 0xff95, //w 1 15 0 ff95 - 0xbf00 } //w 0 15 0 bf00 - } - }, *p = phy_magic; - unsigned int i; - - mdio_write(ioaddr, 0x1f, 0x0001); //w 31 2 0 1 - mdio_write(ioaddr, 0x15, 0x1000); //w 21 15 0 1000 - mdio_write(ioaddr, 0x18, 0x65c7); //w 24 15 0 65c7 - rtl8101_write_gmii_reg_bit(ioaddr, 4, 11, 0); //w 4 11 11 0 - - for (i = 0; i < ARRAY_SIZE(phy_magic); i++, p++) { - int val, pos = 4; - - val = (mdio_read(ioaddr, pos) & 0x0fff) | (p->regs[0] & 0xffff); - mdio_write(ioaddr, pos, val); - while (--pos >= 0) - mdio_write(ioaddr, pos, p->regs[4 - pos] & 0xffff); - rtl8101_write_gmii_reg_bit(ioaddr, 4, 11, 1); //w 4 11 11 1 - rtl8101_write_gmii_reg_bit(ioaddr, 4, 11, 0); //w 4 11 11 0 - } - mdio_write(ioaddr, 0x1f, 0x0000); //w 31 2 0 0 -} - -static void rtl8101sb_hw_phy_config(void __iomem *ioaddr) -{ - struct phy_reg phy_reg_init[] = { - { 0x1f, 0x0002 }, - { 0x01, 0x90d0 }, - { 0x1f, 0x0000 } - }; - - rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init)); -} - -static void rtl8168cp_hw_phy_config(void __iomem *ioaddr) -{ - struct phy_reg phy_reg_init[] = { - { 0x1f, 0x0000 }, - { 0x1d, 0x0f00 }, - { 0x1f, 0x0002 }, - { 0x0c, 0x1ec8 }, - { 0x1f, 0x0000 } - }; - - rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init)); -} - -static void rtl8168c_hw_phy_config(void __iomem *ioaddr) -{ - struct phy_reg phy_reg_init[] = { - { 0x1f, 0x0001 }, - { 0x12, 0x2300 }, - { 0x1f, 0x0002 }, - { 0x00, 0x88d4 }, - { 0x01, 0x82b1 }, - { 0x03, 0x7002 }, - { 0x08, 0x9e30 }, - { 0x09, 0x01f0 }, - { 0x0a, 0x5500 }, - { 0x0c, 0x00c8 }, - { 0x1f, 0x0003 }, - { 0x12, 0xc096 }, - { 0x16, 0x000a }, - { 0x1f, 0x0000 } - }; - - rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init)); -} - -static void rtl8168cx_hw_phy_config(void __iomem *ioaddr) -{ - struct phy_reg phy_reg_init[] = { - { 0x1f, 0x0000 }, - { 0x12, 0x2300 }, - { 0x1f, 0x0003 }, - { 0x16, 0x0f0a }, - { 0x1f, 0x0000 }, - { 0x1f, 0x0002 }, - { 0x0c, 0x7eb8 }, - { 0x1f, 0x0000 } - }; - - rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init)); -} - -static void rtl8102e_hw_phy_config(void __iomem *ioaddr) -{ - struct phy_reg phy_reg_init[] = { - { 0x1f, 0x0003 }, - { 0x08, 0x441d }, - { 0x01, 0x9100 }, - { 0x1f, 0x0000 } - }; - - mdio_write(ioaddr, 0x1f, 0x0000); - mdio_patch(ioaddr, 0x11, 1 << 12); - mdio_patch(ioaddr, 0x19, 1 << 13); - - rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init)); -} - -static void rtl_hw_phy_config(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - - rtl8101_print_mac_version(tp); - - switch (tp->mac_version) { - case RTL_GIGA_MAC_VER_01: - break; - case RTL_GIGA_MAC_VER_02: - case RTL_GIGA_MAC_VER_03: - rtl8101s_hw_phy_config(ioaddr); - break; - case RTL_GIGA_MAC_VER_04: - rtl8101sb_hw_phy_config(ioaddr); - break; - case RTL_GIGA_MAC_VER_07: - case RTL_GIGA_MAC_VER_08: - case RTL_GIGA_MAC_VER_09: - rtl8102e_hw_phy_config(ioaddr); - break; - case RTL_GIGA_MAC_VER_18: - rtl8168cp_hw_phy_config(ioaddr); - break; - case RTL_GIGA_MAC_VER_19: - rtl8168c_hw_phy_config(ioaddr); - break; - case RTL_GIGA_MAC_VER_20: - rtl8168cx_hw_phy_config(ioaddr); - break; - default: - break; - } -} - -static void rtl8101_phy_timer(unsigned long __opaque) -{ - struct net_device *dev = (struct net_device *)__opaque; - struct rtl8101_private *tp = netdev_priv(dev); - struct timer_list *timer = &tp->timer; - void __iomem *ioaddr = tp->mmio_addr; - unsigned long timeout = RTL8101_PHY_TIMEOUT; - - assert(tp->mac_version > RTL_GIGA_MAC_VER_01); - - if (!(tp->phy_1000_ctrl_reg & ADVERTISE_1000FULL)) - return; - - spin_lock_irq(&tp->lock); - - if (tp->phy_reset_pending(ioaddr)) { - /* - * A busy loop could burn quite a few cycles on nowadays CPU. - * Let's delay the execution of the timer for a few ticks. - */ - timeout = HZ/10; - goto out_mod_timer; - } - - if (tp->link_ok(ioaddr)) - goto out_unlock; - - if (netif_msg_link(tp)) - printk(KERN_WARNING "%s: PHY reset until link up\n", dev->name); - - tp->phy_reset_enable(ioaddr); - -out_mod_timer: - mod_timer(timer, jiffies + timeout); -out_unlock: - spin_unlock_irq(&tp->lock); -} - -static inline void rtl8101_delete_timer(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - struct timer_list *timer = &tp->timer; - - if (tp->mac_version <= RTL_GIGA_MAC_VER_01) - return; - - del_timer_sync(timer); -} - -static inline void rtl8101_request_timer(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - struct timer_list *timer = &tp->timer; - - if (tp->mac_version <= RTL_GIGA_MAC_VER_01) - return; - - mod_timer(timer, jiffies + RTL8101_PHY_TIMEOUT); -} - -#ifdef CONFIG_NET_POLL_CONTROLLER -/* - * Polling 'interrupt' - used by things like netconsole to send skbs - * without having to re-enable interrupts. It's not called while - * the interrupt routine is executing. - */ -static void rtl8101_netpoll(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - struct pci_dev *pdev = tp->pci_dev; - - disable_irq(pdev->irq); - rtl8101_interrupt(pdev->irq, dev); - enable_irq(pdev->irq); -} -#endif - -static void rtl8101_release_board(struct pci_dev *pdev, struct net_device *dev, - void __iomem *ioaddr) -{ - iounmap(ioaddr); - pci_release_regions(pdev); - pci_disable_device(pdev); - free_netdev(dev); -} - -static void rtl8101_phy_reset(struct net_device *dev, - struct rtl8101_private *tp) -{ - void __iomem *ioaddr = tp->mmio_addr; - unsigned int i; - - tp->phy_reset_enable(ioaddr); - for (i = 0; i < 100; i++) { - if (!tp->phy_reset_pending(ioaddr)) - return; - msleep(1); - } - if (netif_msg_link(tp)) - printk(KERN_ERR "%s: PHY reset failed.\n", dev->name); -} - -static void rtl8101_init_phy(struct net_device *dev, struct rtl8101_private *tp) -{ - void __iomem *ioaddr = tp->mmio_addr; - - rtl_hw_phy_config(dev); - - if (tp->mac_version <= RTL_GIGA_MAC_VER_06) { - dprintk("Set MAC Reg C+CR Offset 0x82h = 0x01h\n"); - RTL_W8(0x82, 0x01); - } - - pci_write_config_byte(tp->pci_dev, PCI_LATENCY_TIMER, 0x40); - - if (tp->mac_version <= RTL_GIGA_MAC_VER_06) - pci_write_config_byte(tp->pci_dev, PCI_CACHE_LINE_SIZE, 0x08); - - if (tp->mac_version == RTL_GIGA_MAC_VER_02) { - dprintk("Set MAC Reg C+CR Offset 0x82h = 0x01h\n"); - RTL_W8(0x82, 0x01); - dprintk("Set PHY Reg 0x0bh = 0x00h\n"); - mdio_write(ioaddr, 0x0b, 0x0000); //w 0x0b 15 0 0 - } - - rtl8101_phy_reset(dev, tp); - - /* - * rtl8101_set_speed_xmii takes good care of the Fast Ethernet - * only 8101. Don't panic. - */ - rtl8101_set_speed(dev, AUTONEG_ENABLE, SPEED_1000, DUPLEX_FULL); - - if ((RTL_R8(PHYstatus) & TBI_Enable) && netif_msg_link(tp)) - printk(KERN_INFO PFX "%s: TBI auto-negotiating\n", dev->name); -} - -static void rtl_rar_set(struct rtl8101_private *tp, u8 *addr) -{ - void __iomem *ioaddr = tp->mmio_addr; - u32 high; - u32 low; - - low = addr[0] | (addr[1] << 8) | (addr[2] << 16) | (addr[3] << 24); - high = addr[4] | (addr[5] << 8); - - spin_lock_irq(&tp->lock); - - RTL_W8(Cfg9346, Cfg9346_Unlock); - RTL_W32(MAC0, low); - RTL_W32(MAC4, high); - RTL_W8(Cfg9346, Cfg9346_Lock); - - spin_unlock_irq(&tp->lock); -} - -static int rtl_set_mac_address(struct net_device *dev, void *p) -{ - struct rtl8101_private *tp = netdev_priv(dev); - struct sockaddr *addr = p; - - if (!is_valid_ether_addr(addr->sa_data)) - return -EADDRNOTAVAIL; - - memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); - - rtl_rar_set(tp, dev->dev_addr); - - return 0; -} - -static int rtl8101_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) -{ - struct rtl8101_private *tp = netdev_priv(dev); - struct mii_ioctl_data *data = if_mii(ifr); - - if (!netif_running(dev)) - return -ENODEV; - - switch (cmd) { - case SIOCGMIIPHY: - data->phy_id = 32; /* Internal PHY */ - return 0; - - case SIOCGMIIREG: - data->val_out = mdio_read(tp->mmio_addr, data->reg_num & 0x1f); - return 0; - - case SIOCSMIIREG: - if (!capable(CAP_NET_ADMIN)) - return -EPERM; - mdio_write(tp->mmio_addr, data->reg_num & 0x1f, data->val_in); - return 0; - } - return -EOPNOTSUPP; -} - -static const struct rtl_cfg_info { - void (*hw_start)(struct net_device *); - unsigned int region; - unsigned int align; - u16 intr_event; - u16 napi_event; - unsigned features; -} rtl_cfg_infos [] = { - [RTL_CFG_0] = { - .hw_start = rtl_hw_start_8169, - .region = 1, - .align = 0, - .intr_event = SYSErr | LinkChg | RxOverflow | - RxFIFOOver | TxErr | TxOK | RxOK | RxErr, - .napi_event = RxFIFOOver | TxErr | TxOK | RxOK | RxOverflow, - .features = RTL_FEATURE_GMII - }, - [RTL_CFG_1] = { - .hw_start = rtl_hw_start_8168, - .region = 2, - .align = 8, - .intr_event = SYSErr | LinkChg | RxOverflow | - TxErr | TxOK | RxOK | RxErr, - .napi_event = TxErr | TxOK | RxOK | RxOverflow, - .features = RTL_FEATURE_GMII | RTL_FEATURE_MSI - }, - [RTL_CFG_2] = { - .hw_start = rtl_hw_start_8101, - .region = 2, - .align = 8, - .intr_event = SYSErr | LinkChg | RxOverflow | PCSTimeout | - RxFIFOOver | TxErr | TxOK | RxOK | RxErr, - .napi_event = RxFIFOOver | TxErr | TxOK | RxOK | RxOverflow, - .features = RTL_FEATURE_MSI - } -}; - -/* Cfg9346_Unlock assumed. */ -static unsigned rtl_try_msi(struct pci_dev *pdev, void __iomem *ioaddr, - const struct rtl_cfg_info *cfg) -{ - unsigned msi = 0; - u8 cfg2; - - cfg2 = RTL_R8(Config2) & ~MSIEnable; - if (cfg->features & RTL_FEATURE_MSI) { - if (pci_enable_msi(pdev)) { - dev_info(&pdev->dev, "no MSI. Back to INTx.\n"); - } else { - cfg2 |= MSIEnable; - msi = RTL_FEATURE_MSI; - } - } - RTL_W8(Config2, cfg2); - return msi; -} - -static void rtl_disable_msi(struct pci_dev *pdev, struct rtl8101_private *tp) -{ - if (tp->features & RTL_FEATURE_MSI) { - pci_disable_msi(pdev); - tp->features &= ~RTL_FEATURE_MSI; - } -} - -static int __devinit -rtl8101_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) -{ - const struct rtl_cfg_info *cfg = rtl_cfg_infos + ent->driver_data; - const unsigned int region = cfg->region; - struct rtl8101_private *tp; - struct mii_if_info *mii; - struct net_device *dev; - void __iomem *ioaddr; - unsigned int i; - int rc; - - if (netif_msg_drv(&debug)) { - printk(KERN_INFO "%s Fast Ethernet driver %s loaded\n", - MODULENAME, RTL8101_VERSION); - } - - dev = alloc_etherdev(sizeof (*tp)); - if (!dev) { - if (netif_msg_drv(&debug)) - dev_err(&pdev->dev, "unable to alloc new ethernet\n"); - rc = -ENOMEM; - goto out; - } - - SET_NETDEV_DEV(dev, &pdev->dev); - tp = netdev_priv(dev); - tp->dev = dev; - tp->pci_dev = pdev; - tp->msg_enable = netif_msg_init(debug.msg_enable, R8101_MSG_DEFAULT); - - mii = &tp->mii; - mii->dev = dev; - mii->mdio_read = rtl_mdio_read; - mii->mdio_write = rtl_mdio_write; - mii->phy_id_mask = 0x1f; - mii->reg_num_mask = 0x1f; - mii->supports_gmii = !!(cfg->features & RTL_FEATURE_GMII); - - /* enable device (incl. PCI PM wakeup and hotplug setup) */ - rc = pci_enable_device(pdev); - if (rc < 0) { - if (netif_msg_probe(tp)) - dev_err(&pdev->dev, "enable failure\n"); - goto err_out_free_dev_1; - } - - rc = pci_set_mwi(pdev); - if (rc < 0) - goto err_out_disable_2; - - /* make sure PCI base addr 1 is MMIO */ - if (!(pci_resource_flags(pdev, region) & IORESOURCE_MEM)) { - if (netif_msg_probe(tp)) { - dev_err(&pdev->dev, - "region #%d not an MMIO resource, aborting\n", - region); - } - rc = -ENODEV; - goto err_out_mwi_3; - } - - /* check for weird/broken PCI region reporting */ - if (pci_resource_len(pdev, region) < R8101_REGS_SIZE) { - if (netif_msg_probe(tp)) { - dev_err(&pdev->dev, - "Invalid PCI region size(s), aborting\n"); - } - rc = -ENODEV; - goto err_out_mwi_3; - } - - rc = pci_request_regions(pdev, MODULENAME); - if (rc < 0) { - if (netif_msg_probe(tp)) - dev_err(&pdev->dev, "could not request regions.\n"); - goto err_out_mwi_3; - } - - tp->cp_cmd = PCIMulRW | RxChkSum; - - if ((sizeof(dma_addr_t) > 4) && - !pci_set_dma_mask(pdev, DMA_64BIT_MASK) && use_dac) { - tp->cp_cmd |= PCIDAC; - dev->features |= NETIF_F_HIGHDMA; - } else { - rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK); - if (rc < 0) { - if (netif_msg_probe(tp)) { - dev_err(&pdev->dev, - "DMA configuration failed.\n"); - } - goto err_out_free_res_4; - } - } - - pci_set_master(pdev); - - /* ioremap MMIO region */ - ioaddr = ioremap(pci_resource_start(pdev, region), R8101_REGS_SIZE); - if (!ioaddr) { - if (netif_msg_probe(tp)) - dev_err(&pdev->dev, "cannot remap MMIO, aborting\n"); - rc = -EIO; - goto err_out_free_res_4; - } - - tp->pcie_cap = pci_find_capability(pdev, PCI_CAP_ID_EXP); - if (!tp->pcie_cap && netif_msg_probe(tp)) - dev_info(&pdev->dev, "no PCI Express capability\n"); - - RTL_W16(IntrMask, 0x0000); - - /* Soft reset the chip. */ - RTL_W8(ChipCmd, CmdReset); - - /* Check that the chip has finished the reset. */ - for (i = 0; i < 100; i++) { - if ((RTL_R8(ChipCmd) & CmdReset) == 0) - break; - msleep_interruptible(1); - } - - RTL_W16(IntrStatus, 0xffff); - - /* Identify chip attached to board */ - rtl8101_get_mac_version(tp, ioaddr); - - rtl8101_print_mac_version(tp); - - for (i = 0; i < ARRAY_SIZE(rtl_chip_info); i++) { - if (tp->mac_version == rtl_chip_info[i].mac_version) - break; - } - if (i == ARRAY_SIZE(rtl_chip_info)) { - /* Unknown chip: assume array element #0, original RTL-8101 */ - if (netif_msg_probe(tp)) { - dev_printk(KERN_DEBUG, &pdev->dev, - "unknown chip version, assuming %s\n", - rtl_chip_info[0].name); - } - i = 0; - } - tp->chipset = i; - - RTL_W8(Cfg9346, Cfg9346_Unlock); - RTL_W8(Config1, RTL_R8(Config1) | PMEnable); - RTL_W8(Config5, RTL_R8(Config5) & PMEStatus); - tp->features |= rtl_try_msi(pdev, ioaddr, cfg); - RTL_W8(Cfg9346, Cfg9346_Lock); - - if ((tp->mac_version <= RTL_GIGA_MAC_VER_06) && - (RTL_R8(PHYstatus) & TBI_Enable)) { - tp->set_speed = rtl8101_set_speed_tbi; - tp->get_settings = rtl8101_gset_tbi; - tp->phy_reset_enable = rtl8101_tbi_reset_enable; - tp->phy_reset_pending = rtl8101_tbi_reset_pending; - tp->link_ok = rtl8101_tbi_link_ok; - - tp->phy_1000_ctrl_reg = ADVERTISE_1000FULL; /* Implied by TBI */ - } else { - tp->set_speed = rtl8101_set_speed_xmii; - tp->get_settings = rtl8101_gset_xmii; - tp->phy_reset_enable = rtl8101_xmii_reset_enable; - tp->phy_reset_pending = rtl8101_xmii_reset_pending; - tp->link_ok = rtl8101_xmii_link_ok; - - dev->do_ioctl = rtl8101_ioctl; - } - - /* Get MAC address. FIXME: read EEPROM */ - for (i = 0; i < MAC_ADDR_LEN; i++) - dev->dev_addr[i] = RTL_R8(MAC0 + i); - memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); - - dev->open = rtl8101_open; - dev->hard_start_xmit = rtl8101_start_xmit; - dev->get_stats = rtl8101_get_stats; - SET_ETHTOOL_OPS(dev, &rtl8101_ethtool_ops); - dev->stop = rtl8101_close; - dev->tx_timeout = rtl8101_tx_timeout; - dev->set_multicast_list = rtl_set_rx_mode; - dev->watchdog_timeo = RTL8101_TX_TIMEOUT; - dev->irq = pdev->irq; - dev->base_addr = (unsigned long) ioaddr; - dev->change_mtu = rtl8101_change_mtu; - dev->set_mac_address = rtl_set_mac_address; - - netif_napi_add(dev, &tp->napi, rtl8101_poll, R8101_NAPI_WEIGHT); - -#ifdef CONFIG_R8101_VLAN - dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; - dev->vlan_rx_register = rtl8101_vlan_rx_register; -#endif - -#ifdef CONFIG_NET_POLL_CONTROLLER - dev->poll_controller = rtl8101_netpoll; -#endif - - tp->intr_mask = 0xffff; - tp->mmio_addr = ioaddr; - tp->align = cfg->align; - tp->hw_start = cfg->hw_start; - tp->intr_event = cfg->intr_event; - tp->napi_event = cfg->napi_event; - - init_timer(&tp->timer); - tp->timer.data = (unsigned long) dev; - tp->timer.function = rtl8101_phy_timer; - - spin_lock_init(&tp->lock); - - rc = register_netdev(dev); - if (rc < 0) - goto err_out_msi_5; - - pci_set_drvdata(pdev, dev); - - if (netif_msg_probe(tp)) { - u32 xid = RTL_R32(TxConfig) & 0x7cf0f8ff; - - printk(KERN_INFO "%s: %s at 0x%lx, " - "%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x, " - "XID %08x IRQ %d\n", - dev->name, - rtl_chip_info[tp->chipset].name, - dev->base_addr, - dev->dev_addr[0], dev->dev_addr[1], - dev->dev_addr[2], dev->dev_addr[3], - dev->dev_addr[4], dev->dev_addr[5], xid, dev->irq); - } - - rtl8101_init_phy(dev, tp); - -out: - return rc; - -err_out_msi_5: - rtl_disable_msi(pdev, tp); - iounmap(ioaddr); -err_out_free_res_4: - pci_release_regions(pdev); -err_out_mwi_3: - pci_clear_mwi(pdev); -err_out_disable_2: - pci_disable_device(pdev); -err_out_free_dev_1: - free_netdev(dev); - goto out; -} - -static void __devexit rtl8101_remove_one(struct pci_dev *pdev) -{ - struct net_device *dev = pci_get_drvdata(pdev); - struct rtl8101_private *tp = netdev_priv(dev); - - flush_scheduled_work(); - - unregister_netdev(dev); - rtl_disable_msi(pdev, tp); - rtl8101_release_board(pdev, dev, tp->mmio_addr); - pci_set_drvdata(pdev, NULL); -} - -static void rtl8101_set_rxbufsize(struct rtl8101_private *tp, - struct net_device *dev) -{ - unsigned int mtu = dev->mtu; - - tp->rx_buf_sz = (mtu > RX_BUF_SIZE) ? mtu + ETH_HLEN + 8 : RX_BUF_SIZE; -} - -static int rtl8101_open(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - struct pci_dev *pdev = tp->pci_dev; - int retval = -ENOMEM; - - - rtl8101_set_rxbufsize(tp, dev); - - /* - * Rx and Tx desscriptors needs 256 bytes alignment. - * pci_alloc_consistent provides more. - */ - tp->TxDescArray = pci_alloc_consistent(pdev, R8101_TX_RING_BYTES, - &tp->TxPhyAddr); - if (!tp->TxDescArray) - goto out; - - tp->RxDescArray = pci_alloc_consistent(pdev, R8101_RX_RING_BYTES, - &tp->RxPhyAddr); - if (!tp->RxDescArray) - goto err_free_tx_0; - - retval = rtl8101_init_ring(dev); - if (retval < 0) - goto err_free_rx_1; - - INIT_DELAYED_WORK(&tp->task, NULL); - - smp_mb(); - - retval = request_irq(dev->irq, rtl8101_interrupt, - (tp->features & RTL_FEATURE_MSI) ? 0 : IRQF_SHARED, - dev->name, dev); - if (retval < 0) - goto err_release_ring_2; - - napi_enable(&tp->napi); - - rtl_hw_start(dev); - - rtl8101_request_timer(dev); - - rtl8101_check_link_status(dev, tp, tp->mmio_addr); -out: - return retval; - -err_release_ring_2: - rtl8101_rx_clear(tp); -err_free_rx_1: - pci_free_consistent(pdev, R8101_RX_RING_BYTES, tp->RxDescArray, - tp->RxPhyAddr); -err_free_tx_0: - pci_free_consistent(pdev, R8101_TX_RING_BYTES, tp->TxDescArray, - tp->TxPhyAddr); - goto out; -} - -static void rtl8101_hw_reset(void __iomem *ioaddr) -{ - /* Disable interrupts */ - rtl8101_irq_mask_and_ack(ioaddr); - - /* Reset the chipset */ - RTL_W8(ChipCmd, CmdReset); - - /* PCI commit */ - RTL_R8(ChipCmd); -} - -static void rtl_set_rx_tx_config_registers(struct rtl8101_private *tp) -{ - void __iomem *ioaddr = tp->mmio_addr; - u32 cfg = rtl8101_rx_config; - - cfg |= (RTL_R32(RxConfig) & rtl_chip_info[tp->chipset].RxConfigMask); - RTL_W32(RxConfig, cfg); - - /* Set DMA burst size and Interframe Gap Time */ - RTL_W32(TxConfig, (TX_DMA_BURST << TxDMAShift) | - (InterFrameGap << TxInterFrameGapShift)); -} - -static void rtl_hw_start(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - unsigned int i; - - /* Soft reset the chip. */ - RTL_W8(ChipCmd, CmdReset); - - /* Check that the chip has finished the reset. */ - for (i = 0; i < 100; i++) { - if ((RTL_R8(ChipCmd) & CmdReset) == 0) - break; - msleep_interruptible(1); - } - - tp->hw_start(dev); - - netif_start_queue(dev); -} - - -static void rtl_set_rx_tx_desc_registers(struct rtl8101_private *tp, - void __iomem *ioaddr) -{ - /* - * Magic spell: some iop3xx ARM board needs the TxDescAddrHigh - * register to be written before TxDescAddrLow to work. - * Switching from MMIO to I/O access fixes the issue as well. - */ - RTL_W32(TxDescStartAddrHigh, ((u64) tp->TxPhyAddr) >> 32); - RTL_W32(TxDescStartAddrLow, ((u64) tp->TxPhyAddr) & DMA_32BIT_MASK); - RTL_W32(RxDescAddrHigh, ((u64) tp->RxPhyAddr) >> 32); - RTL_W32(RxDescAddrLow, ((u64) tp->RxPhyAddr) & DMA_32BIT_MASK); -} - -static u16 rtl_rw_cpluscmd(void __iomem *ioaddr) -{ - u16 cmd; - - cmd = RTL_R16(CPlusCmd); - RTL_W16(CPlusCmd, cmd); - return cmd; -} - -static void rtl_set_rx_max_size(void __iomem *ioaddr, unsigned int rx_buf_sz) -{ - /* Low hurts. Let's disable the filtering. */ - RTL_W16(RxMaxSize, rx_buf_sz); -} - -static void rtl8101_set_magic_reg(void __iomem *ioaddr, unsigned mac_version) -{ - struct { - u32 mac_version; - u32 clk; - u32 val; - } cfg2_info [] = { - { RTL_GIGA_MAC_VER_05, PCI_Clock_33MHz, 0x000fff00 }, // 8110SCd - { RTL_GIGA_MAC_VER_05, PCI_Clock_66MHz, 0x000fffff }, - { RTL_GIGA_MAC_VER_06, PCI_Clock_33MHz, 0x00ffff00 }, // 8110SCe - { RTL_GIGA_MAC_VER_06, PCI_Clock_66MHz, 0x00ffffff } - }, *p = cfg2_info; - unsigned int i; - u32 clk; - - clk = RTL_R8(Config2) & PCI_Clock_66MHz; - for (i = 0; i < ARRAY_SIZE(cfg2_info); i++, p++) { - if ((p->mac_version == mac_version) && (p->clk == clk)) { - RTL_W32(0x7c, p->val); - break; - } - } -} - -static void rtl_hw_start_8169(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - struct pci_dev *pdev = tp->pci_dev; - - if (tp->mac_version == RTL_GIGA_MAC_VER_05) { - RTL_W16(CPlusCmd, RTL_R16(CPlusCmd) | PCIMulRW); - pci_write_config_byte(pdev, PCI_CACHE_LINE_SIZE, 0x08); - } - - RTL_W8(Cfg9346, Cfg9346_Unlock); - if ((tp->mac_version == RTL_GIGA_MAC_VER_01) || - (tp->mac_version == RTL_GIGA_MAC_VER_02) || - (tp->mac_version == RTL_GIGA_MAC_VER_03) || - (tp->mac_version == RTL_GIGA_MAC_VER_04)) - RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); - - RTL_W8(EarlyTxThres, EarlyTxThld); - - rtl_set_rx_max_size(ioaddr, tp->rx_buf_sz); - - if ((tp->mac_version == RTL_GIGA_MAC_VER_01) || - (tp->mac_version == RTL_GIGA_MAC_VER_02) || - (tp->mac_version == RTL_GIGA_MAC_VER_03) || - (tp->mac_version == RTL_GIGA_MAC_VER_04)) - rtl_set_rx_tx_config_registers(tp); - - tp->cp_cmd |= rtl_rw_cpluscmd(ioaddr) | PCIMulRW; - - if ((tp->mac_version == RTL_GIGA_MAC_VER_02) || - (tp->mac_version == RTL_GIGA_MAC_VER_03)) { - dprintk("Set MAC Reg C+CR Offset 0xE0. " - "Bit-3 and bit-14 MUST be 1\n"); - tp->cp_cmd |= (1 << 14); - } - - RTL_W16(CPlusCmd, tp->cp_cmd); - - rtl8101_set_magic_reg(ioaddr, tp->mac_version); - - /* - * Undocumented corner. Supposedly: - * (TxTimer << 12) | (TxPackets << 8) | (RxTimer << 4) | RxPackets - */ - RTL_W16(IntrMitigate, 0x0000); - - rtl_set_rx_tx_desc_registers(tp, ioaddr); - - if ((tp->mac_version != RTL_GIGA_MAC_VER_01) && - (tp->mac_version != RTL_GIGA_MAC_VER_02) && - (tp->mac_version != RTL_GIGA_MAC_VER_03) && - (tp->mac_version != RTL_GIGA_MAC_VER_04)) { - RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); - rtl_set_rx_tx_config_registers(tp); - } - - RTL_W8(Cfg9346, Cfg9346_Lock); - - /* Initially a 10 us delay. Turned it into a PCI commit. - FR */ - RTL_R8(IntrMask); - - RTL_W32(RxMissed, 0); - - rtl_set_rx_mode(dev); - - /* no early-rx interrupts */ - RTL_W16(MultiIntr, RTL_R16(MultiIntr) & 0xF000); - - /* Enable all known interrupts by setting the interrupt mask. */ - RTL_W16(IntrMask, tp->intr_event); -} - -static void rtl_tx_performance_tweak(struct pci_dev *pdev, u16 force) -{ - struct net_device *dev = pci_get_drvdata(pdev); - struct rtl8101_private *tp = netdev_priv(dev); - int cap = tp->pcie_cap; - - if (cap) { - u16 ctl; - - pci_read_config_word(pdev, cap + PCI_EXP_DEVCTL, &ctl); - ctl = (ctl & ~PCI_EXP_DEVCTL_READRQ) | force; - pci_write_config_word(pdev, cap + PCI_EXP_DEVCTL, ctl); - } -} - -static void rtl_csi_access_enable(void __iomem *ioaddr) -{ - u32 csi; - - csi = rtl_csi_read(ioaddr, 0x070c) & 0x00ffffff; - rtl_csi_write(ioaddr, 0x070c, csi | 0x27000000); -} - -struct ephy_info { - unsigned int offset; - u16 mask; - u16 bits; -}; - -static void rtl_ephy_init(void __iomem *ioaddr, struct ephy_info *e, int len) -{ - u16 w; - - while (len-- > 0) { - w = (rtl_ephy_read(ioaddr, e->offset) & ~e->mask) | e->bits; - rtl_ephy_write(ioaddr, e->offset, w); - e++; - } -} - -static void rtl_hw_start_8168(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - struct pci_dev *pdev = tp->pci_dev; - - RTL_W8(Cfg9346, Cfg9346_Unlock); - - RTL_W8(EarlyTxThres, EarlyTxThld); - - rtl_set_rx_max_size(ioaddr, tp->rx_buf_sz); - - rtl_set_rx_tx_config_registers(tp); - - tp->cp_cmd |= RTL_R16(CPlusCmd) | PktCntrDisable | INTT_1; - - RTL_W16(CPlusCmd, tp->cp_cmd); - - rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); - - RTL_W16(IntrMitigate, 0x5151); - - /* Work around for RxFIFO overflow. */ - if (tp->mac_version == RTL_GIGA_MAC_VER_11) { - tp->intr_event |= RxFIFOOver | PCSTimeout; - tp->intr_event &= ~RxOverflow; - } - - rtl_set_rx_tx_desc_registers(tp, ioaddr); - - RTL_W8(Cfg9346, Cfg9346_Lock); - - RTL_R8(IntrMask); - - rtl_set_rx_mode(dev); - - RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); - - RTL_W16(MultiIntr, RTL_R16(MultiIntr) & 0xF000); - - RTL_W16(IntrMask, tp->intr_event); -} - -#define R810X_CPCMD_QUIRK_MASK (\ - EnableBist | \ - Mac_dbgo_oe | \ - Force_half_dup | \ - Force_half_dup | \ - Force_txflow_en | \ - Cxpl_dbg_sel | \ - ASF | \ - PktCntrDisable | \ - PCIDAC | \ - PCIMulRW) - -static void rtl_hw_start_8102e_1(void __iomem *ioaddr, struct pci_dev *pdev) -{ - static struct ephy_info e_info_8102e_1[] = { - { 0x01, 0, 0x6e65 }, - { 0x02, 0, 0x091f }, - { 0x03, 0, 0xc2f9 }, - { 0x06, 0, 0xafb5 }, - { 0x07, 0, 0x0e00 }, - { 0x19, 0, 0xec80 }, - { 0x01, 0, 0x2e65 }, - { 0x01, 0, 0x6e65 } - }; - u8 cfg1; - - rtl_csi_access_enable(ioaddr); - - RTL_W8(DBG_REG, FIX_NAK_1); - - rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); - - RTL_W8(Config1, - LEDS1 | LEDS0 | Speed_down | MEMMAP | IOMAP | VPD | PMEnable); - RTL_W8(Config3, RTL_R8(Config3) & ~Beacon_en); - - cfg1 = RTL_R8(Config1); - if ((cfg1 & LEDS0) && (cfg1 & LEDS1)) - RTL_W8(Config1, cfg1 & ~LEDS0); - - RTL_W16(CPlusCmd, RTL_R16(CPlusCmd) & ~R810X_CPCMD_QUIRK_MASK); - - rtl_ephy_init(ioaddr, e_info_8102e_1, ARRAY_SIZE(e_info_8102e_1)); -} - -static void rtl_hw_start_8102e_2(void __iomem *ioaddr, struct pci_dev *pdev) -{ - rtl_csi_access_enable(ioaddr); - - rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); - - RTL_W8(Config1, MEMMAP | IOMAP | VPD | PMEnable); - RTL_W8(Config3, RTL_R8(Config3) & ~Beacon_en); - - RTL_W16(CPlusCmd, RTL_R16(CPlusCmd) & ~R810X_CPCMD_QUIRK_MASK); -} - -static void rtl_hw_start_8102e_3(void __iomem *ioaddr, struct pci_dev *pdev) -{ - rtl_hw_start_8102e_2(ioaddr, pdev); - - rtl_ephy_write(ioaddr, 0x03, 0xc2f9); -} - -static void rtl_hw_start_8101(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - struct pci_dev *pdev = tp->pci_dev; - - if ((tp->mac_version == RTL_GIGA_MAC_VER_13) || - (tp->mac_version == RTL_GIGA_MAC_VER_16)) { - int cap = tp->pcie_cap; - - if (cap) { - pci_write_config_word(pdev, cap + PCI_EXP_DEVCTL, - PCI_EXP_DEVCTL_NOSNOOP_EN); - } - } - - switch (tp->mac_version) { - case RTL_GIGA_MAC_VER_07: - rtl_hw_start_8102e_1(ioaddr, pdev); - break; - - case RTL_GIGA_MAC_VER_08: - rtl_hw_start_8102e_3(ioaddr, pdev); - break; - - case RTL_GIGA_MAC_VER_09: - rtl_hw_start_8102e_2(ioaddr, pdev); - break; - } - - RTL_W8(Cfg9346, Cfg9346_Unlock); - - RTL_W8(EarlyTxThres, EarlyTxThld); - - rtl_set_rx_max_size(ioaddr, tp->rx_buf_sz); - - tp->cp_cmd |= rtl_rw_cpluscmd(ioaddr) | PCIMulRW; - - RTL_W16(CPlusCmd, tp->cp_cmd); - - RTL_W16(IntrMitigate, 0x0000); - - rtl_set_rx_tx_desc_registers(tp, ioaddr); - - RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); - rtl_set_rx_tx_config_registers(tp); - - RTL_W8(Cfg9346, Cfg9346_Lock); - - RTL_R8(IntrMask); - - rtl_set_rx_mode(dev); - - RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); - - RTL_W16(MultiIntr, RTL_R16(MultiIntr) & 0xf000); - - RTL_W16(IntrMask, tp->intr_event); -} - -static int rtl8101_change_mtu(struct net_device *dev, int new_mtu) -{ - struct rtl8101_private *tp = netdev_priv(dev); - int ret = 0; - - if (new_mtu < ETH_ZLEN || new_mtu > SafeMtu) - return -EINVAL; - - dev->mtu = new_mtu; - - if (!netif_running(dev)) - goto out; - - rtl8101_down(dev); - - rtl8101_set_rxbufsize(tp, dev); - - ret = rtl8101_init_ring(dev); - if (ret < 0) - goto out; - - napi_enable(&tp->napi); - - rtl_hw_start(dev); - - rtl8101_request_timer(dev); - -out: - return ret; -} - -static inline void rtl8101_make_unusable_by_asic(struct RxDesc *desc) -{ - desc->addr = cpu_to_le64(0x0badbadbadbadbadull); - desc->opts1 &= ~cpu_to_le32(DescOwn | RsvdMask); -} - -static void rtl8101_free_rx_skb(struct rtl8101_private *tp, - struct sk_buff **sk_buff, struct RxDesc *desc) -{ - struct pci_dev *pdev = tp->pci_dev; - - pci_unmap_single(pdev, le64_to_cpu(desc->addr), tp->rx_buf_sz, - PCI_DMA_FROMDEVICE); - dev_kfree_skb(*sk_buff); - *sk_buff = NULL; - rtl8101_make_unusable_by_asic(desc); -} - -static inline void rtl8101_mark_to_asic(struct RxDesc *desc, u32 rx_buf_sz) -{ - u32 eor = le32_to_cpu(desc->opts1) & RingEnd; - - desc->opts1 = cpu_to_le32(DescOwn | eor | rx_buf_sz); -} - -static inline void rtl8101_map_to_asic(struct RxDesc *desc, dma_addr_t mapping, - u32 rx_buf_sz) -{ - desc->addr = cpu_to_le64(mapping); - wmb(); - rtl8101_mark_to_asic(desc, rx_buf_sz); -} - -static struct sk_buff *rtl8101_alloc_rx_skb(struct pci_dev *pdev, - struct net_device *dev, - struct RxDesc *desc, int rx_buf_sz, - unsigned int align) -{ - struct sk_buff *skb; - dma_addr_t mapping; - unsigned int pad; - - pad = align ? align : NET_IP_ALIGN; - - skb = netdev_alloc_skb(dev, rx_buf_sz + pad); - if (!skb) - goto err_out; - - skb_reserve(skb, align ? ((pad - 1) & (unsigned long)skb->data) : pad); - - mapping = pci_map_single(pdev, skb->data, rx_buf_sz, - PCI_DMA_FROMDEVICE); - - rtl8101_map_to_asic(desc, mapping, rx_buf_sz); -out: - return skb; - -err_out: - rtl8101_make_unusable_by_asic(desc); - goto out; -} - -static void rtl8101_rx_clear(struct rtl8101_private *tp) -{ - unsigned int i; - - for (i = 0; i < NUM_RX_DESC; i++) { - if (tp->Rx_skbuff[i]) { - rtl8101_free_rx_skb(tp, tp->Rx_skbuff + i, - tp->RxDescArray + i); - } - } -} - -static u32 rtl8101_rx_fill(struct rtl8101_private *tp, struct net_device *dev, - u32 start, u32 end) -{ - u32 cur; - - for (cur = start; end - cur != 0; cur++) { - struct sk_buff *skb; - unsigned int i = cur % NUM_RX_DESC; - - WARN_ON((s32)(end - cur) < 0); - - if (tp->Rx_skbuff[i]) - continue; - - skb = rtl8101_alloc_rx_skb(tp->pci_dev, dev, - tp->RxDescArray + i, - tp->rx_buf_sz, tp->align); - if (!skb) - break; - - tp->Rx_skbuff[i] = skb; - } - return cur - start; -} - -static inline void rtl8101_mark_as_last_descriptor(struct RxDesc *desc) -{ - desc->opts1 |= cpu_to_le32(RingEnd); -} - -static void rtl8101_init_ring_indexes(struct rtl8101_private *tp) -{ - tp->dirty_tx = tp->dirty_rx = tp->cur_tx = tp->cur_rx = 0; -} - -static int rtl8101_init_ring(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - rtl8101_init_ring_indexes(tp); - - memset(tp->tx_skb, 0x0, NUM_TX_DESC * sizeof(struct ring_info)); - memset(tp->Rx_skbuff, 0x0, NUM_RX_DESC * sizeof(struct sk_buff *)); - - if (rtl8101_rx_fill(tp, dev, 0, NUM_RX_DESC) != NUM_RX_DESC) - goto err_out; - - rtl8101_mark_as_last_descriptor(tp->RxDescArray + NUM_RX_DESC - 1); - - return 0; - -err_out: - rtl8101_rx_clear(tp); - return -ENOMEM; -} - -static void rtl8101_unmap_tx_skb(struct pci_dev *pdev, struct ring_info *tx_skb, - struct TxDesc *desc) -{ - unsigned int len = tx_skb->len; - - pci_unmap_single(pdev, le64_to_cpu(desc->addr), len, PCI_DMA_TODEVICE); - desc->opts1 = 0x00; - desc->opts2 = 0x00; - desc->addr = 0x00; - tx_skb->len = 0; -} - -static void rtl8101_tx_clear(struct rtl8101_private *tp) -{ - unsigned int i; - - for (i = tp->dirty_tx; i < tp->dirty_tx + NUM_TX_DESC; i++) { - unsigned int entry = i % NUM_TX_DESC; - struct ring_info *tx_skb = tp->tx_skb + entry; - unsigned int len = tx_skb->len; - - if (len) { - struct sk_buff *skb = tx_skb->skb; - - rtl8101_unmap_tx_skb(tp->pci_dev, tx_skb, - tp->TxDescArray + entry); - if (skb) { - dev_kfree_skb(skb); - tx_skb->skb = NULL; - } - tp->dev->stats.tx_dropped++; - } - } - tp->cur_tx = tp->dirty_tx = 0; -} - -static void rtl8101_schedule_work(struct net_device *dev, work_func_t task) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - PREPARE_DELAYED_WORK(&tp->task, task); - schedule_delayed_work(&tp->task, 4); -} - -static void rtl8101_wait_for_quiescence(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - - synchronize_irq(dev->irq); - - /* Wait for any pending NAPI task to complete */ - napi_disable(&tp->napi); - - rtl8101_irq_mask_and_ack(ioaddr); - - tp->intr_mask = 0xffff; - RTL_W16(IntrMask, tp->intr_event); - napi_enable(&tp->napi); -} - -static void rtl8101_reinit_task(struct work_struct *work) -{ - struct rtl8101_private *tp = - container_of(work, struct rtl8101_private, task.work); - struct net_device *dev = tp->dev; - int ret; - - rtnl_lock(); - - if (!netif_running(dev)) - goto out_unlock; - - rtl8101_wait_for_quiescence(dev); - rtl8101_close(dev); - - ret = rtl8101_open(dev); - if (unlikely(ret < 0)) { - if (net_ratelimit() && netif_msg_drv(tp)) { - printk(KERN_ERR PFX "%s: reinit failure (status = %d)." - " Rescheduling.\n", dev->name, ret); - } - rtl8101_schedule_work(dev, rtl8101_reinit_task); - } - -out_unlock: - rtnl_unlock(); -} - -static void rtl8101_reset_task(struct work_struct *work) -{ - struct rtl8101_private *tp = - container_of(work, struct rtl8101_private, task.work); - struct net_device *dev = tp->dev; - - rtnl_lock(); - - if (!netif_running(dev)) - goto out_unlock; - - rtl8101_wait_for_quiescence(dev); - - rtl8101_rx_interrupt(dev, tp, tp->mmio_addr, ~(u32)0); - rtl8101_tx_clear(tp); - - if (tp->dirty_rx == tp->cur_rx) { - rtl8101_init_ring_indexes(tp); - rtl_hw_start(dev); - netif_wake_queue(dev); - rtl8101_check_link_status(dev, tp, tp->mmio_addr); - } else { - if (net_ratelimit() && netif_msg_intr(tp)) { - printk(KERN_EMERG PFX "%s: Rx buffers shortage\n", - dev->name); - } - rtl8101_schedule_work(dev, rtl8101_reset_task); - } - -out_unlock: - rtnl_unlock(); -} - -static void rtl8101_tx_timeout(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - rtl8101_hw_reset(tp->mmio_addr); - - /* Let's wait a bit while any (async) irq lands on */ - rtl8101_schedule_work(dev, rtl8101_reset_task); -} - -static int rtl8101_xmit_frags(struct rtl8101_private *tp, struct sk_buff *skb, - u32 opts1) -{ - struct skb_shared_info *info = skb_shinfo(skb); - unsigned int cur_frag, entry; - struct TxDesc * uninitialized_var(txd); - - entry = tp->cur_tx; - for (cur_frag = 0; cur_frag < info->nr_frags; cur_frag++) { - skb_frag_t *frag = info->frags + cur_frag; - dma_addr_t mapping; - u32 status, len; - void *addr; - - entry = (entry + 1) % NUM_TX_DESC; - - txd = tp->TxDescArray + entry; - len = frag->size; - addr = ((void *) page_address(frag->page)) + frag->page_offset; - mapping = pci_map_single(tp->pci_dev, addr, len, PCI_DMA_TODEVICE); - - /* anti gcc 2.95.3 bugware (sic) */ - status = opts1 | len | (RingEnd * !((entry + 1) % NUM_TX_DESC)); - - txd->opts1 = cpu_to_le32(status); - txd->addr = cpu_to_le64(mapping); - - tp->tx_skb[entry].len = len; - } - - if (cur_frag) { - tp->tx_skb[entry].skb = skb; - txd->opts1 |= cpu_to_le32(LastFrag); - } - - return cur_frag; -} - -static inline u32 rtl8101_tso_csum(struct sk_buff *skb, struct net_device *dev) -{ - if (dev->features & NETIF_F_TSO) { - u32 mss = skb_shinfo(skb)->gso_size; - - if (mss) - return LargeSend | ((mss & MSSMask) << MSSShift); - } - if (skb->ip_summed == CHECKSUM_PARTIAL) { - const struct iphdr *ip = ip_hdr(skb); - - if (ip->protocol == IPPROTO_TCP) - return IPCS | TCPCS; - else if (ip->protocol == IPPROTO_UDP) - return IPCS | UDPCS; - WARN_ON(1); /* we need a WARN() */ - } - return 0; -} - -static int rtl8101_start_xmit(struct sk_buff *skb, struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - unsigned int frags, entry = tp->cur_tx % NUM_TX_DESC; - struct TxDesc *txd = tp->TxDescArray + entry; - void __iomem *ioaddr = tp->mmio_addr; - dma_addr_t mapping; - u32 status, len; - u32 opts1; - int ret = NETDEV_TX_OK; - - if (unlikely(TX_BUFFS_AVAIL(tp) < skb_shinfo(skb)->nr_frags)) { - if (netif_msg_drv(tp)) { - printk(KERN_ERR - "%s: BUG! Tx Ring full when queue awake!\n", - dev->name); - } - goto err_stop; - } - - if (unlikely(le32_to_cpu(txd->opts1) & DescOwn)) - goto err_stop; - - opts1 = DescOwn | rtl8101_tso_csum(skb, dev); - - frags = rtl8101_xmit_frags(tp, skb, opts1); - if (frags) { - len = skb_headlen(skb); - opts1 |= FirstFrag; - } else { - len = skb->len; - opts1 |= FirstFrag | LastFrag; - tp->tx_skb[entry].skb = skb; - } - - mapping = pci_map_single(tp->pci_dev, skb->data, len, PCI_DMA_TODEVICE); - - tp->tx_skb[entry].len = len; - txd->addr = cpu_to_le64(mapping); - txd->opts2 = cpu_to_le32(rtl8101_tx_vlan_tag(tp, skb)); - - wmb(); - - /* anti gcc 2.95.3 bugware (sic) */ - status = opts1 | len | (RingEnd * !((entry + 1) % NUM_TX_DESC)); - txd->opts1 = cpu_to_le32(status); - - dev->trans_start = jiffies; - - tp->cur_tx += frags + 1; - - smp_wmb(); - - RTL_W8(TxPoll, NPQ); /* set polling bit */ - - if (TX_BUFFS_AVAIL(tp) < MAX_SKB_FRAGS) { - netif_stop_queue(dev); - smp_rmb(); - if (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS) - netif_wake_queue(dev); - } - -out: - return ret; - -err_stop: - netif_stop_queue(dev); - ret = NETDEV_TX_BUSY; - dev->stats.tx_dropped++; - goto out; -} - -static void rtl8101_pcierr_interrupt(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - struct pci_dev *pdev = tp->pci_dev; - void __iomem *ioaddr = tp->mmio_addr; - u16 pci_status, pci_cmd; - - pci_read_config_word(pdev, PCI_COMMAND, &pci_cmd); - pci_read_config_word(pdev, PCI_STATUS, &pci_status); - - if (netif_msg_intr(tp)) { - printk(KERN_ERR - "%s: PCI error (cmd = 0x%04x, status = 0x%04x).\n", - dev->name, pci_cmd, pci_status); - } - - /* - * The recovery sequence below admits a very elaborated explanation: - * - it seems to work; - * - I did not see what else could be done; - * - it makes iop3xx happy. - * - * Feel free to adjust to your needs. - */ - if (pdev->broken_parity_status) - pci_cmd &= ~PCI_COMMAND_PARITY; - else - pci_cmd |= PCI_COMMAND_SERR | PCI_COMMAND_PARITY; - - pci_write_config_word(pdev, PCI_COMMAND, pci_cmd); - - pci_write_config_word(pdev, PCI_STATUS, - pci_status & (PCI_STATUS_DETECTED_PARITY | - PCI_STATUS_SIG_SYSTEM_ERROR | PCI_STATUS_REC_MASTER_ABORT | - PCI_STATUS_REC_TARGET_ABORT | PCI_STATUS_SIG_TARGET_ABORT)); - - /* The infamous DAC f*ckup only happens at boot time */ - if ((tp->cp_cmd & PCIDAC) && !tp->dirty_rx && !tp->cur_rx) { - if (netif_msg_intr(tp)) - printk(KERN_INFO "%s: disabling PCI DAC.\n", dev->name); - tp->cp_cmd &= ~PCIDAC; - RTL_W16(CPlusCmd, tp->cp_cmd); - dev->features &= ~NETIF_F_HIGHDMA; - } - - rtl8101_hw_reset(ioaddr); - - rtl8101_schedule_work(dev, rtl8101_reinit_task); -} - -static void rtl8101_tx_interrupt(struct net_device *dev, - struct rtl8101_private *tp, - void __iomem *ioaddr) -{ - unsigned int dirty_tx, tx_left; - - dirty_tx = tp->dirty_tx; - smp_rmb(); - tx_left = tp->cur_tx - dirty_tx; - - while (tx_left > 0) { - unsigned int entry = dirty_tx % NUM_TX_DESC; - struct ring_info *tx_skb = tp->tx_skb + entry; - u32 len = tx_skb->len; - u32 status; - - rmb(); - status = le32_to_cpu(tp->TxDescArray[entry].opts1); - if (status & DescOwn) - break; - - dev->stats.tx_bytes += len; - dev->stats.tx_packets++; - - rtl8101_unmap_tx_skb(tp->pci_dev, tx_skb, tp->TxDescArray + entry); - - if (status & LastFrag) { - dev_kfree_skb_irq(tx_skb->skb); - tx_skb->skb = NULL; - } - dirty_tx++; - tx_left--; - } - - if (tp->dirty_tx != dirty_tx) { - tp->dirty_tx = dirty_tx; - smp_wmb(); - if (netif_queue_stopped(dev) && - (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) { - netif_wake_queue(dev); - } - /* - * 8168 hack: TxPoll requests are lost when the Tx packets are - * too close. Let's kick an extra TxPoll request when a burst - * of start_xmit activity is detected (if it is not detected, - * it is slow enough). -- FR - */ - smp_rmb(); - if (tp->cur_tx != dirty_tx) - RTL_W8(TxPoll, NPQ); - } -} - -static inline int rtl8101_fragmented_frame(u32 status) -{ - return (status & (FirstFrag | LastFrag)) != (FirstFrag | LastFrag); -} - -static inline void rtl8101_rx_csum(struct sk_buff *skb, struct RxDesc *desc) -{ - u32 opts1 = le32_to_cpu(desc->opts1); - u32 status = opts1 & RxProtoMask; - - if (((status == RxProtoTCP) && !(opts1 & TCPFail)) || - ((status == RxProtoUDP) && !(opts1 & UDPFail)) || - ((status == RxProtoIP) && !(opts1 & IPFail))) - skb->ip_summed = CHECKSUM_UNNECESSARY; - else - skb->ip_summed = CHECKSUM_NONE; -} - -static inline bool rtl8101_try_rx_copy(struct sk_buff **sk_buff, - struct rtl8101_private *tp, int pkt_size, - dma_addr_t addr) -{ - struct sk_buff *skb; - bool done = false; - - if (pkt_size >= rx_copybreak) - goto out; - - skb = netdev_alloc_skb(tp->dev, pkt_size + NET_IP_ALIGN); - if (!skb) - goto out; - - pci_dma_sync_single_for_cpu(tp->pci_dev, addr, pkt_size, - PCI_DMA_FROMDEVICE); - skb_reserve(skb, NET_IP_ALIGN); - skb_copy_from_linear_data(*sk_buff, skb->data, pkt_size); - *sk_buff = skb; - done = true; -out: - return done; -} - -static int rtl8101_rx_interrupt(struct net_device *dev, - struct rtl8101_private *tp, - void __iomem *ioaddr, u32 budget) -{ - unsigned int cur_rx, rx_left; - unsigned int delta, count; - - cur_rx = tp->cur_rx; - rx_left = NUM_RX_DESC + tp->dirty_rx - cur_rx; - rx_left = min(rx_left, budget); - - for (; rx_left > 0; rx_left--, cur_rx++) { - unsigned int entry = cur_rx % NUM_RX_DESC; - struct RxDesc *desc = tp->RxDescArray + entry; - u32 status; - - rmb(); - status = le32_to_cpu(desc->opts1); - - if (status & DescOwn) - break; - if (unlikely(status & RxRES)) { - if (netif_msg_rx_err(tp)) { - printk(KERN_INFO - "%s: Rx ERROR. status = %08x\n", - dev->name, status); - } - dev->stats.rx_errors++; - if (status & (RxRWT | RxRUNT)) - dev->stats.rx_length_errors++; - if (status & RxCRC) - dev->stats.rx_crc_errors++; - if (status & RxFOVF) { - rtl8101_schedule_work(dev, rtl8101_reset_task); - dev->stats.rx_fifo_errors++; - } - rtl8101_mark_to_asic(desc, tp->rx_buf_sz); - } else { - struct sk_buff *skb = tp->Rx_skbuff[entry]; - dma_addr_t addr = le64_to_cpu(desc->addr); - int pkt_size = (status & 0x00001FFF) - 4; - struct pci_dev *pdev = tp->pci_dev; - - /* - * The driver does not support incoming fragmented - * frames. They are seen as a symptom of over-mtu - * sized frames. - */ - if (unlikely(rtl8101_fragmented_frame(status))) { - dev->stats.rx_dropped++; - dev->stats.rx_length_errors++; - rtl8101_mark_to_asic(desc, tp->rx_buf_sz); - continue; - } - - rtl8101_rx_csum(skb, desc); - - if (rtl8101_try_rx_copy(&skb, tp, pkt_size, addr)) { - pci_dma_sync_single_for_device(pdev, addr, - pkt_size, PCI_DMA_FROMDEVICE); - rtl8101_mark_to_asic(desc, tp->rx_buf_sz); - } else { - pci_unmap_single(pdev, addr, tp->rx_buf_sz, - PCI_DMA_FROMDEVICE); - tp->Rx_skbuff[entry] = NULL; - } - - skb_put(skb, pkt_size); - skb->protocol = eth_type_trans(skb, dev); - - if (rtl8101_rx_vlan_skb(tp, desc, skb) < 0) - netif_receive_skb(skb); - - dev->last_rx = jiffies; - dev->stats.rx_bytes += pkt_size; - dev->stats.rx_packets++; - } - - /* Work around for AMD plateform. */ - if ((desc->opts2 & cpu_to_le32(0xfffe000)) && - (tp->mac_version == RTL_GIGA_MAC_VER_05)) { - desc->opts2 = 0; - cur_rx++; - } - } - - count = cur_rx - tp->cur_rx; - tp->cur_rx = cur_rx; - - delta = rtl8101_rx_fill(tp, dev, tp->dirty_rx, tp->cur_rx); - if (!delta && count && netif_msg_intr(tp)) - printk(KERN_INFO "%s: no Rx buffer allocated\n", dev->name); - tp->dirty_rx += delta; - - /* - * FIXME: until there is periodic timer to try and refill the ring, - * a temporary shortage may definitely kill the Rx process. - * - disable the asic to try and avoid an overflow and kick it again - * after refill ? - * - how do others driver handle this condition (Uh oh...). - */ - if ((tp->dirty_rx + NUM_RX_DESC == tp->cur_rx) && netif_msg_intr(tp)) - printk(KERN_EMERG "%s: Rx buffers exhausted\n", dev->name); - - return count; -} - -static irqreturn_t rtl8101_interrupt(int irq, void *dev_instance) -{ - struct net_device *dev = dev_instance; - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - int handled = 0; - int status; - - /* loop handling interrupts until we have no new ones or - * we hit a invalid/hotplug case. - */ - status = RTL_R16(IntrStatus); - while (status && status != 0xffff) { - handled = 1; - - /* Handle all of the error cases first. These will reset - * the chip, so just exit the loop. - */ - if (unlikely(!netif_running(dev))) { - rtl8101_asic_down(ioaddr); - break; - } - - /* Work around for rx fifo overflow */ - if (unlikely(status & RxFIFOOver) && - (tp->mac_version == RTL_GIGA_MAC_VER_11)) { - netif_stop_queue(dev); - rtl8101_tx_timeout(dev); - break; - } - - if (unlikely(status & SYSErr)) { - rtl8101_pcierr_interrupt(dev); - break; - } - - if (status & LinkChg) - rtl8101_check_link_status(dev, tp, ioaddr); - - /* We need to see the lastest version of tp->intr_mask to - * avoid ignoring an MSI interrupt and having to wait for - * another event which may never come. - */ - smp_rmb(); - if (status & tp->intr_mask & tp->napi_event) { - RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event); - tp->intr_mask = ~tp->napi_event; - - if (likely(napi_schedule_prep(&tp->napi))) - __napi_schedule(&tp->napi); - else if (netif_msg_intr(tp)) { - printk(KERN_INFO "%s: interrupt %04x in poll\n", - dev->name, status); - } - } - - /* We only get a new MSI interrupt when all active irq - * sources on the chip have been acknowledged. So, ack - * everything we've seen and check if new sources have become - * active to avoid blocking all interrupts from the chip. - */ - RTL_W16(IntrStatus, - (status & RxFIFOOver) ? (status | RxOverflow) : status); - status = RTL_R16(IntrStatus); - } - - return IRQ_RETVAL(handled); -} - -static int rtl8101_poll(struct napi_struct *napi, int budget) -{ - struct rtl8101_private *tp = container_of(napi, struct rtl8101_private, napi); - struct net_device *dev = tp->dev; - void __iomem *ioaddr = tp->mmio_addr; - int work_done; - - work_done = rtl8101_rx_interrupt(dev, tp, ioaddr, (u32) budget); - rtl8101_tx_interrupt(dev, tp, ioaddr); - - if (work_done < budget) { - netif_rx_complete(dev, napi); - - /* We need for force the visibility of tp->intr_mask - * for other CPUs, as we can loose an MSI interrupt - * and potentially wait for a retransmit timeout if we don't. - * The posted write to IntrMask is safe, as it will - * eventually make it to the chip and we won't loose anything - * until it does. - */ - tp->intr_mask = 0xffff; - smp_wmb(); - RTL_W16(IntrMask, tp->intr_event); - } - - return work_done; -} - -static void rtl8101_rx_missed(struct net_device *dev, void __iomem *ioaddr) -{ - struct rtl8101_private *tp = netdev_priv(dev); - - if (tp->mac_version > RTL_GIGA_MAC_VER_06) - return; - - dev->stats.rx_missed_errors += (RTL_R32(RxMissed) & 0xffffff); - RTL_W32(RxMissed, 0); -} - -static void rtl8101_down(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - unsigned int intrmask; - - rtl8101_delete_timer(dev); - - netif_stop_queue(dev); - - napi_disable(&tp->napi); - -core_down: - spin_lock_irq(&tp->lock); - - rtl8101_asic_down(ioaddr); - - rtl8101_rx_missed(dev, ioaddr); - - spin_unlock_irq(&tp->lock); - - synchronize_irq(dev->irq); - - /* Give a racing hard_start_xmit a few cycles to complete. */ - synchronize_sched(); /* FIXME: should this be synchronize_irq()? */ - - /* - * And now for the 50k$ question: are IRQ disabled or not ? - * - * Two paths lead here: - * 1) dev->close - * -> netif_running() is available to sync the current code and the - * IRQ handler. See rtl8101_interrupt for details. - * 2) dev->change_mtu - * -> rtl8101_poll can not be issued again and re-enable the - * interruptions. Let's simply issue the IRQ down sequence again. - * - * No loop if hotpluged or major error (0xffff). - */ - intrmask = RTL_R16(IntrMask); - if (intrmask && (intrmask != 0xffff)) - goto core_down; - - rtl8101_tx_clear(tp); - - rtl8101_rx_clear(tp); -} - -static int rtl8101_close(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - struct pci_dev *pdev = tp->pci_dev; - - /* update counters before going down */ - rtl8101_update_counters(dev); - - rtl8101_down(dev); - - free_irq(dev->irq, dev); - - pci_free_consistent(pdev, R8101_RX_RING_BYTES, tp->RxDescArray, - tp->RxPhyAddr); - pci_free_consistent(pdev, R8101_TX_RING_BYTES, tp->TxDescArray, - tp->TxPhyAddr); - tp->TxDescArray = NULL; - tp->RxDescArray = NULL; - - return 0; -} - -static void rtl_set_rx_mode(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - unsigned long flags; - u32 mc_filter[2]; /* Multicast hash filter */ - int rx_mode; - u32 tmp = 0; - - if (dev->flags & IFF_PROMISC) { - /* Unconditionally log net taps. */ - if (netif_msg_link(tp)) { - printk(KERN_NOTICE "%s: Promiscuous mode enabled.\n", - dev->name); - } - rx_mode = - AcceptBroadcast | AcceptMulticast | AcceptMyPhys | - AcceptAllPhys; - mc_filter[1] = mc_filter[0] = 0xffffffff; - } else if ((dev->mc_count > multicast_filter_limit) - || (dev->flags & IFF_ALLMULTI)) { - /* Too many to filter perfectly -- accept all multicasts. */ - rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; - mc_filter[1] = mc_filter[0] = 0xffffffff; - } else { - struct dev_mc_list *mclist; - unsigned int i; - - rx_mode = AcceptBroadcast | AcceptMyPhys; - mc_filter[1] = mc_filter[0] = 0; - for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count; - i++, mclist = mclist->next) { - int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26; - mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); - rx_mode |= AcceptMulticast; - } - } - - spin_lock_irqsave(&tp->lock, flags); - - tmp = rtl8101_rx_config | rx_mode | - (RTL_R32(RxConfig) & rtl_chip_info[tp->chipset].RxConfigMask); - - if (tp->mac_version > RTL_GIGA_MAC_VER_06) { - u32 data = mc_filter[0]; - - mc_filter[0] = swab32(mc_filter[1]); - mc_filter[1] = swab32(data); - } - - RTL_W32(MAR0 + 0, mc_filter[0]); - RTL_W32(MAR0 + 4, mc_filter[1]); - - RTL_W32(RxConfig, tmp); - - spin_unlock_irqrestore(&tp->lock, flags); -} - -/** - * rtl8101_get_stats - Get rtl8101 read/write statistics - * @dev: The Ethernet Device to get statistics for - * - * Get TX/RX statistics for rtl8101 - */ -static struct net_device_stats *rtl8101_get_stats(struct net_device *dev) -{ - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - unsigned long flags; - - if (netif_running(dev)) { - spin_lock_irqsave(&tp->lock, flags); - rtl8101_rx_missed(dev, ioaddr); - spin_unlock_irqrestore(&tp->lock, flags); - } - - return &dev->stats; -} - -#ifdef CONFIG_PM - -static int rtl8101_suspend(struct pci_dev *pdev, pm_message_t state) -{ - struct net_device *dev = pci_get_drvdata(pdev); - struct rtl8101_private *tp = netdev_priv(dev); - void __iomem *ioaddr = tp->mmio_addr; - - if (!netif_running(dev)) - goto out_pci_suspend; - - netif_device_detach(dev); - netif_stop_queue(dev); - - spin_lock_irq(&tp->lock); - - rtl8101_asic_down(ioaddr); - - rtl8101_rx_missed(dev, ioaddr); - - spin_unlock_irq(&tp->lock); - -out_pci_suspend: - pci_save_state(pdev); - pci_enable_wake(pdev, pci_choose_state(pdev, state), - (tp->features & RTL_FEATURE_WOL) ? 1 : 0); - pci_set_power_state(pdev, pci_choose_state(pdev, state)); - - return 0; -} - -static int rtl8101_resume(struct pci_dev *pdev) -{ - struct net_device *dev = pci_get_drvdata(pdev); - - pci_set_power_state(pdev, PCI_D0); - pci_restore_state(pdev); - pci_enable_wake(pdev, PCI_D0, 0); - - if (!netif_running(dev)) - goto out; - - netif_device_attach(dev); - - rtl8101_schedule_work(dev, rtl8101_reset_task); -out: - return 0; -} - -#endif /* CONFIG_PM */ - -static struct pci_driver rtl8101_pci_driver = { - .name = MODULENAME, - .id_table = rtl8101_pci_tbl, - .probe = rtl8101_init_one, - .remove = __devexit_p(rtl8101_remove_one), -#ifdef CONFIG_PM - .suspend = rtl8101_suspend, - .resume = rtl8101_resume, -#endif -}; - -static int __init rtl8101_init_module(void) -{ - return pci_register_driver(&rtl8101_pci_driver); -} - -static void __exit rtl8101_cleanup_module(void) -{ - pci_unregister_driver(&rtl8101_pci_driver); -} - -module_init(rtl8101_init_module); -module_exit(rtl8101_cleanup_module); diff --git a/src/scripts/asterisk b/src/scripts/asterisk deleted file mode 100644 index cb6ccbb..0000000 Binary files a/src/scripts/asterisk and /dev/null differ diff --git a/src/scripts/backupiso b/src/scripts/backupiso index 71e7974..c1cc35b 100644 --- a/src/scripts/backupiso +++ b/src/scripts/backupiso @@ -3,7 +3,7 @@ COREVER=`cat /opt/pakfire/db/core/mine` # FIXME: edit this lines before release URL=http://download.ipfire.org/iso/ -ISO=ipfire-2.5.i586-full-core$COREVER.iso +ISO=ipfire-2.7.i586-full-core$COREVER.iso
if [ -z "$1" ]; then echo usage: $0 backup-file diff --git a/src/scripts/vpn-watch b/src/scripts/vpn-watch index 74a4dc5..0c5f62d 100755 --- a/src/scripts/vpn-watch +++ b/src/scripts/vpn-watch @@ -1,6 +1,6 @@ #!/usr/bin/perl ################################################## -##### VPN-Watch.pl Version 0.4 ##### +##### VPN-Watch.pl Version 0.5 ##### ################################################## # # # VPN-Watch is part of the IPFire Firewall # @@ -24,17 +24,22 @@ if ( -e $file ){ }
system("echo $$ > $file"); - +my $round=0; while ( $i == 0){ - if ($debug){logger("We will wait 300 seconds before next action.");} - sleep(300); - - if (open(FILE, "<${General::swroot}/vpn/config")) { - @vpnsettings = <FILE>; + if ($debug){logger("We will wait 60 seconds before next action.");} + sleep(60); + + $round++; + + # Reset roundcounter after 10 min. To do established check. + if ($round > 9) { $round=0 } + + if (open(FILE, "<${General::swroot}/vpn/config")) { @vpnsettings = <FILE>; close(FILE); unless(@vpnsettings) {exit 1;} }
+my $status = `ipsec whack --status`; foreach (@vpnsettings){ my @settings = split(/,/,$_);
@@ -49,20 +54,27 @@ foreach (@vpnsettings){
my $remoteip = `/usr/bin/ping -c 1 $remotehostname 2>/dev/null | head -n1 | awk '{print $3}' | tr -d '()' | tr -d ':'`;chomp($remoteip); if ($remoteip eq ""){next;if ($debug){logger("Unable to resolve $remotehostname.");}} - my $connected= `ipsec whack --status | grep $remoteip`; - my $established= `ipsec whack --status | grep '$settings[2]' | grep 'IPsec SA established'`; + my $ipmatch= `echo "$status" | grep '$remoteip' | grep '$settings[2]'`; + my $established= `echo "$status" | grep '$settings[2]' | grep 'erouted;'`;
- if ( $established eq '' || $connected eq '' ){ - logger("Remote IP for host $remotehostname has changed or no connection is established, restarting connection to $remoteip."); + if ( $ipmatch eq '' ){ + logger("Remote IP for host $remotehostname($remoteip) has changed, restarting ipsec."); system("/usr/local/bin/ipsecctrl S $settings[0]"); - next; + last; #all connections will reloaded + #remove this if ipsecctrl can restart single con again + } + if ( ($round = 0) && ($established eq '')) { + logger("Connection to $remotehostname($remoteip) not erouted, restarting ipsec."); + system("/usr/local/bin/ipsecctrl S $settings[0]"); + last; #all connections will reloaded + #remove this if ipsecctrl can restart single con again + } - if ($debug){logger("All connections may be fine nothing was done.");} } + if ($debug){logger("All connections may be fine nothing was done.");} }
sub logger { my $log = shift; system("logger -t vpnwatch "$log""); } -
hooks/post-receive -- IPFire 2.x development tree