mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
Basic support for using channel-attached 3270 'green-screen'
devices via tn3270. Actual handling of the data stream is delegated to x3270; more info at http://wiki.qemu.org/Features/3270 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJZCwRDAAoJEN7Pa5PG8C+vNvgQAK8UDFFJPWvgCMhkSfh8rPyM glIAlmLkowJpjqgV5UDWWB/TjUdM+8xFKLEARjtbrWvKkbqrz/8yrCop4XEYcLmz FGQKlKQfhoUP5vZUsuxdZ/lzUBEKnFpLfmgC68AC0jchByIsQxbaTpxTeafMHp/N F8dL7KS8sH+MkdPQkGevUGD68BkF1MzggWkrfmRsgLdMfS7eR4z0w3W0MT0fYuqM 1/G+Fpc4Z7FqJE4d7mFJHYrUvQIXH9FXab/EB3yu+c3GkKNZ5MEfCaJ70ZlkpVD2 WLvl4NS4D+TsUae1/jYP4tNoZwdf0WqFCsbdMYONEljmQ1omy0unkQ+pXDIKG/sn dOOpe2JGUgh8Fhjak90KC07efoKRa6IUT3CUWB4j14tDzhpjf8SbVmSVKOzLI0Rs vmW3BA48NHPehl+Twm9jA4n1qtC7t1ctO1Q7nCp1sN5Vo/VdArAyws9Sw6cjxKbw 7A7ldqa+h6Rg/CWONnZQUF/dr3pLqiUpuO5yN+ofg9yntJvaMLtybhO7kMNa+k64 SLm8NSnbLjTxfQ9md/SjUp/EmxOWcnkKXDMVYfl4LOvHYiNwW+wzQGQUP7ibapPZ 9TZ5UYfCr7a+d7wab2HAU4SWyr+5csFz5csZKEpc9TIYkDqwbqkMpi7aUCVHij2/ 8k7mEMlnfwn4HDda88jC =kMb4 -----END PGP SIGNATURE----- Merge remote-tracking branch 'cohuck/tags/s390x-3270-20170504' into staging Basic support for using channel-attached 3270 'green-screen' devices via tn3270. Actual handling of the data stream is delegated to x3270; more info at http://wiki.qemu.org/Features/3270 # gpg: Signature made Thu 04 May 2017 11:36:51 AM BST # gpg: using RSA key 0xDECF6B93C6F02FAF # gpg: Good signature from "Cornelia Huck <conny@cornelia-huck.de>" # gpg: aka "Cornelia Huck <cohuck@kernel.org>" # gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>" # gpg: aka "Cornelia Huck <huckc@linux.vnet.ibm.com>" # Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0 18CE DECF 6B93 C6F0 2FAF * cohuck/tags/s390x-3270-20170504: s390x/3270: Mark non-migratable and enable the device s390x/3270: Detect for continued presence of a 3270 client s390x/3270: Add the TCP socket events handler for 3270 s390x/3270: 3270 data stream handling s390x/3270: Add emulated terminal3270 device s390x/3270: Add abstract emulated ccw-attached 3270 device s390x/css: Add an algorithm to find a free chpid chardev: Basic support for TN3270 Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
f03f9f0c10
12 changed files with 625 additions and 22 deletions
53
include/hw/s390x/3270-ccw.h
Normal file
53
include/hw/s390x/3270-ccw.h
Normal file
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* Emulated ccw-attached 3270 definitions
|
||||
*
|
||||
* Copyright 2017 IBM Corp.
|
||||
* Author(s): Yang Chen <bjcyang@linux.vnet.ibm.com>
|
||||
* Jing Liu <liujbjl@linux.vnet.ibm.com>
|
||||
*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or (at
|
||||
* your option) any later version. See the COPYING file in the top-level
|
||||
* directory.
|
||||
*/
|
||||
|
||||
#ifndef HW_S390X_3270_CCW_H
|
||||
#define HW_S390X_3270_CCW_H
|
||||
|
||||
#include "hw/sysbus.h"
|
||||
#include "hw/s390x/css.h"
|
||||
#include "hw/s390x/ccw-device.h"
|
||||
|
||||
#define EMULATED_CCW_3270_CU_TYPE 0x3270
|
||||
#define EMULATED_CCW_3270_CHPID_TYPE 0x1a
|
||||
|
||||
#define TYPE_EMULATED_CCW_3270 "emulated-ccw-3270"
|
||||
|
||||
/* Local Channel Commands */
|
||||
#define TC_WRITE 0x01 /* Write */
|
||||
#define TC_RDBUF 0x02 /* Read buffer */
|
||||
#define TC_EWRITE 0x05 /* Erase write */
|
||||
#define TC_READMOD 0x06 /* Read modified */
|
||||
#define TC_EWRITEA 0x0d /* Erase write alternate */
|
||||
#define TC_WRITESF 0x11 /* Write structured field */
|
||||
|
||||
#define EMULATED_CCW_3270(obj) \
|
||||
OBJECT_CHECK(EmulatedCcw3270Device, (obj), TYPE_EMULATED_CCW_3270)
|
||||
#define EMULATED_CCW_3270_CLASS(klass) \
|
||||
OBJECT_CLASS_CHECK(EmulatedCcw3270Class, (klass), TYPE_EMULATED_CCW_3270)
|
||||
#define EMULATED_CCW_3270_GET_CLASS(obj) \
|
||||
OBJECT_GET_CLASS(EmulatedCcw3270Class, (obj), TYPE_EMULATED_CCW_3270)
|
||||
|
||||
typedef struct EmulatedCcw3270Device {
|
||||
CcwDevice parent_obj;
|
||||
} EmulatedCcw3270Device;
|
||||
|
||||
typedef struct EmulatedCcw3270Class {
|
||||
CCWDeviceClass parent_class;
|
||||
|
||||
void (*init)(EmulatedCcw3270Device *, Error **);
|
||||
int (*read_payload_3270)(EmulatedCcw3270Device *, uint32_t, uint16_t);
|
||||
int (*write_payload_3270)(EmulatedCcw3270Device *, uint8_t, uint32_t,
|
||||
uint16_t);
|
||||
} EmulatedCcw3270Class;
|
||||
|
||||
#endif
|
|
@ -28,6 +28,7 @@
|
|||
#define MAX_CIWS 62
|
||||
|
||||
#define VIRTUAL_CSSID 0xfe
|
||||
#define VIRTIO_CCW_CHPID 0 /* used by convention */
|
||||
|
||||
typedef struct CIW {
|
||||
uint8_t type;
|
||||
|
@ -115,6 +116,7 @@ bool css_devno_used(uint8_t cssid, uint8_t ssid, uint16_t devno);
|
|||
void css_subch_assign(uint8_t cssid, uint8_t ssid, uint16_t schid,
|
||||
uint16_t devno, SubchDev *sch);
|
||||
void css_sch_build_virtual_schib(SubchDev *sch, uint8_t chpid, uint8_t type);
|
||||
unsigned int css_find_free_chpid(uint8_t cssid);
|
||||
uint16_t css_build_subchannel_id(SubchDev *sch);
|
||||
void css_reset(void);
|
||||
void css_reset_sch(SubchDev *sch);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue