From: iap10@tetris.cl.cam.ac.uk Date: Thu, 25 Mar 2004 12:37:30 +0000 (+0000) Subject: bitkeeper revision 1.825.2.1 (4062d28avHqOBupTrfJcONXWeibf9A) X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~18253^2~23^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3edb6b4a07f3b5e8628accd97e20ace4cf8ceb4a;p=xen.git bitkeeper revision 1.825.2.1 (4062d28avHqOBupTrfJcONXWeibf9A) grand unification of shadow table stuff --- 3edb6b4a07f3b5e8628accd97e20ace4cf8ceb4a diff --cc .rootkeys index e61ecf8776,d28d693e5d..b8b93e6cc9 --- a/.rootkeys +++ b/.rootkeys @@@ -175,9 -157,8 +175,10 @@@ 4051bcecFeq4DE70p4zGO5setf47CA xen/common/physdev.c 4006e659i9j-doVxY7DKOGU4XVin1Q xen/common/rbtree.c 3ddb79bdHqdQpATqC0rmUZNbsb6L6A xen/common/resource.c +40589968dD2D1aejwSOvrROg7fOvGQ xen/common/sched_bvt.c +40589968be_t_n0-w6ggceW7h-sx0w xen/common/sched_rrobin.c 3e397e6619PgAfBbw2XFbXkewvUWgw xen/common/schedule.c + 405b8599xI_PoEr3zZoJ2on-jdn7iw xen/common/shadow.c 3ddb79bdB9RNMnkQnUyZ5C9hhMSQQw xen/common/slab.c 3ddb79bd0gVQYmL2zvuJnldvD0AGxQ xen/common/softirq.c 3e7f358awXBC3Vw-wFRwPw18qL1khg xen/common/string.c @@@ -512,84 -492,84 +513,85 @@@ 3ddb79c4R4iVwqIIeychVQYmIH4FUg xen/include/scsi/scsi_ioctl.h 3ddb79c4yw_mfd4Uikn3v_IOPRpa1Q xen/include/scsi/scsicam.h 3ddb79c4HKPMLvDBP9LxzPi_szVxGA xen/include/scsi/sg.h -3e397e66m2tO3s-J8Jnr7Ws_tGoPTg xen/include/xeno/ac_timer.h -3ddb79c0nTsjSpVK4ZVTI9WwN24xtQ xen/include/xeno/blk.h -3ddb79c0dVhTHLsv6CPTf4baKix4mA xen/include/xeno/blkdev.h -3ddb79c18ePBgitnOs7GiOCFilODVw xen/include/xeno/blkpg.h -3ddb79c1oOjpQbp68MW7yiUpoi-S-w xen/include/xeno/brlock.h -3ddb79c1x7Ie3kifu7dQRx8y7HVyvA xen/include/xeno/byteorder/big_endian.h -3ddb79c1qFXOEX1eD0yXJ_gsGkUt8w xen/include/xeno/byteorder/generic.h -3ddb79c1VbwFALNpgx6uC_iZKFHD-A xen/include/xeno/byteorder/little_endian.h -3ddb79c1VvNRMM35bpdZMekirCXP-A xen/include/xeno/byteorder/pdp_endian.h -3ddb79c116WbJV8bwGZXFFJy_GNNvw xen/include/xeno/byteorder/swab.h -3ddb79c1pwmlw8VXW8aaSKAVGVmjDA xen/include/xeno/byteorder/swabb.h -3ddb79c0c0cX_DZE209-Bb-Rx1v-Aw xen/include/xeno/cache.h -3e9c248aEG_nCngztiFmv5CfayNkcA xen/include/xeno/cdrom.h -3f840f12CkbYSlwMrY2S11Mpyxg7Nw xen/include/xeno/compiler.h -3ddb79c259jh8hE7vre_8NuE7nwNSA xen/include/xeno/config.h -3eb165e0eawr3R-p2ZQtSdLWtLRN_A xen/include/xeno/console.h -3f0c428eIwGr7n9fj4FkBdX2YvA_Rw xen/include/xeno/crc32.h -3ddb79c1V44RD26YqCUm-kqIupM37A xen/include/xeno/ctype.h -3ddb79c05DdHQ0UxX_jKsXdR4QlMCA xen/include/xeno/delay.h -3ddb79c1uaWQZj551j1O0B5z8AnHOg xen/include/xeno/elevator.h -3ddb79c0HIghfBF8zFUdmXhOU8i6hA xen/include/xeno/errno.h -3ddb79c0rMjudDKkJku_mkm0J-BZgw xen/include/xeno/etherdevice.h -3ddb79c0T3X07lFnM9OSE-W5bqIDSQ xen/include/xeno/ethtool.h -3ddb79c1W0lQca8gRV7sN6j3iY4Luw xen/include/xeno/event.h -3ddb79c1J4I_AjNflZL-1c1jOIlSyg xen/include/xeno/genhd.h -3ddb79c1i-chIoeniqgYwMM3EgaR5w xen/include/xeno/hdreg.h -3ddb79c12GuUuaxBKiMuwf-Qvuwpng xen/include/xeno/hdsmart.h -3ddb79c0MM575N4YvMSiw9EqKH4JDA xen/include/xeno/ide.h -3ddb79c1yHLp08JhgPxIMcZ8DwN9hg xen/include/xeno/if.h -3ddb79c1RCWOkWPQRzbYVTX_e-E7CA xen/include/xeno/if_ether.h -3ddb79c2IYah7z7hkzPyOiG8szKkyw xen/include/xeno/if_packet.h -3e4540ccefnCkeqtD_dW_CBOjXUSYw xen/include/xeno/if_vlan.h -3df0af1c-QrOEqpPHq4uL3NZzCeJCg xen/include/xeno/in.h -3ddb79c0GurNF9tDWqQbAwJFH8ugfA xen/include/xeno/init.h -3ddb79c1Vi5VleJAOKHAlY0G2zAsgw xen/include/xeno/interrupt.h -3ddb79c2J6EnruiygRhBCgftzMzTeQ xen/include/xeno/ioctl.h -3ddb79c1nzaWu8NoF4xCCMSFJR4MlA xen/include/xeno/ioport.h -3ddb79c2qAxCOABlkKtD8Txohe-qEw xen/include/xeno/irq.h -3ddb79c2b3qe-6Ann09FqZBF4IrJaQ xen/include/xeno/irq_cpustat.h -3ddb79c11w_O7z7YZJnzuDSxaK5LlA xen/include/xeno/kdev_t.h -3e4540ccPHqIIv2pvnQ1gV8LUnoHIg xen/include/xeno/kernel.h -3e4cd9d8elj_7EgAs9Of56RQ2Yq_4g xen/include/xeno/keyhandler.h -3ddb79c1NfYlOrWNqgZkj9EwtFfJow xen/include/xeno/lib.h -3ddb79c18Ajy7micDGQQfJ0zWgEHtA xen/include/xeno/list.h -3ddb79c0_s2_wgV0cA6tztEaeyy1NA xen/include/xeno/major.h -3ddb79c1fsWuKI2sGlW5bqoG2lPVNA xen/include/xeno/mii.h -3ddb79c1gs2VbLbQlw0dcDUXYIepDA xen/include/xeno/mm.h -3ddb79c13p9iHn1XAp0IS1qvj4yDsg xen/include/xeno/module.h -3ddb79c1ieLZfGSFwfvvSQ2NK1BMSg xen/include/xeno/multiboot.h -3ec92e46saEJq7v1vgEJD3HZSufSBg xen/include/xeno/net_headers.h -3ddb79c0CLfAlJLg1ohdPD-Jjn-jxg xen/include/xeno/netdevice.h -3e4540ccaugeWGdOuphJKj6WFw1jkw xen/include/xeno/notifier.h -3ddb79c2Fg44_PBPVxHSC0gTOMq4Ow xen/include/xeno/pci.h -3ddb79c0MOVXq8qZDQRGb6z64_xAwg xen/include/xeno/pci_ids.h -3e54c38dlSCVdyVM4PKcrSfzLLxWUQ xen/include/xeno/perfc.h -3e54c38de9SUSYSAwxDf_DwkpAnQFA xen/include/xeno/perfc_defn.h -3ddb79c04nQVR3EYM5L4zxDV_MCo1g xen/include/xeno/prefetch.h -4006e65fWMwLqcocgik6wbF0Eeh0Og xen/include/xeno/rbtree.h -3e4540ccU1sgCx8seIMGlahmMfv7yQ xen/include/xeno/reboot.h -3ddb79c0LzqqS0LhAQ50ekgj4oGl7Q xen/include/xeno/sched.h -403a06a7H0hpHcKpAiDe5BPnaXWTlA xen/include/xeno/serial.h +3e397e66m2tO3s-J8Jnr7Ws_tGoPTg xen/include/xen/ac_timer.h +3ddb79c0nTsjSpVK4ZVTI9WwN24xtQ xen/include/xen/blk.h +3ddb79c0dVhTHLsv6CPTf4baKix4mA xen/include/xen/blkdev.h +3ddb79c18ePBgitnOs7GiOCFilODVw xen/include/xen/blkpg.h +3ddb79c1oOjpQbp68MW7yiUpoi-S-w xen/include/xen/brlock.h +3ddb79c1x7Ie3kifu7dQRx8y7HVyvA xen/include/xen/byteorder/big_endian.h +3ddb79c1qFXOEX1eD0yXJ_gsGkUt8w xen/include/xen/byteorder/generic.h +3ddb79c1VbwFALNpgx6uC_iZKFHD-A xen/include/xen/byteorder/little_endian.h +3ddb79c1VvNRMM35bpdZMekirCXP-A xen/include/xen/byteorder/pdp_endian.h +3ddb79c116WbJV8bwGZXFFJy_GNNvw xen/include/xen/byteorder/swab.h +3ddb79c1pwmlw8VXW8aaSKAVGVmjDA xen/include/xen/byteorder/swabb.h +3ddb79c0c0cX_DZE209-Bb-Rx1v-Aw xen/include/xen/cache.h +3e9c248aEG_nCngztiFmv5CfayNkcA xen/include/xen/cdrom.h +3f840f12CkbYSlwMrY2S11Mpyxg7Nw xen/include/xen/compiler.h +3ddb79c259jh8hE7vre_8NuE7nwNSA xen/include/xen/config.h +3eb165e0eawr3R-p2ZQtSdLWtLRN_A xen/include/xen/console.h +3f0c428eIwGr7n9fj4FkBdX2YvA_Rw xen/include/xen/crc32.h +3ddb79c1V44RD26YqCUm-kqIupM37A xen/include/xen/ctype.h +3ddb79c05DdHQ0UxX_jKsXdR4QlMCA xen/include/xen/delay.h +3ddb79c1uaWQZj551j1O0B5z8AnHOg xen/include/xen/elevator.h +3ddb79c0HIghfBF8zFUdmXhOU8i6hA xen/include/xen/errno.h +3ddb79c0rMjudDKkJku_mkm0J-BZgw xen/include/xen/etherdevice.h +3ddb79c0T3X07lFnM9OSE-W5bqIDSQ xen/include/xen/ethtool.h +3ddb79c1W0lQca8gRV7sN6j3iY4Luw xen/include/xen/event.h +3ddb79c1J4I_AjNflZL-1c1jOIlSyg xen/include/xen/genhd.h +3ddb79c1i-chIoeniqgYwMM3EgaR5w xen/include/xen/hdreg.h +3ddb79c12GuUuaxBKiMuwf-Qvuwpng xen/include/xen/hdsmart.h +3ddb79c0MM575N4YvMSiw9EqKH4JDA xen/include/xen/ide.h +3ddb79c1yHLp08JhgPxIMcZ8DwN9hg xen/include/xen/if.h +3ddb79c1RCWOkWPQRzbYVTX_e-E7CA xen/include/xen/if_ether.h +3ddb79c2IYah7z7hkzPyOiG8szKkyw xen/include/xen/if_packet.h +3e4540ccefnCkeqtD_dW_CBOjXUSYw xen/include/xen/if_vlan.h +3df0af1c-QrOEqpPHq4uL3NZzCeJCg xen/include/xen/in.h +3ddb79c0GurNF9tDWqQbAwJFH8ugfA xen/include/xen/init.h +3ddb79c1Vi5VleJAOKHAlY0G2zAsgw xen/include/xen/interrupt.h +3ddb79c2J6EnruiygRhBCgftzMzTeQ xen/include/xen/ioctl.h +3ddb79c1nzaWu8NoF4xCCMSFJR4MlA xen/include/xen/ioport.h +3ddb79c2qAxCOABlkKtD8Txohe-qEw xen/include/xen/irq.h +3ddb79c2b3qe-6Ann09FqZBF4IrJaQ xen/include/xen/irq_cpustat.h +3ddb79c11w_O7z7YZJnzuDSxaK5LlA xen/include/xen/kdev_t.h +3e4540ccPHqIIv2pvnQ1gV8LUnoHIg xen/include/xen/kernel.h +3e4cd9d8elj_7EgAs9Of56RQ2Yq_4g xen/include/xen/keyhandler.h +3ddb79c1NfYlOrWNqgZkj9EwtFfJow xen/include/xen/lib.h +3ddb79c18Ajy7micDGQQfJ0zWgEHtA xen/include/xen/list.h +3ddb79c0_s2_wgV0cA6tztEaeyy1NA xen/include/xen/major.h +3ddb79c1fsWuKI2sGlW5bqoG2lPVNA xen/include/xen/mii.h +3ddb79c1gs2VbLbQlw0dcDUXYIepDA xen/include/xen/mm.h +3ddb79c13p9iHn1XAp0IS1qvj4yDsg xen/include/xen/module.h +3ddb79c1ieLZfGSFwfvvSQ2NK1BMSg xen/include/xen/multiboot.h +3ec92e46saEJq7v1vgEJD3HZSufSBg xen/include/xen/net_headers.h +3ddb79c0CLfAlJLg1ohdPD-Jjn-jxg xen/include/xen/netdevice.h +3e4540ccaugeWGdOuphJKj6WFw1jkw xen/include/xen/notifier.h +3ddb79c2Fg44_PBPVxHSC0gTOMq4Ow xen/include/xen/pci.h +3ddb79c0MOVXq8qZDQRGb6z64_xAwg xen/include/xen/pci_ids.h +3e54c38dlSCVdyVM4PKcrSfzLLxWUQ xen/include/xen/perfc.h +3e54c38de9SUSYSAwxDf_DwkpAnQFA xen/include/xen/perfc_defn.h +3ddb79c04nQVR3EYM5L4zxDV_MCo1g xen/include/xen/prefetch.h +4006e65fWMwLqcocgik6wbF0Eeh0Og xen/include/xen/rbtree.h +3e4540ccU1sgCx8seIMGlahmMfv7yQ xen/include/xen/reboot.h +40589969nPq3DMzv24RDb5LXE9brHw xen/include/xen/sched-if.h +3ddb79c0LzqqS0LhAQ50ekgj4oGl7Q xen/include/xen/sched.h +403a06a7H0hpHcKpAiDe5BPnaXWTlA xen/include/xen/serial.h +3ddb79c0VDeD-Oft5eNfMneTU3D1dQ xen/include/xen/skbuff.h +3ddb79c14dXIhP7C2ahnoD08K90G_w xen/include/xen/slab.h +3ddb79c09xbS-xxfKxuV3JETIhBzmg xen/include/xen/smp.h +3ddb79c1-yIt89RT02wIPp2xDR8YjQ xen/include/xen/socket.h +3ddb79c2V2P9F2xMCzDJ9vbUofSg_Q xen/include/xen/sockios.h +3ddb79c2iIcESrDAB8samy_yAh6olQ xen/include/xen/spinlock.h +3e7f358aMtFMUVvN_Zjg5qvEJIqEBA xen/include/xen/string.h +3ddb79c0BnA20PbgmuMPSGIBljNRQw xen/include/xen/time.h +3ddb79c2HFkXuRxi1CriJtSFmY6Ybw xen/include/xen/timer.h +3ddb79c2_m8lT9jDKse_tePj7zcnNQ xen/include/xen/timex.h +3ddb79c2e2C14HkndNEJlYwXaPrF5A xen/include/xen/tqueue.h +403a3edbG9K5uZjuY19_LORbQGmFbA xen/include/xen/trace.h +3ddb79c1-kVvF8cVa0k3ZHDdBMj01Q xen/include/xen/types.h +3f055a3dwldYR102YcSuBaxIf9t3Jw xen/include/xen/vbd.h +3e8827bdaqPeZAWGVOwswgY9bWSx4g xen/include/xen/version.h +3ddb79c2Ae5KpzhC9LCYG7mP_Vi4Aw xen/include/xen/vif.h + 405b8599BsDsDwKEJLS0XipaiQW3TA xen/include/xeno/shadow.h -3ddb79c0VDeD-Oft5eNfMneTU3D1dQ xen/include/xeno/skbuff.h -3ddb79c14dXIhP7C2ahnoD08K90G_w xen/include/xeno/slab.h -3ddb79c09xbS-xxfKxuV3JETIhBzmg xen/include/xeno/smp.h -3ddb79c1-yIt89RT02wIPp2xDR8YjQ xen/include/xeno/socket.h -3ddb79c2V2P9F2xMCzDJ9vbUofSg_Q xen/include/xeno/sockios.h -3ddb79c2iIcESrDAB8samy_yAh6olQ xen/include/xeno/spinlock.h -3e7f358aMtFMUVvN_Zjg5qvEJIqEBA xen/include/xeno/string.h -3ddb79c0BnA20PbgmuMPSGIBljNRQw xen/include/xeno/time.h -3ddb79c2HFkXuRxi1CriJtSFmY6Ybw xen/include/xeno/timer.h -3ddb79c2_m8lT9jDKse_tePj7zcnNQ xen/include/xeno/timex.h -3ddb79c2e2C14HkndNEJlYwXaPrF5A xen/include/xeno/tqueue.h -403a3edbG9K5uZjuY19_LORbQGmFbA xen/include/xeno/trace.h -3ddb79c1-kVvF8cVa0k3ZHDdBMj01Q xen/include/xeno/types.h -3f055a3dwldYR102YcSuBaxIf9t3Jw xen/include/xeno/vbd.h -3e8827bdaqPeZAWGVOwswgY9bWSx4g xen/include/xeno/version.h -3ddb79c2Ae5KpzhC9LCYG7mP_Vi4Aw xen/include/xeno/vif.h 3ddb79c4YQCQ6r0xNLLu0jfbM7pVmA xen/net/Makefile 3ddb79c4AkfDkTCw0comx4L8wsUOMg xen/net/dev.c 3ddb79c4x1L_soh8b-r_1jQW_37Icw xen/net/dev_mcast.c diff --cc BitKeeper/etc/ignore index 65b199bec3,7a0065247b..33f30c8f3e --- a/BitKeeper/etc/ignore +++ b/BitKeeper/etc/ignore @@@ -1,27 -1,560 +1,567 @@@ - BitKeeper/*/* - PENDING/* ++*.a +*.o ++*.pyc +*.so +*.so.* - *.a - *.pyc + BitKeeper/*/* + PENDING/* ++TAGS + URK +extras/mini-os/h/hypervisor-ifs +tools/*/build/lib*/*.py tools/balloon/balloon + tools/control/.checkstyle + tools/control/.classpath + tools/control/.project + tools/control/build-cmdline/** + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Command.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandDestroy.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandHelp.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandList.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandNew.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandStart.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/CommandStop.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Defaults$Handler.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Defaults.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Domain.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/InetAddressPattern.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Main.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Settings.class + tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/StringPattern.class + tools/control/build-web/** + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Command.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandDestroy.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandHelp.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandList.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandNew.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandStart.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandStop.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Defaults$Handler.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Defaults.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Domain.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/InetAddressPattern.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Main.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Settings.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/StringPattern.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Extent.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Library.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Main.java.orig + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Mode.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Parser.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/Partition.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/PartitionManager.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/RootBean.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/SystemConfigurationBean.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/VirtualBlockDevice.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/VirtualDisk.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/VirtualDiskManager.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/XML.class + tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/xenctl/XMLHelper.class + tools/control/build-xen/WEB-INF/web.xml + tools/control/build-xen/about.jsp + tools/control/build-xen/dom-del.jsp + tools/control/build-xen/dom-delr.jsp + tools/control/build-xen/dom-lis.jsp + tools/control/build-xen/dom-new.jsp + tools/control/build-xen/dom-newr.jsp + tools/control/build-xen/dom-sta.jsp + tools/control/build-xen/dom-star.jsp + tools/control/build-xen/dom-stp.jsp + tools/control/build-xen/dom-stpr.jsp + tools/control/build-xen/dom.jsp + tools/control/build-xen/help.jsp + tools/control/build-xen/img/cambridge.gif + tools/control/build-xen/img/help.gif + tools/control/build-xen/img/home.gif + tools/control/build-xen/img/pixel.gif + tools/control/build-xen/img/search.gif + tools/control/build-xen/img/xeno.gif + tools/control/build-xen/index.jsp + tools/control/build-xen/newdom.jsp + tools/control/build-xen/tmpl/about.tmpl + tools/control/build-xen/tmpl/dom-del.tmpl + tools/control/build-xen/tmpl/dom-delr.tmpl + tools/control/build-xen/tmpl/dom-lis.tmpl + tools/control/build-xen/tmpl/dom-new.tmpl + tools/control/build-xen/tmpl/dom-newr.tmpl + tools/control/build-xen/tmpl/dom-sta.tmpl + tools/control/build-xen/tmpl/dom-star.tmpl + tools/control/build-xen/tmpl/dom-stp.tmpl + tools/control/build-xen/tmpl/dom-stpr.tmpl + tools/control/build-xen/tmpl/dom.tmpl + tools/control/build-xen/tmpl/dommenu.tmpl + tools/control/build-xen/tmpl/help.tmpl + tools/control/build-xen/tmpl/index.tmpl + tools/control/build-xen/tmpl/install.pl + tools/control/build-xen/tmpl/makefile + tools/control/build-xen/tmpl/newdom.tmpl + tools/control/build-xen/tmpl/vd-fv.tmpl + tools/control/build-xen/tmpl/vd-pa.tmpl + tools/control/build-xen/tmpl/vd-par.tmpl + tools/control/build-xen/tmpl/vd-pv.tmpl + tools/control/build-xen/tmpl/vd-vbdc.tmpl + tools/control/build-xen/tmpl/vd-vbdcr.tmpl + tools/control/build-xen/tmpl/vd-vbdd.tmpl + tools/control/build-xen/tmpl/vd-vbdf.tmpl + tools/control/build-xen/tmpl/vd-vbdfr.tmpl + tools/control/build-xen/tmpl/vd-vbdv.tmpl + tools/control/build-xen/tmpl/vd-vdc.tmpl + tools/control/build-xen/tmpl/vd-vdcr.tmpl + tools/control/build-xen/tmpl/vd-vdd.tmpl + tools/control/build-xen/tmpl/vd-vddr.tmpl + tools/control/build-xen/tmpl/vd-vdr.tmpl + tools/control/build-xen/tmpl/vd-vdrr.tmpl + tools/control/build-xen/tmpl/vd-vdv.tmpl + tools/control/build-xen/tmpl/vd.tmpl + tools/control/build-xen/tmpl/vdmenu.tmpl + tools/control/build-xen/tmpl/xenofoot.def + tools/control/build-xen/tmpl/xenohead.def + tools/control/build-xen/tmpl/xenostyle.css + tools/control/build-xen/vd-fv.jsp + tools/control/build-xen/vd-pa.jsp + tools/control/build-xen/vd-par.jsp + tools/control/build-xen/vd-pv.jsp + tools/control/build-xen/vd-vbdc.jsp + tools/control/build-xen/vd-vbdcr.jsp + tools/control/build-xen/vd-vbdd.jsp + tools/control/build-xen/vd-vbdf.jsp + tools/control/build-xen/vd-vbdfr.jsp + tools/control/build-xen/vd-vbdv.jsp + tools/control/build-xen/vd-vdc.jsp + tools/control/build-xen/vd-vdcr.jsp + tools/control/build-xen/vd-vdd.jsp + tools/control/build-xen/vd-vddr.jsp + tools/control/build-xen/vd-vdr.jsp + tools/control/build-xen/vd-vdrr.jsp + tools/control/build-xen/vd-vdv.jsp + tools/control/build-xen/vd.jsp + tools/control/build-xen/xenostyle.css + tools/control/dist-web/** + tools/control/dist/docs/api/allclasses-frame.html + tools/control/dist/docs/api/allclasses-noframe.html + tools/control/dist/docs/api/constant-values.html + tools/control/dist/docs/api/deprecated-list.html + tools/control/dist/docs/api/help-doc.html + tools/control/dist/docs/api/index-all.html + tools/control/dist/docs/api/index.html + tools/control/dist/docs/api/overview-frame.html + tools/control/dist/docs/api/overview-summary.html + tools/control/dist/docs/api/overview-tree.html + tools/control/dist/docs/api/package-list + tools/control/dist/docs/api/packages.html + tools/control/dist/docs/api/stylesheet.css + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Command.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandDestroy.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandHelp.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandList.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandNew.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandStart.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/CommandStop.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Defaults.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Domain.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/InetAddressPattern.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Main.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/Settings.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/StringPattern.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/package-frame.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/package-summary.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/domctl/package-tree.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Extent.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Library.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Mode.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Parser.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/Partition.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/PartitionManager.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/RootBean.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/SystemConfigurationBean.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/VirtualBlockDevice.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/VirtualDisk.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/VirtualDiskManager.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/XML.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/XMLHelper.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/package-frame.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/package-summary.html + tools/control/dist/docs/api/uk/ac/cam/cl/xeno/xenctl/package-tree.html + tools/control/dist/docs/empty_dir + tools/control/dist/xenctl-0.1-dev.war + tools/control/domctl.jar + tools/control/eclipsebin/** + tools/control/web/about.jsp + tools/control/web/dom-del.jsp + tools/control/web/dom-delr.jsp + tools/control/web/dom-lis.jsp + tools/control/web/dom-new.jsp + tools/control/web/dom-newr.jsp + tools/control/web/dom-sta.jsp + tools/control/web/dom-star.jsp + tools/control/web/dom-stp.jsp + tools/control/web/dom-stpr.jsp + tools/control/web/dom.jsp + tools/control/web/help.jsp + tools/control/web/index.jsp + tools/control/web/newdom.jsp ++tools/control/web/pd-g.jsp ++tools/control/web/pd-gr.jsp ++tools/control/web/pd-l.jsp ++tools/control/web/pd-r.jsp ++tools/control/web/pd-rr.jsp ++tools/control/web/pd.jsp + tools/control/web/vd-fv.jsp + tools/control/web/vd-pa.jsp + tools/control/web/vd-par.jsp + tools/control/web/vd-pv.jsp + tools/control/web/vd-vbdc.jsp + tools/control/web/vd-vbdcr.jsp + tools/control/web/vd-vbdd.jsp + tools/control/web/vd-vbdf.jsp + tools/control/web/vd-vbdfr.jsp + tools/control/web/vd-vbdv.jsp + tools/control/web/vd-vdc.jsp + tools/control/web/vd-vdcr.jsp + tools/control/web/vd-vdd.jsp + tools/control/web/vd-vddr.jsp + tools/control/web/vd-vdr.jsp + tools/control/web/vd-vdrr.jsp + tools/control/web/vd-vdv.jsp + tools/control/web/vd.jsp + tools/control/web/xenostyle.css + tools/control/xenctl-cmdline.jar + tools/domain_builder/dom_builder.o + tools/domain_builder/dom_kill.o + tools/domain_builder/domain_builder + tools/domain_builder/kill_domain + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Command.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandDestroy.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandHelp.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandNew.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandStart.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/CommandStop.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Defaults$Handler.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Defaults.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/InetAddressPattern.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Main.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/Settings.class + tools/domctl/build/uk/ac/cam/cl/xeno/domctl/StringPattern.class + tools/domctl/domctl.jar + tools/internal/xi_build + tools/internal/xi_build.o + tools/internal/xi_create + tools/internal/xi_create.o + tools/internal/xi_destroy + tools/internal/xi_destroy.o ++tools/internal/xi_list + tools/internal/xi_phys_grant + tools/internal/xi_phys_grant.c~ + tools/internal/xi_phys_grant.o + tools/internal/xi_phys_probe + tools/internal/xi_phys_probe.c~ + tools/internal/xi_phys_probe.o + tools/internal/xi_phys_revoke + tools/internal/xi_phys_revoke.c~ + tools/internal/xi_phys_revoke.o ++tools/internal/xi_restore_linux ++tools/internal/xi_save_linux ++tools/internal/xi_sched_domain ++tools/internal/xi_sched_global + tools/internal/xi_start + tools/internal/xi_start.o + tools/internal/xi_stop + tools/internal/xi_stop.o ++tools/internal/xi_usage ++tools/internal/xi_vbd_add ++tools/internal/xi_vbd_create ++tools/internal/xi_vbd_info ++tools/internal/xi_vbd_list ++tools/internal/xi_vif_params +tools/misc/miniterm/miniterm - tools/misc/xen_read_console +tools/misc/xen_cpuperf +tools/misc/xen_log ++tools/misc/xen_netwatch ++tools/misc/xen_read_console ++tools/misc/xen_refresh_dev + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Extent.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Library.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Main.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Mode.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Parser.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/Partition.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/PartitionManager.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/VirtualBlockDevice.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/VirtualDisk.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/VirtualDiskManager.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/XML.class + tools/vdmanager/build/uk/ac/cam/cl/xeno/vdmanager/XMLHelper.class + tools/vdmanager/vdmanager.jar ++tools/xc/lib/libxc.a ++tools/xc/lib/libxc.so ++tools/xc/lib/libxc.so.1.3 ++tools/xc/lib/libxc.so.1.3.0 ++tools/xc/lib/libxc_bvtsched.o ++tools/xc/lib/libxc_domain.o ++tools/xc/lib/libxc_linux_build.o ++tools/xc/lib/libxc_linux_restore.o ++tools/xc/lib/libxc_linux_save.o ++tools/xc/lib/libxc_misc.o ++tools/xc/lib/libxc_private.o ++tools/xc/lib/libxc_vbd.o ++tools/xc/lib/libxc_vif.o ++tools/xc/lib/xc_bvtsched.o ++tools/xc/lib/xc_domain.o ++tools/xc/lib/xc_evtchn.o ++tools/xc/lib/xc_linux_build.o ++tools/xc/lib/xc_linux_restore.o ++tools/xc/lib/xc_linux_save.o ++tools/xc/lib/xc_misc.o ++tools/xc/lib/xc_netbsd_build.o ++tools/xc/lib/xc_physdev.o ++tools/xc/lib/xc_private.o ++tools/xc/lib/xc_vbd.o ++tools/xc/lib/xc_vif.o ++tools/xc/py/XenoUtil.pyc ++tools/xc/py/build/lib.linux-i686-2.2/Xc.so ++tools/xc/py/build/lib/XenoUtil.py ++tools/xc/py/build/temp.linux-i686-2.2/Xc.o ++tools/xend/xend ++tools/xend/xend.o ++tools/xend/xend_utils.o +tools/xentrace/xentrace - xen/xen - xen/xen.gz - xen/xen.s + xen-2.4.16/common/domain.c.smh + xen-2.4.16/common/kernel.c.ok-ish + xen-2.4.16/common/kernel.c.old + xen-2.4.16/drivers/block/ll_rw_blk.c.orig + xen-2.4.16/drivers/ide/ide-disk.c.orig + xen-2.4.16/drivers/ide/ide-probe.c.orig + xen-2.4.16/drivers/ide/ide-taskfile.c.orig + xen-2.4.16/drivers/ide/ide.c.orig + xen-2.4.16/drivers/net/e1000/e1000.o + xen-2.4.16/drivers/net/e1000/e1000_ethtool.o + xen-2.4.16/drivers/net/e1000/e1000_hw.o + xen-2.4.16/drivers/net/e1000/e1000_main.o + xen-2.4.16/drivers/net/e1000/e1000_param.o + xen-2.4.16/foo + xen-2.4.16/include/hypervisor-ifs/block.h.orig + xen-2.4.16/include/xeno/blkdev.h.orig + xen-2.4.16/include/xeno/sched.h.orig + xen-2.4.16/size.image ++xen/BLOG + xen/arch/i386/acpitable.o + xen/arch/i386/apic.o + xen/arch/i386/arch.o + xen/arch/i386/boot/boot.o + xen/arch/i386/delay.o + xen/arch/i386/entry.o + xen/arch/i386/extable.o ++xen/arch/i386/flushtlb.o + xen/arch/i386/i387.o + xen/arch/i386/i8259.o + xen/arch/i386/idle0_task.o + xen/arch/i386/io_apic.o + xen/arch/i386/ioremap.o + xen/arch/i386/irq.o + xen/arch/i386/mm.o + xen/arch/i386/mpparse.o ++xen/arch/i386/nmi.o + xen/arch/i386/pci-dma.o + xen/arch/i386/pci-i386.o + xen/arch/i386/pci-irq.o + xen/arch/i386/pci-pc.o ++xen/arch/i386/pdb-stub.o + xen/arch/i386/process.o + xen/arch/i386/rwlock.o + xen/arch/i386/setup.o + xen/arch/i386/smp.o + xen/arch/i386/smpboot.o + xen/arch/i386/time.o + xen/arch/i386/trampoline.o + xen/arch/i386/traps.o + xen/arch/i386/usercopy.o + xen/common/ac_timer.o + xen/common/block.o + xen/common/brlock.o + xen/common/common.o ++xen/common/console.o ++xen/common/debug-linux.o ++xen/common/debug.c~ ++xen/common/debug.o + xen/common/dom0_ops.o + xen/common/dom_mem_ops.o + xen/common/domain.o + xen/common/domain_page.o + xen/common/event.o ++xen/common/event_channel.o + xen/common/kernel.o + xen/common/keyhandler.o + xen/common/lib.o + xen/common/memory.o + xen/common/network.o + xen/common/page_alloc.o + xen/common/perfc.o ++xen/common/physdev.o ++xen/common/rbtree.o + xen/common/resource.o + xen/common/schedule.o ++xen/common/shadow.o + xen/common/slab.o + xen/common/softirq.o + xen/common/string.o + xen/common/timer.o ++xen/common/trace.o + xen/common/vsprintf.o + xen/drivers/block/blkpg.o ++xen/drivers/block/cciss.o ++xen/drivers/block/cciss_scsi.o + xen/drivers/block/driver.o + xen/drivers/block/elevator.o + xen/drivers/block/genhd.o + xen/drivers/block/ll_rw_blk.o + xen/drivers/block/xen_block.c~ + xen/drivers/block/xen_block.o + xen/drivers/block/xen_physdisk.c~ + xen/drivers/block/xen_physdisk.o + xen/drivers/block/xen_segment.o ++xen/drivers/block/xen_vbd.o + xen/drivers/cdrom/cdrom.o + xen/drivers/cdrom/driver.o ++xen/drivers/char/console.o + xen/drivers/char/driver.o ++xen/drivers/char/keyboard.o ++xen/drivers/char/serial.o + xen/drivers/char/xen_kbd.o + xen/drivers/char/xen_serial.o + xen/drivers/ide/driver.o + xen/drivers/ide/ide-cd.o + xen/drivers/ide/ide-disk.o + xen/drivers/ide/ide-dma.o + xen/drivers/ide/ide-features.o + xen/drivers/ide/ide-geometry.o + xen/drivers/ide/ide-pci.o + xen/drivers/ide/ide-probe.o + xen/drivers/ide/ide-taskfile.o + xen/drivers/ide/ide-xeno.o + xen/drivers/ide/ide.o + xen/drivers/ide/piix.o ++xen/drivers/message/fusion/driver.o ++xen/drivers/message/fusion/mptbase.o ++xen/drivers/message/fusion/mptscsih.o + xen/drivers/net/3c59x.o + xen/drivers/net/8139too.o + xen/drivers/net/Space.o + xen/drivers/net/driver.o ++xen/drivers/net/dummy.o + xen/drivers/net/e100/e100.o + xen/drivers/net/e100/e100_config.o + xen/drivers/net/e100/e100_eeprom.o + xen/drivers/net/e100/e100_main.o + xen/drivers/net/e100/e100_phy.o + xen/drivers/net/e100/e100_test.o + xen/drivers/net/e1000/e1000.o + xen/drivers/net/e1000/e1000_ethtool.o + xen/drivers/net/e1000/e1000_hw.o + xen/drivers/net/e1000/e1000_main.o + xen/drivers/net/e1000/e1000_param.o ++xen/drivers/net/e1000/kcompat.o + xen/drivers/net/ne/8390.o + xen/drivers/net/ne/ne.o + xen/drivers/net/ne/ne_drv.o + xen/drivers/net/net_init.o + xen/drivers/net/pcnet32.o + xen/drivers/net/setup.o + xen/drivers/net/tg3.o + xen/drivers/net/tulip/21142.o + xen/drivers/net/tulip/eeprom.o + xen/drivers/net/tulip/interrupt.o + xen/drivers/net/tulip/media.o + xen/drivers/net/tulip/pnic.o + xen/drivers/net/tulip/pnic2.o + xen/drivers/net/tulip/timer.o + xen/drivers/net/tulip/tulip.o + xen/drivers/net/tulip/tulip_core.o + xen/drivers/net/via-rhine.o xen/drivers/pci/classlist.h + xen/drivers/pci/compat.o xen/drivers/pci/devlist.h + xen/drivers/pci/driver.o xen/drivers/pci/gen-devlist + xen/drivers/pci/names.o + xen/drivers/pci/pci.o + xen/drivers/pci/quirks.o + xen/drivers/pci/setup-res.o ++xen/drivers/scsi/BusLogic.o + xen/drivers/scsi/aacraid/aachba.o + xen/drivers/scsi/aacraid/aacraid.o + xen/drivers/scsi/aacraid/commctrl.o + xen/drivers/scsi/aacraid/comminit.o + xen/drivers/scsi/aacraid/commsup.o + xen/drivers/scsi/aacraid/dpcsup.o + xen/drivers/scsi/aacraid/linit.o + xen/drivers/scsi/aacraid/rx.o + xen/drivers/scsi/aacraid/sa.o + xen/drivers/scsi/aic7xxx/aic7770.o + xen/drivers/scsi/aic7xxx/aic7770_osm.o ++xen/drivers/scsi/aic7xxx/aic79xx_core.o ++xen/drivers/scsi/aic7xxx/aic79xx_osm.o ++xen/drivers/scsi/aic7xxx/aic79xx_osm_pci.o ++xen/drivers/scsi/aic7xxx/aic79xx_pci.o ++xen/drivers/scsi/aic7xxx/aic79xx_proc.o + xen/drivers/scsi/aic7xxx/aic7xxx.o + xen/drivers/scsi/aic7xxx/aic7xxx_93cx6.o + xen/drivers/scsi/aic7xxx/aic7xxx_core.o + xen/drivers/scsi/aic7xxx/aic7xxx_osm.o + xen/drivers/scsi/aic7xxx/aic7xxx_osm_pci.o + xen/drivers/scsi/aic7xxx/aic7xxx_pci.o + xen/drivers/scsi/aic7xxx/aic7xxx_proc.o + xen/drivers/scsi/constants.o + xen/drivers/scsi/driver.o + xen/drivers/scsi/hosts.o + xen/drivers/scsi/megaraid.o + xen/drivers/scsi/scsi.o + xen/drivers/scsi/scsi_dma.o + xen/drivers/scsi/scsi_error.o + xen/drivers/scsi/scsi_ioctl.o + xen/drivers/scsi/scsi_lib.o + xen/drivers/scsi/scsi_merge.o ++xen/drivers/scsi/scsi_obsolete.o + xen/drivers/scsi/scsi_proc.o + xen/drivers/scsi/scsi_queue.o + xen/drivers/scsi/scsi_scan.o + xen/drivers/scsi/scsi_syms.o + xen/drivers/scsi/scsicam.o + xen/drivers/scsi/sd.o ++xen/drivers/scsi/sym53c8xx_2/sym53c8xx.o ++xen/drivers/scsi/sym53c8xx_2/sym_fw.o ++xen/drivers/scsi/sym53c8xx_2/sym_glue.o ++xen/drivers/scsi/sym53c8xx_2/sym_hipd.o ++xen/drivers/scsi/sym53c8xx_2/sym_malloc.o ++xen/drivers/scsi/sym53c8xx_2/sym_misc.o ++xen/drivers/scsi/sym53c8xx_2/sym_nvram.o + xen/image + xen/image.dis + xen/image.gz + xen/image.s xen/include/asm +xen/include/hypervisor-ifs/arch + xen/include/hypervisor-ifs/hypervisor-ifs + xen/include/hypervisor-ifs/segment.h~ + xen/include/linux +xen/include/xen/compile.h + xen/include/xeno/compile.h + xen/include/xeno/physdisk.h~ + xen/net/dev.o + xen/net/dev_mcast.o + xen/net/devinit.o + xen/net/eth.o + xen/net/network.o + xen/net/skbuff.o xen/tools/elf-reloc xen/tools/figlet/figlet - TAGS ++xen/xen ++xen/xen.gz ++xen/xen.s + xenolinux-2.4.16-sparse/arch/xeno/drivers/block/Makefile.orig + xenolinux-2.4.16-sparse/arch/xeno/drivers/block/block.c.orig + xenolinux-2.4.16-sparse/scripts/kconfig.tk + xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.c~ + xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_physdisk_proc.c.bak + xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_physdisk_proc.c~ + xenolinux-2.4.21-sparse/include/linux/blk.h~ -tools/control/web/pd-g.jsp -tools/control/web/pd-gr.jsp -tools/control/web/pd-l.jsp -tools/control/web/pd-r.jsp -tools/control/web/pd-rr.jsp -tools/control/web/pd.jsp -tools/internal/xi_list -tools/internal/xi_usage -tools/internal/xi_sched_domain -tools/internal/xi_sched_global -xen/arch/i386/nmi.o -xen/drivers/net/dummy.o -tools/misc/miniterm/miniterm -tools/misc/xen_read_console -extras/mini-os/h/hypervisor-ifs -xen/BLOG -xen/drivers/block/xen_vbd.o -tools/internal/xi_vif_params -tools/misc/xen_cpuperf -tools/misc/xen_log -tools/misc/xen_refresh_dev + xenolinux-2.4.22-sparse/arch/xeno/drivers/block/device -xen/common/debug.c~ -xen/common/debug.o -tools/internal/xi_restore_linux -tools/internal/xi_save_linux -tools/internal/xi_vbd_add -tools/internal/xi_vbd_create -tools/internal/xi_vbd_info -tools/internal/xi_vbd_list -xen/drivers/scsi/BusLogic.o -tools/misc/xen_netwatch -xen/drivers/scsi/scsi_obsolete.o -xen/xen -xen/xen.gz -tools/xc/lib/libxc.a -tools/xc/lib/libxc.so -tools/xc/lib/libxc_bvtsched.o -tools/xc/lib/libxc_domain.o -tools/xc/lib/libxc_linux_build.o -tools/xc/lib/libxc_linux_restore.o -tools/xc/lib/libxc_linux_save.o -tools/xc/lib/libxc_misc.o -tools/xc/lib/libxc_private.o -tools/xc/lib/libxc_vbd.o -tools/xc/lib/libxc_vif.o -tools/xc/py/build/lib.linux-i686-2.2/Xc.so -tools/xc/py/build/lib/XenoUtil.py -tools/xc/py/build/temp.linux-i686-2.2/Xc.o -xen/common/console.o -xen/common/event_channel.o -xen/drivers/scsi/aic7xxx/aic79xx_core.o -xen/drivers/scsi/aic7xxx/aic79xx_osm.o -xen/drivers/scsi/aic7xxx/aic79xx_osm_pci.o -xen/drivers/scsi/aic7xxx/aic79xx_pci.o -xen/drivers/scsi/aic7xxx/aic79xx_proc.o -tools/xc/lib/xc_bvtsched.o -tools/xc/lib/xc_domain.o -tools/xc/lib/xc_linux_build.o -tools/xc/lib/xc_linux_restore.o -tools/xc/lib/xc_linux_save.o -tools/xc/lib/xc_misc.o -tools/xc/lib/xc_private.o -tools/xc/lib/xc_vbd.o -tools/xc/lib/xc_vif.o -xen/xen.s -xen/drivers/message/fusion/driver.o -xen/drivers/message/fusion/mptbase.o -xen/drivers/message/fusion/mptscsih.o -xen/drivers/net/e1000/kcompat.o -xen/drivers/scsi/sym53c8xx_2/sym53c8xx.o -xen/drivers/scsi/sym53c8xx_2/sym_fw.o -xen/drivers/scsi/sym53c8xx_2/sym_glue.o -xen/drivers/scsi/sym53c8xx_2/sym_hipd.o -xen/drivers/scsi/sym53c8xx_2/sym_malloc.o -xen/drivers/scsi/sym53c8xx_2/sym_misc.o -xen/drivers/scsi/sym53c8xx_2/sym_nvram.o -xen/arch/i386/flushtlb.o -xen/common/rbtree.o -xen/drivers/block/cciss.o -xen/drivers/block/cciss_scsi.o -TAGS -tools/xc/lib/xc_netbsd_build.o -xen/arch/i386/pdb-stub.o -xen/common/debug-linux.o -xen/drivers/char/serial.o -tools/xend/xend.o -tools/xentrace/xentrace -tools/xc/lib/xc_evtchn.o -tools/xc/py/XenoUtil.pyc -tools/xend/xend -tools/xc/lib/libxc.so.1.3 -tools/xc/lib/libxc.so.1.3.0 -tools/xc/lib/xc_physdev.o -tools/xend/xend_utils.o -xen/common/physdev.o -xen/common/shadow.o -xen/common/trace.o -xen/drivers/char/console.o -xen/drivers/char/keyboard.o -xen/include/hypervisor-ifs/arch diff --cc xen/arch/i386/domain_page.c index 69c6166111,0000000000..d276979a71 mode 100644,000000..100644 --- a/xen/arch/i386/domain_page.c +++ b/xen/arch/i386/domain_page.c @@@ -1,79 -1,0 +1,81 @@@ +/****************************************************************************** + * domain_page.h + * + * Allow temporary mapping of domain pages. Based on ideas from the + * Linux PKMAP code -- the copyrights and credits are retained below. + */ + +/* + * (C) 1999 Andrea Arcangeli, SuSE GmbH, andrea@suse.de + * Gerhard Wichert, Siemens AG, Gerhard.Wichert@pdb.siemens.de * + * Copyright (C) 1999 Ingo Molnar + */ + +#include +#include +#include +#include +#include +#include + +unsigned long *mapcache; +static unsigned int map_idx, shadow_map_idx[NR_CPUS]; +static spinlock_t map_lock = SPIN_LOCK_UNLOCKED; + +/* Use a spare PTE bit to mark entries ready for recycling. */ +#define READY_FOR_TLB_FLUSH (1<<10) + +static void flush_all_ready_maps(void) +{ + unsigned long *cache = mapcache; + + /* A bit skanky -- depends on having an aligned PAGE_SIZE set of PTEs. */ + do { if ( (*cache & READY_FOR_TLB_FLUSH) ) *cache = 0; } + while ( ((unsigned long)(++cache) & ~PAGE_MASK) != 0 ); + + perfc_incrc(domain_page_tlb_flush); + local_flush_tlb(); +} + + +void *map_domain_mem(unsigned long pa) +{ + unsigned long va; + unsigned int idx, cpu = smp_processor_id(); + unsigned long *cache = mapcache; + unsigned long flags; + ++ perfc_incrc(map_domain_mem_count); ++ + spin_lock_irqsave(&map_lock, flags); + + /* Has some other CPU caused a wrap? We must flush if so. */ + if ( map_idx < shadow_map_idx[cpu] ) + { + perfc_incrc(domain_page_tlb_flush); + local_flush_tlb(); + } + + for ( ; ; ) + { + idx = map_idx = (map_idx + 1) & (MAPCACHE_ENTRIES - 1); + if ( idx == 0 ) flush_all_ready_maps(); + if ( cache[idx] == 0 ) break; + } + + cache[idx] = (pa & PAGE_MASK) | __PAGE_HYPERVISOR; + + spin_unlock_irqrestore(&map_lock, flags); + + shadow_map_idx[cpu] = idx; + + va = MAPCACHE_VIRT_START + (idx << PAGE_SHIFT) + (pa & ~PAGE_MASK); + return (void *)va; +} + +void unmap_domain_mem(void *va) +{ + unsigned int idx; + idx = ((unsigned long)va - MAPCACHE_VIRT_START) >> PAGE_SHIFT; + mapcache[idx] |= READY_FOR_TLB_FLUSH; +} diff --cc xen/arch/i386/process.c index 939acddc13,f4b2ef4006..6bcb901f32 --- a/xen/arch/i386/process.c +++ b/xen/arch/i386/process.c @@@ -29,9 -29,10 +29,9 @@@ #include #include #include -- -#include -#include -#include +#include +#include ++#include int hlt_counter; diff --cc xen/arch/i386/traps.c index 1c514aea23,f35e0c898d..8ee67406d2 --- a/xen/arch/i386/traps.c +++ b/xen/arch/i386/traps.c @@@ -27,18 -27,19 +27,19 @@@ * Gareth Hughes , May 2000 */ -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include ++#include #include #include #include diff --cc xen/common/domain.c index 1fd3dbc46b,b7087def0b..0783f7f838 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@@ -1,14 -1,15 +1,15 @@@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include ++#include #include #include #include diff --cc xen/common/kernel.c index 25e763f7c2,1737c72204..64ef966a3b --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@@ -193,25 -191,24 +194,26 @@@ void cmain(unsigned long magic, multibo for ( ; ; ) ; } - frametable_pages = ((FRAMETABLE_VIRT_END - RDWR_MPT_VIRT_START)/sizeof(struct pfn_info)); + max_page = (mbi->mem_upper+1024) >> (PAGE_SHIFT - 10); - if ( frametable_pages < (1<<(32-PAGE_SHIFT)) ) + /* The array of pfn_info structures must fit into the reserved area. */ - if ( (sizeof(struct pfn_info) * max_page) > ++ if ( (sizeof(struct pfn_info) * max_page) > + (FRAMETABLE_VIRT_END - FRAMETABLE_VIRT_START) ) { - unsigned long new_max = - printk("Not enough space to initialise frame table for a 4GB machine (%luMB only)\n", frametable_pages >> (20-PAGE_SHIFT)); ++ unsigned long new_max = + (FRAMETABLE_VIRT_END - FRAMETABLE_VIRT_START) / + sizeof(struct pfn_info); - printk("Truncating available memory to %lu/%luMB\n", ++ printk("Truncating available memory to %lu/%luMB\n", + new_max >> (20 - PAGE_SHIFT), max_page >> (20 - PAGE_SHIFT)); - max_page = new_max; ++ max_page = new_max; } set_current(&idle0_task); - max_mem = max_page = (mbi->mem_upper+1024) >> (PAGE_SHIFT - 10); - - if ( max_page > frametable_pages ) - max_page = frametable_pages; - init_frametable(max_page); - printk("Initialised all memory on a %luMB machine\n", - max_page >> (20-PAGE_SHIFT)); + printk("Initialised %luMB memory on a %luMB machine\n", + max_page >> (20-PAGE_SHIFT), + max_mem >> (20-PAGE_SHIFT) ); heap_start = memguard_init(&_end); diff --cc xen/common/memory.c index efd75883c1,1c54713006..c8510c514d --- a/xen/common/memory.c +++ b/xen/common/memory.c @@@ -125,14 -125,15 +125,15 @@@ * to more aggressive flush types. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include ++#include #include #include #include @@@ -830,12 -847,26 +848,23 @@@ static int do_extended_command(unsigne CHECK_STRICT); if ( likely(okay) ) { - put_page_and_type(&frame_table[pagetable_val(current->mm.pagetable) - >> PAGE_SHIFT]); - current->mm.pagetable = mk_pagetable(pfn << PAGE_SHIFT); - - if( unlikely(current->mm.shadow_mode)) - current->mm.shadow_table = - shadow_mk_pagetable(current, pfn<mm.shadow_mode) ) - { - check_pagetable( current, - current->mm.pagetable, "pre-stlb-flush" ); - write_cr3_counted(pagetable_val(current->mm.shadow_table)); + old_base_pfn = pagetable_val(current->mm.pagetable) >> PAGE_SHIFT; + current->mm.pagetable = mk_pagetable(pfn << PAGE_SHIFT); - write_cr3_counted(pfn << PAGE_SHIFT); - put_page_and_type(&frame_table[old_base_pfn]); ++ ++ if( unlikely(current->mm.shadow_mode)) ++ { ++ current->mm.shadow_table = ++ shadow_mk_pagetable(current, pfn<mm.shadow_table)); + } + else - write_cr3_counted(pagetable_val(current->mm.pagetable)); ++ { ++ write_cr3_counted(pfn << PAGE_SHIFT); ++ } ++ put_page_and_type(&frame_table[old_base_pfn]); } else { diff --cc xen/common/perfc.c index 20b0e5c116,1d24c8fd04..631e81787c --- a/xen/common/perfc.c +++ b/xen/common/perfc.c @@@ -11,12 -14,17 +14,17 @@@ #define PERFCOUNTER( var, name ) { name, TYPE_SINGLE, 0 }, #define PERFCOUNTER_CPU( var, name ) { name, TYPE_CPU, 0 }, #define PERFCOUNTER_ARRAY( var, name, size ) { name, TYPE_ARRAY, size }, + #define PERFSTATUS( var, name ) { name, TYPE_S_SINGLE, 0 }, + #define PERFSTATUS_CPU( var, name ) { name, TYPE_S_CPU, 0 }, + #define PERFSTATUS_ARRAY( var, name, size ) { name, TYPE_S_ARRAY, size }, static struct { char *name; - enum { TYPE_SINGLE, TYPE_CPU, TYPE_ARRAY } type; + enum { TYPE_SINGLE, TYPE_CPU, TYPE_ARRAY, + TYPE_S_SINGLE, TYPE_S_CPU, TYPE_S_ARRAY + } type; int nr_elements; } perfc_info[] = { -#include +#include }; #define NR_PERFCTRS (sizeof(perfc_info) / sizeof(perfc_info[0])) diff --cc xen/include/asm-i386/processor.h index 083a416a6f,7cf48541ef..08685b65a0 --- a/xen/include/asm-i386/processor.h +++ b/xen/include/asm-i386/processor.h @@@ -11,7 -11,8 +11,8 @@@ #include #include #include -#include -#include +#include ++#include #include struct task_struct; diff --cc xen/include/xen/mm.h index b24412a3de,0000000000..bc5a6362ea mode 100644,000000..100644 --- a/xen/include/xen/mm.h +++ b/xen/include/xen/mm.h @@@ -1,331 -1,0 +1,332 @@@ + +#ifndef __XEN_MM_H__ +#define __XEN_MM_H__ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +/* + * These are for compatibility with calls to the Linux memory allocators. + */ + +#define __GFP_DMA 0x01 +#define GFP_DMA __GFP_DMA +#define __GFP_WAIT 0x10 /* Can wait and reschedule? */ +#define __GFP_HIGH 0x20 /* Should access emergency pools? */ +#define __GFP_IO 0x40 /* Can start low memory physical IO? */ +#define __GFP_HIGHIO 0x80 /* Can start high mem physical IO? */ +#define __GFP_FS 0x100 /* Can call down to low-level FS? */ +#define GFP_ATOMIC (__GFP_HIGH) +#define GFP_KERNEL (__GFP_HIGH | __GFP_WAIT | __GFP_IO | \ + __GFP_HIGHIO | __GFP_FS) + +/* + * The following is for page_alloc.c. + */ + +void init_page_allocator(unsigned long min, unsigned long max); +unsigned long __get_free_pages(int mask, int order); +void __free_pages(unsigned long p, int order); +#define get_free_page(_m) (__get_free_pages((_m),0)) +#define __get_free_page(_m) (__get_free_pages((_m),0)) +#define free_pages(_p,_o) (__free_pages(_p,_o)) +#define free_page(_p) (__free_pages(_p,0)) + + +/* + * Per-page-frame information. + */ + +struct pfn_info +{ + /* Each frame can be threaded onto a doubly-linked list. */ + struct list_head list; + /* The following possible uses are context-dependent. */ + union { + /* Page is in use and not a zombie: we keep a pointer to its owner. */ + struct task_struct *domain; + /* Page is not currently allocated: mask of possibly-tainted TLBs. */ + unsigned long cpu_mask; + /* Page is a zombie: this word currently has no use. */ + unsigned long _unused; + } u; + /* Reference count and various PGC_xxx flags and fields. */ + unsigned long count_and_flags; + /* Type reference count and various PGT_xxx flags and fields. */ + unsigned long type_and_flags; + /* Timestamp from 'TLB clock', used to reduce need for safety flushes. */ + unsigned long tlbflush_timestamp; +}; + + /* The following page types are MUTUALLY EXCLUSIVE. */ +#define PGT_none (0<<29) /* no special uses of this page */ +#define PGT_l1_page_table (1<<29) /* using this page as an L1 page table? */ +#define PGT_l2_page_table (2<<29) /* using this page as an L2 page table? */ +#define PGT_l3_page_table (3<<29) /* using this page as an L3 page table? */ +#define PGT_l4_page_table (4<<29) /* using this page as an L4 page table? */ +#define PGT_gdt_page (5<<29) /* using this page in a GDT? */ +#define PGT_ldt_page (6<<29) /* using this page in an LDT? */ +#define PGT_writeable_page (7<<29) /* has writable mappings of this page? */ +#define PGT_type_mask (7<<29) /* Bits 29-31. */ + /* Has this page been validated for use as its current type? */ +#define _PGT_validated 28 +#define PGT_validated (1<<_PGT_validated) + /* 28-bit count of uses of this frame as its current type. */ +#define PGT_count_mask ((1<<28)-1) + + /* The owner of this page is dead: 'u.domain' is no longer valid. */ +#define _PGC_zombie 31 +#define PGC_zombie (1<<_PGC_zombie) + /* For safety, force a TLB flush when this page's type changes. */ +#define _PGC_tlb_flush_on_type_change 30 +#define PGC_tlb_flush_on_type_change (1<<_PGC_tlb_flush_on_type_change) + /* Owning guest has pinned this page to its current type? */ +#define _PGC_guest_pinned 29 +#define PGC_guest_pinned (1<<_PGC_guest_pinned) + /* Cleared when the owning guest 'frees' this page. */ +#define _PGC_allocated 28 +#define PGC_allocated (1<<_PGC_allocated) + /* 28-bit count of references to this frame. */ +#define PGC_count_mask ((1<<28)-1) + ++ +/* We trust the slab allocator in slab.c, and our use of it. */ +#define PageSlab(page) (1) +#define PageSetSlab(page) ((void)0) +#define PageClearSlab(page) ((void)0) + +#define IS_XEN_HEAP_FRAME(_pfn) (page_to_phys(_pfn) < MAX_MONITOR_ADDRESS) + +#define SHARE_PFN_WITH_DOMAIN(_pfn, _dom) \ + do { \ + (_pfn)->u.domain = (_dom); \ + wmb(); /* install valid domain ptr before updating refcnt. */ \ + (_pfn)->count_and_flags = 1; /* Xen holds a writeable reference */ \ + (_pfn)->type_and_flags = PGT_writeable_page | PGT_validated | 1; \ + } while ( 0 ) + +#define UNSHARE_PFN(_pfn) put_page_and_type(_pfn) + +extern struct pfn_info *frame_table; +extern unsigned long frame_table_size; +extern struct list_head free_list; +extern spinlock_t free_list_lock; +extern unsigned int free_pfns; +extern unsigned long max_page; +void init_frametable(unsigned long nr_pages); + +struct pfn_info *alloc_domain_page(struct task_struct *p); +void free_domain_page(struct pfn_info *page); + +int alloc_page_type(struct pfn_info *page, unsigned int type); +void free_page_type(struct pfn_info *page, unsigned int type); + +static inline void put_page(struct pfn_info *page) +{ + unsigned long nx, x, y = page->count_and_flags; + + do { + x = y; + nx = x - 1; + } + while ( unlikely((y = cmpxchg(&page->count_and_flags, x, nx)) != x) ); + + if ( unlikely((nx & PGC_count_mask) == 0) ) + free_domain_page(page); +} + + +static inline int get_page(struct pfn_info *page, + struct task_struct *domain) +{ + unsigned long x, nx, y = page->count_and_flags; + struct task_struct *p, *np = page->u.domain; + + do { + x = y; + nx = x + 1; + p = np; + if ( unlikely((x & PGC_count_mask) == 0) || /* Not allocated? */ + unlikely((nx & PGC_count_mask) == 0) || /* Count overflow? */ + unlikely(x & PGC_zombie) || /* Zombie? */ + unlikely(p != domain) ) /* Wrong owner? */ + { + DPRINTK("Error pfn %08lx: ed=%p,sd=%p,caf=%08lx\n", + page_to_pfn(page), domain, p, x); + return 0; + } + __asm__ __volatile__( + LOCK_PREFIX "cmpxchg8b %3" + : "=a" (np), "=d" (y), "=b" (p), + "=m" (*(volatile unsigned long long *)(&page->u.domain)) + : "0" (p), "1" (x), "b" (p), "c" (nx) ); + } + while ( unlikely(np != p) || unlikely(y != x) ); + + return 1; +} + + +static inline void put_page_type(struct pfn_info *page) +{ + unsigned long nx, x, y = page->type_and_flags; + + again: + do { + x = y; + nx = x - 1; + if ( unlikely((nx & PGT_count_mask) == 0) ) + { + page->tlbflush_timestamp = tlbflush_clock; + if ( unlikely((nx & PGT_type_mask) <= PGT_l4_page_table) && + likely(nx & PGT_validated) ) + { + /* + * Page-table pages must be unvalidated when count is zero. The + * 'free' is safe because the refcnt is non-zero and the + * validated bit is clear => other ops will spin or fail. + */ + if ( unlikely((y = cmpxchg(&page->type_and_flags, x, + x & ~PGT_validated)) != x) ) + goto again; + /* We cleared the 'valid bit' so we must do the clear up. */ + free_page_type(page, x & PGT_type_mask); + /* Carry on as we were, but with the 'valid bit' now clear. */ + x &= ~PGT_validated; + nx &= ~PGT_validated; + } + } + } + while ( unlikely((y = cmpxchg(&page->type_and_flags, x, nx)) != x) ); +} + + +static inline int get_page_type(struct pfn_info *page, unsigned long type) +{ + unsigned long nx, x, y = page->type_and_flags; + again: + do { + x = y; + nx = x + 1; + if ( unlikely((nx & PGT_count_mask) == 0) ) + { + DPRINTK("Type count overflow on pfn %08lx\n", page_to_pfn(page)); + return 0; + } + else if ( unlikely((x & PGT_count_mask) == 0) ) + { + if ( (x & PGT_type_mask) != type ) + { + nx &= ~(PGT_type_mask | PGT_validated); + nx |= type; + /* No extra validation needed for writeable pages. */ + if ( type == PGT_writeable_page ) + nx |= PGT_validated; + } + } + else if ( unlikely((x & PGT_type_mask) != type) ) + { + DPRINTK("Unexpected type (saw %08lx != exp %08lx) for pfn %08lx\n", + x & PGT_type_mask, type, page_to_pfn(page)); + return 0; + } + else if ( unlikely(!(x & PGT_validated)) ) + { + /* Someone else is updating validation of this page. Wait... */ + while ( (y = page->type_and_flags) != x ) + { + rep_nop(); + barrier(); + } + goto again; + } + } + while ( unlikely((y = cmpxchg(&page->type_and_flags, x, nx)) != x) ); + + if ( unlikely(!(nx & PGT_validated)) ) + { + /* Try to validate page type; drop the new reference on failure. */ + if ( unlikely(!alloc_page_type(page, type)) ) + { + DPRINTK("Error while validating pfn %08lx for type %08lx\n", + page_to_pfn(page), type); + put_page_type(page); + return 0; + } + set_bit(_PGT_validated, &page->type_and_flags); + } + + return 1; +} + + +static inline void put_page_and_type(struct pfn_info *page) +{ + put_page_type(page); + put_page(page); +} + + +static inline int get_page_and_type(struct pfn_info *page, + struct task_struct *domain, + unsigned int type) +{ + int rc = get_page(page, domain); + + if ( likely(rc) && unlikely(!get_page_type(page, type)) ) + { + put_page(page); + rc = 0; + } + + return rc; +} + +#define ASSERT_PAGE_IS_TYPE(_p, _t) \ + ASSERT(((_p)->type_and_flags & PGT_type_mask) == (_t)); \ + ASSERT(((_p)->type_and_flags & PGT_count_mask) != 0) +#define ASSERT_PAGE_IS_DOMAIN(_p, _d) \ + ASSERT(((_p)->count_and_flags & PGC_count_mask) != 0); \ + ASSERT((_p)->u.domain == (_d)) + +int check_descriptor(unsigned long a, unsigned long b); + +/* + * The MPT (machine->physical mapping table) is an array of word-sized + * values, indexed on machine frame number. It is expected that guest OSes + * will use it to store a "physical" frame number to give the appearance of + * contiguous (or near contiguous) physical memory. + */ +#undef machine_to_phys_mapping +#define machine_to_phys_mapping ((unsigned long *)RDWR_MPT_VIRT_START) + +/* Part of the domain API. */ +int do_mmu_update(mmu_update_t *updates, int count); + +#define DEFAULT_GDT_ENTRIES ((LAST_RESERVED_GDT_ENTRY*8)+7) +#define DEFAULT_GDT_ADDRESS ((unsigned long)gdt_table) + +#ifdef MEMORY_GUARD +void *memguard_init(void *heap_start); +void memguard_guard_range(void *p, unsigned long l); +void memguard_unguard_range(void *p, unsigned long l); +int memguard_is_guarded(void *p); +#else +#define memguard_init(_s) (_s) +#define memguard_guard_range(_p,_l) ((void)0) +#define memguard_unguard_range(_p,_l) ((void)0) +#define memguard_is_guarded(_p) (0) +#endif + +#endif /* __XEN_MM_H__ */ diff --cc xen/include/xen/perfc.h index ad0b53eeb6,0000000000..0f84c266dc mode 100644,000000..100644 --- a/xen/include/xen/perfc.h +++ b/xen/include/xen/perfc.h @@@ -1,56 -1,0 +1,68 @@@ + +#ifndef __XEN_PERFC_H__ +#define __XEN_PERFC_H__ + +#include + +/* + * NOTE: new counters must be defined in perfc_defn.h + * + * PERFCOUNTER (counter, string) define a new performance counter + * PERFCOUNTER_CPU (counter, string, size) define a counter per CPU + * PERFCOUNTER_ARRY (counter, string, size) define an array of counters + * ++ * unlike "COUNTERS", "STATUS" variables DO NOT RESET ++ * PERFSTATUS (counter, string) define a new performance stauts ++ * PERFSTATUS_CPU (counter, string, size) define a status var per CPU ++ * PERFSTATUS_ARRY (counter, string, size) define an array of status vars ++ * + * unsigned long perfc_value (counter) get value of a counter + * unsigned long perfc_valuec (counter) get value of a per CPU counter + * unsigned long perfc_valuea (counter, index) get value of an array counter + * unsigned long perfc_set (counter, val) set value of a counter + * unsigned long perfc_setc (counter, val) set value of a per CPU counter + * unsigned long perfc_seta (counter, index, val) set value of an array counter + * void perfc_incr (counter) increment a counter + * void perfc_incrc (counter, index) increment a per CPU counter + * void perfc_incra (counter, index) increment an array counter + * void perfc_add (counter, value) add a value to a counter + * void perfc_addc (counter, value) add a value to a per CPU counter + * void perfc_adda (counter, index, value) add a value to array counter + * void perfc_print (counter) print out the counter + */ + +#define PERFCOUNTER( var, name ) \ + atomic_t var[1]; +#define PERFCOUNTER_CPU( var, name ) \ + atomic_t var[NR_CPUS]; +#define PERFCOUNTER_ARRAY( var, name, size ) \ + atomic_t var[size]; ++#define PERFSTATUS( var, name ) \ ++ atomic_t var[1]; ++#define PERFSTATUS_CPU( var, name ) \ ++ atomic_t var[NR_CPUS]; ++#define PERFSTATUS_ARRAY( var, name, size ) \ ++ atomic_t var[size]; + +struct perfcounter_t +{ +#include +}; + +extern struct perfcounter_t perfcounters; + +#define perfc_value(x) atomic_read(&perfcounters.x[0]) +#define perfc_valuec(x) atomic_read(&perfcounters.x[smp_processor_id()]) +#define perfc_valuea(x,y) atomic_read(&perfcounters.x[y]) +#define perfc_set(x,v) atomic_set(&perfcounters.x[0], v) +#define perfc_setc(x,v) atomic_set(&perfcounters.x[smp_processor_id()], v) +#define perfc_seta(x,y,v) atomic_set(&perfcounters.x[y], v) +#define perfc_incr(x) atomic_inc(&perfcounters.x[0]) ++#define perfc_decr(x) atomic_dec(&perfcounters.x[0]) +#define perfc_incrc(x) atomic_inc(&perfcounters.x[smp_processor_id()]) +#define perfc_incra(x,y) atomic_inc(&perfcounters.x[y]) +#define perfc_add(x,y) atomic_add((y), &perfcounters.x[0]) +#define perfc_addc(x,y) atomic_add((y), &perfcounters.x[smp_processor_id()]) +#define perfc_adda(x,y,z) atomic_add((z), &perfcounters.x[y]) + +#endif /* __XEN_PERFC_H__ */ diff --cc xen/include/xen/perfc_defn.h index f81b5bcba1,0000000000..bf06719e35 mode 100644,000000..100644 --- a/xen/include/xen/perfc_defn.h +++ b/xen/include/xen/perfc_defn.h @@@ -1,24 -1,0 +1,35 @@@ + +PERFCOUNTER_CPU( irqs, "#interrupts" ) +PERFCOUNTER_CPU( irq_time, "cycles spent in irq handler" ) + +PERFCOUNTER_CPU( apic_timer, "apic timer interrupts" ) +PERFCOUNTER_CPU( ac_timer_max, "ac_timer max error (ns)" ) +PERFCOUNTER_CPU( sched_irq, "sched: timer" ) +PERFCOUNTER_CPU( sched_run, "sched: runs through scheduler" ) +PERFCOUNTER_CPU( sched_ctx, "sched: context switches" ) + +PERFCOUNTER( net_hypercalls, "network hypercalls" ) +PERFCOUNTER( net_rx_congestion_drop, "net rx congestion drops" ) +PERFCOUNTER( net_rx_capacity_drop, "net rx capacity drops" ) +PERFCOUNTER( net_rx_delivered, "net rx delivered" ) +PERFCOUNTER( net_tx_transmitted, "net tx transmitted" ) + +PERFCOUNTER_CPU( domain_page_tlb_flush, "domain page tlb flushes" ) +PERFCOUNTER_CPU( need_flush_tlb_flush, "PG_need_flush tlb flushes" ) + +PERFCOUNTER_CPU( calls_to_mmu_update, "calls_to_mmu_update" ) +PERFCOUNTER_CPU( num_page_updates, "num_page_updates" ) - - - ++PERFCOUNTER_CPU( calls_to_update_va, "calls_to_update_va_map" ) ++PERFCOUNTER_CPU( page_faults, "page faults" ) ++PERFCOUNTER_CPU( copy_user_faults, "copy_user faults" ) ++PERFCOUNTER_CPU( map_domain_mem_count, "map_domain_mem count" ) ++ ++PERFCOUNTER_CPU( shadow_l2_table_count, "shadow_l2_table count" ) ++PERFCOUNTER_CPU( shadow_l1_table_count, "shadow_l1_table count" ) ++PERFCOUNTER_CPU( unshadow_table_count, "unshadow_table count" ) ++PERFCOUNTER_CPU( shadow_fixup_count, "shadow_fixup count" ) ++PERFCOUNTER_CPU( shadow_update_va_fail, "shadow_update_va_fail" ) ++ ++/* STATUS counters do not reset when 'P' is hit */ ++PERFSTATUS( shadow_l2_pages, "current # shadow L2 pages" ) ++PERFSTATUS( shadow_l1_pages, "current # shadow L1 pages" ) diff --cc xen/net/dev.c index 05d474f98b,5d692f51f4..e7e277f5e5 --- a/xen/net/dev.c +++ b/xen/net/dev.c @@@ -10,24 -10,25 +10,25 @@@ #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include ++#include #include #include #include