summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-05-06S390: BIOS boot from given deviceDominik Dingel2-6/+20
Use the passed device, if there is no device, use the first applicable device. Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06S390: Add virtio-blk bootDominik Dingel1-0/+18
If no kernel IPL entry is specified, boot the bios and pass if available device information for the first boot device (as given by the boot index). The provided information will be used in the next commit from the BIOS. Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06S390: Merging s390_ipl_cpu and s390_ipl_resetDominik Dingel1-11/+5
There is no use in have this splitted in two functions. Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06S390: BIOS create link to src folder for .img fileDominik Dingel1-0/+1
For *.img files, there will be a link created directly to the src folder, like for all other blobs. Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06S390: BIOS check for fileDominik Dingel1-0/+4
Add a check if the BIOS blob exists before trying to load. Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06spapr_llan: fix device reenablingAlexey Kardashevskiy1-0/+2
Normally, the "tap" device is polled by QEMU if a guest NIC can receive packets. If a guest NIC is stopped during transfer (rmmod or ifdown), it may still have packets in a queue which have to be send to the guest before QEMU enables polling of a "tap" interface via tap_update_fd_handler(). However the spapr_llan device was missing the qemu_flush_queued_packets() call so the tap_send_completed() callback was never called and therefore "tap" interface polling was not enabled ever. The patch fixes this problem. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06PPC: e500: correct params->ram_size with ram_sizeTiejun Chen1-0/+1
We should sync params->ram_size after we fixup memory size on a alignment boundary. Otherwise Guest would exceed the actual memory region. Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06target-ppc: Add read and write of PPR SPRAnton Blanchard1-0/+4
Recent Linux kernels save and restore the PPR across exceptions so we need to handle it. Signed-off-by: Anton Blanchard <anton@au1.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06target-ppc: Fix invalid SPR read/write warningsAnton Blanchard1-16/+16
Invalid and privileged SPR warnings currently print the wrong address. While fixing that, also make it clear that we are printing both the decimal and hexadecimal SPR number. Before: Trying to read invalid spr 896 380 at 0000000000000714 After: Trying to read invalid spr 896 (0x380) at 0000000000000710 Signed-off-by: Anton Blanchard <anton@au1.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06PPC: Add MMU type for 2.06 with AMR but no TB pagesAlexander Graf2-0/+7
When running -cpu on a POWER7 system with PR KVM, we mask out the 1TB MMU capability from the MMU type mask, but not the AMR bit. This leads to us having a new MMU type that we don't check for in our MMU management functions. Add the new type, so that we don't have to worry about breakage there. We're not going to use the TCG MMU management in that case anyway. The long term fix for this will be to move all these MMU management functions to class callbacks. Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06pseries: Update SLOF firmware imageAlexey Kardashevskiy3-2/+2
Minor SLOF fixes which are required for libvirtd to function properly: * vio-vscsi: vscsi-report-luns can return 0 * vio-vscsi: added a proper lun parser * SLOF: vio-vscsi: fixed bug with reported luns Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06PPC: e500: initialize GPRs as per epaprBharat Bhushan1-3/+27
ePAPR defines the initial values of cpu registers. This patch initialize the GPRs as per ePAPR specification. This resolves the issue of guest reboot/reset (guest hang on reboot). Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com> [agraf: add whitespace line] Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06pseries: Fix debug message for out-of-bounds address in H_PUT_TCEDavid Gibson1-1/+1
Due to a brain outage, this message says "out-of-boards" instead of "out-of-bounds". Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06pseries: Factor out check for out-of-bounds LIOBNDavid Gibson1-6/+6
PAPR defines LIOBNs (Logical IO Bus Numbers) to be 32-bit, and we check for values that aren't in the code for H_PUT_TCE. This patch factors the check into spapr_tce_find_by_liobn(), which already checks if a 32-bit LIOBN actually exists. This will become more important as future patches add other hypercalls which need to look up a LIOBN. At the same time we fix the typo in the message. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alexander Graf <agraf@suse.de>
2013-05-06kvmvapic: add ioport read accessorMarcelo Tosatti1-0/+6
Necessary since memory region accessor assumes read and write methods are registered. Otherwise reading I/O port 0x7e segfaults. https://bugzilla.redhat.com/show_bug.cgi?id=954306 Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Gleb Natapov <gleb@redhat.com>
2013-05-06configure: Check that "libtool" is not the MacOSX onePeter Maydell1-0/+8
The "libtool" binary on MacOSX is not GNU libtool, and doesn't support anything like the same set of command line options. Test whether we have accidentally picked this up (by looking for whether it handles the GNU --version switch), and discard it if so. The fallback machinery for the "we don't have a libtool" case will work fine. This fixes a failure in "make install" on MacOSX. Reported-by: Peter Cheung <mcheung63@hotmail.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 1367701071-6630-1-git-send-email-peter.maydell@linaro.org Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-06Merge remote-tracking branch 'afaerber-or/prep-up' into stagingAnthony Liguori1-10/+26
# By Andreas Färber (1) and others # Via Andreas Färber * afaerber-or/prep-up: prep: Make System I/O port 0092 read/write prep: Add ELF support for -bios prep: Fix NIP reset value
2013-05-06Merge remote-tracking branch 'pmaydell/arm-devs.next' into stagingAnthony Liguori1-64/+198
# By Jean-Christophe DUBOIS # Via Peter Maydell * pmaydell/arm-devs.next: i.MX: implement a more correct version of EPIT timer. Message-id: 1367603215-5120-1-git-send-email-peter.maydell@linaro.org Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-06prep: Make System I/O port 0092 read/writeJulio Guerra1-1/+1
Port 0x0092 is documented as read/write, so for now return the endianness state instead of hardcoded 0x00. Signed-off-by: Julio Guerra <guerr@julio.in> [AF: Extracted from larger port 0092 patch] Signed-off-by: Andreas Färber <andreas.faerber@web.de>
2013-05-05prep: Add ELF support for -biosAndreas Färber1-9/+22
This prepares for switching from OpenHack'Ware to OpenBIOS. While touching the error handling code, switch from aborting hw_error() to fprintf()+exit() and suppress failing without -bios for qtest. Acked-by: Alexander Graf <agraf@suse.de> Signed-off-by: Andreas Färber <andreas.faerber@web.de>
2013-05-05prep: Fix NIP reset valueFabien Chouteau1-0/+3
The value was changed by commit 09d9828ace37ead29d510a7e24e63c2f15cd4b1c "PPC: fix hreset_vector for 60x, ...". Change it back for prep machine to unbreak OpenHack'Ware. Signed-off-by: Fabien Chouteau <chouteau@adacore.com> Signed-off-by: Andreas Färber <andreas.faerber@web.de>
2013-05-05Update OpenBIOS imagesBlue Swirl5-2/+2
Update OpenBIOS images to OpenBIOS 1.1 release (SVN r1136) built from submodule. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2013-05-05Merge branch 'target-arm.next' of git://git.linaro.org/people/pmaydell/qemu-armBlue Swirl1-2/+2
* 'target-arm.next' of git://git.linaro.org/people/pmaydell/qemu-arm: target-arm: Fix incorrect check of kvm_vcpu_ioctl return value
2013-05-03target-arm: Fix incorrect check of kvm_vcpu_ioctl return valuePeter Maydell1-2/+2
kvm_vcpu_ioctl() returns -ETHING on error, not ETHING -- correct an incorrect check in kvm_arch_init_vcpu(). This would not have had any significant ill-effects -- we would just have propagated the less useful ENOENT up to the caller rather than the more accurate EINVAL in the unlikely case that the kernel didn't have VFP-D32 support. Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2013-05-03i.MX: implement a more correct version of EPIT timer.Jean-Christophe DUBOIS1-64/+198
This patch is providing a complete version of the EPIT timer. Note, however that the GPT timer in the same file is still not complete. Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net> Message-id: 1365624982-15647-1-git-send-email-jcd@tribudubois.net Reviewed-by: Peter Chubb <peter.chubb@nicta.com.au> [PMM: wrapped an overly long line] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2013-05-03qdev: skip bus check for bus-less devices in qdev_unplug()Igor Mammedov1-1/+1
Since commit 2f7bd829db "qdev: Fix device_add bus assumptions" it's possible to device_add bus-less device, but if such device is unplugged it will dereference NULL parent_bus in qdev_unplug(). Fix it by taking in account that parent_bus might be NULL and skipping bus check. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Message-id: 1367587536-14964-1-git-send-email-imammedo@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03virtio-scsi: fix the command line compatibility.KONRAD Frederic5-2/+38
The bus name is wrong since the refactoring. This keeps the behaviour of the command line. Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com> Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com> Message-id: 1367330931-12994-6-git-send-email-fred.konrad@greensocs.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03virtio-serial: fix command line compatibility.KONRAD Frederic4-1/+37
The bus name is wrong since the refactoring. This keeps the behaviour of the command line. Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com> Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com> Message-id: 1367330931-12994-5-git-send-email-fred.konrad@greensocs.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03scsi: add bus_name parameter to scsi_bus_new.KONRAD Frederic11-13/+15
This adds the possibility to create a scsi-bus with a specified name. Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com> Message-id: 1367330931-12994-4-git-send-email-fred.konrad@greensocs.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03virtio: add virtio_device_set_child_bus_name.KONRAD Frederic2-0/+28
Add virtio_device_set_child_bus_name function. It will be used with virtio-serial-x and virtio-scsi-x to set the child bus name before calling virtio-x-device's init. Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com> Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com> Message-id: 1367330931-12994-3-git-send-email-fred.konrad@greensocs.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03virtio-x-bus: force bus name to virtio-bus.KONRAD Frederic3-3/+11
When the proxy id is set, this bus takes the name "id.0" which is expected to be the virtio-device's first bus. So force this name to "virtio-bus" as it is an internal bus. Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com> Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com> Message-id: 1367330931-12994-2-git-send-email-fred.konrad@greensocs.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03TLS support for VNC WebsocketsTim Hardeck6-42/+178
Added TLS support to the VNC QEMU Websockets implementation. VNC-TLS needs to be enabled for this feature to be used. The required certificates are specified as in case of VNC-TLS with the VNC parameter "x509=<path>". If the server certificate isn't signed by a rooth authority it needs to be manually imported in the browser because at least in case of Firefox and Chrome there is no user dialog, the connection just gets canceled. As a side note VEncrypt over Websocket doesn't work atm because TLS can't be stacked in the current implementation. (It also didn't work before) Nevertheless to my knowledge there is no HTML 5 VNC client which supports it and the Websocket connection can be encrypted with regular TLS now so it should be fine for most use cases. Signed-off-by: Tim Hardeck <thardeck@suse.de> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Message-id: 1366727581-5772-1-git-send-email-thardeck@suse.de Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03audio: Enable all cardsJan Kiszka1-3/+3
...or they will bitrot to death. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Message-id: 5181234A.6060504@web.de Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03win32: fix compilation againPaolo Bonzini2-5/+2
While commit c02817e5bfbb27955cac970019e6670dc427bc41 fixed compilation without an installed libtool, moving the dependencies to rules.mak does not work because the version-*-y variables are not defined yet. Building in a clean tree thus fails. Revert the commit and remove the dummy /bin/false assignment to LIBTOOL. This makes the build work, at the price of slightly worse errors when there are Makefile bugs. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1367425815-15083-1-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03libqos: Relocate I2C filesAndreas Färber5-5/+6
Commit c4efe1cada311b9dc0df5beb71c4227ff3414aa1 (qtest: add libqos including PCI support) created a libqos/ subdirectory but left the existing I2C libqos files libi2c*.[hc] in tests/. Clean this up. Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Andreas Färber <afaerber@suse.de> Message-id: 1367502986-15104-1-git-send-email-afaerber@suse.de Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03Merge remote-tracking branch 'stefanha/tracing' into stagingAnthony Liguori8-0/+203
# By Eiichi Tsukata (2) and Kazuya Saito (2) # Via Stefan Hajnoczi * stefanha/tracing: trace: document ftrace backend trace: Add ftrace tracing backend kvm-all: add kvm_run_exit tracepoint kvm-all: add kvm_ioctl, kvm_vm_ioctl, kvm_vcpu_ioctl tracepoints Message-id: 1367582485-15579-1-git-send-email-stefanha@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03Merge remote-tracking branch 'stefanha/net' into stagingAnthony Liguori2-6/+3
# By Amos Kong (1) and Jason Wang (1) # Via Stefan Hajnoczi * stefanha/net: tap: properly initialize vhostfds net: make network client name unique Message-id: 1367582254-15060-1-git-send-email-stefanha@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-05-03Merge remote-tracking branch 'stefanha/block' into stagingAnthony Liguori11-87/+1618
# By Fam Zheng (8) and others # Via Stefan Hajnoczi * stefanha/block: qemu-iotests: Filter out 'adapter_type' nbd: support large NBD requests nbd: use g_slice_new() instead of a freelist qemu-iotests: Filter out vmdk creation options vmdk: add bdrv_co_write_zeroes vmdk: store fields of VmdkMetaData in cpu endian vmdk: change magic number to macro vmdk: Add option to create zeroed-grain image vmdk: add support for “zeroed‐grain” GTE vmdk: named return code. blockdev: Replace "undefined error" in qmp_block_resize block: add read-only support to VHDX image format. block: initial VHDX driver support framework - supports open and probe block: vhdx header for the QEMU support of VHDX images qemu: add castagnoli crc32c checksum algorithm
2013-05-03trace: document ftrace backendEiichi Tsukata1-0/+16
Add documentation of ftrace backend. Signed-off-by: Eiichi Tsukata <eiichi.tsukata.xh@hitachi.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-05-03trace: Add ftrace tracing backendEiichi Tsukata5-0/+175
This patch adds a ftrace tracing backend which sends trace event to ftrace marker file. You can effectively compare qemu trace data and kernel(especially, kvm.ko when using KVM) trace data. The ftrace backend is restricted to Linux only. To try out the ftrace backend: $ ./configure --trace-backend=ftrace $ make if you use KVM, enable kvm events in ftrace: # sudo echo 1 > /sys/kernel/debug/tracing/events/kvm/enable After running qemu by root user, you can get the trace: # cat /sys/kernel/debug/tracing/trace Signed-off-by: Eiichi Tsukata <eiichi.tsukata.xh@hitachi.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-05-03kvm-all: add kvm_run_exit tracepointKazuya Saito2-0/+3
This patch enable us to know exit reason of KVM_RUN. It will help us know where the trouble is caused. Signed-off-by: Kazuya Saito <saito.kazuya@jp.fujitsu.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-05-03kvm-all: add kvm_ioctl, kvm_vm_ioctl, kvm_vcpu_ioctl tracepointsKazuya Saito2-0/+9
This patch adds tracepoints at ioctl to kvm. Tracing these ioctl is useful for clarification whether the cause of troubles is qemu or kvm. Signed-off-by: Kazuya Saito <saito.kazuya@jp.fujitsu.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-05-03tap: properly initialize vhostfdsJason Wang1-1/+1
Only tap->vhostfd were checked net_init_tap_one(), but tap->vhostfds were forgot, this will lead qemu to ignore all fds passed by management through vhostfds, and tries to create vhost_net device itself. Fix by adding this check also. Reportyed-by: Michal Privoznik <mprivozn@redhat.com> Cc: Michal Privoznik <mprivozn@redhat.com> Cc: qemu-stable@nongnu.org Signed-off-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-05-03net: make network client name uniqueAmos Kong1-5/+2
assign_name() creates a name MODEL.NUM, where MODEL is the client's model, and NUM is the number of MODELs that already exist. Markus added NIC naming for non-VLAN clients in commit 53e51d85. commit d33d93b2 incorrectly added a judgement of net-hub. It caused net clients created with -netdev get same names. eg: # qemu-upstream -device virtio-net-pci,netdev=h1 -netdev tap,id=h1 \ -device virtio-net-pci,netdev=h2 -netdev tap,id=h2 .. (qemu) info network virtio-net-pci.0: index=0,type=nic,model=virtio-net-pci,macaddr=52:54:00:12:34:56 \ h1: index=0,type=tap,ifname=tap0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown virtio-net-pci.0: index=0,type=nic,model=virtio-net-pci,macaddr=52:54:00:12:34:57 \ h2: index=0,type=tap,ifname=tap1,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown This patch removed the check of nic-hub, and created unique names for all net clients that have same model. v2: update commitlog & comments Signed-off-by: Amos Kong <akong@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-05-03qemu-iotests: Filter out 'adapter_type'Fam Zheng1-0/+1
Filter out vmdk creation option 'adapter_type' for vmdk. So that tests with an explicit './check -o adapter_type=XXX' will not fail. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-05-03nbd: support large NBD requestsStefan Hajnoczi2-7/+13
The Linux nbd driver recently increased the maximum supported request size up to 32 MB: commit 078be02b80359a541928c899c2631f39628f56df Author: Michal Belczyk <belczyk@bsd.krakow.pl> Date: Tue Apr 30 15:28:28 2013 -0700 nbd: increase default and max request sizes Raise the default max request size for nbd to 128KB (from 127KB) to get it 4KB aligned. This patch also allows the max request size to be increased (via /sys/block/nbd<x>/queue/max_sectors_kb) to 32MB. QEMU's 1 MB buffers are too small to handle these requests. This patch allocates data buffers dynamically and allows up to 32 MB per request. Reported-by: Nick Thomas <nick@bytemark.co.uk> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-05-03nbd: use g_slice_new() instead of a freelistStefan Hajnoczi1-17/+6
Use GLib's efficient slice allocator instead of open-coding the request freelist. This patch simplifies the NBDRequest code. Now we qemu_blockalign() the req->data buffer each time but the next patch switches from a fixed size buffer to a dynamic size anyway. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-05-03tcg-arm: Use movi32 in exit_tbRichard Henderson1-9/+7
Avoid the mini constant pool for armv7, and avoid replicating the test for pre-v7. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2013-05-03tcg-arm: Fix 64-bit tlb load for pre-v6Richard Henderson1-1/+1
Found by inspection, since the effect of the bug was simply to send all memory ops through the slow path. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2013-05-03target-mips: fix calculation of overflow for SHLL.PH and SHLL.QBPetar Jovanovic3-27/+59
This change corrects and simplifies how discard is calculated for shift left logical vector instructions. It is used to detect overflow and set bit 22 in the DSPControl register. The existing tests (shll_ph.c, shll_qb.c) are extended with the corner cases that expose incorrectness in the previous implementation. Signed-off-by: Petar Jovanovic <petar.jovanovic@imgtec.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>