diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-02-04 17:56:42 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-02-04 17:56:42 +0100 |
commit | c1694fb51bb29d3cbd03f679372339f9e8f29803 (patch) | |
tree | 119fdfad54221b271d980836750e2ffd2ba1460d | |
parent | 3d84818a7b8fc5ae09cc6470365e4072ef50c659 (diff) | |
download | spice-c1694fb51bb29d3cbd03f679372339f9e8f29803.tar.gz spice-c1694fb51bb29d3cbd03f679372339f9e8f29803.tar.xz spice-c1694fb51bb29d3cbd03f679372339f9e8f29803.zip |
Remove headers that were moved to spice-protocol
-rw-r--r-- | common/draw.h | 406 | ||||
-rw-r--r-- | common/ipc_ring.h | 135 | ||||
-rw-r--r-- | common/qxl_dev.h | 372 | ||||
-rw-r--r-- | common/red.h | 840 | ||||
-rw-r--r-- | common/red_error_codes.h | 51 | ||||
-rw-r--r-- | common/reds_stat.h | 68 | ||||
-rw-r--r-- | common/vd_agent.h | 109 | ||||
-rw-r--r-- | common/vdi_dev.h | 97 |
8 files changed, 0 insertions, 2078 deletions
diff --git a/common/draw.h b/common/draw.h deleted file mode 100644 index e277b2d9..00000000 --- a/common/draw.h +++ /dev/null @@ -1,406 +0,0 @@ -/* - Copyright (C) 2009 Red Hat, Inc. - - Redistribution and use in source and binary forms, with or without - modification, 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. - * 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 the copyright holder 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 COPYRIGHT HOLDER 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 COPYRIGHT - HOLDER 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. -*/ - -#ifndef _H_DRAW -#define _H_DRAW - -#ifndef _WIN32 -#include <stdint.h> -#endif - -#ifdef __GNUC__ -#define ATTR_PACKED __attribute__ ((__packed__)) -typedef uint64_t UINT64; -typedef uint32_t UINT32; -typedef uint16_t UINT16; -typedef uint8_t UINT8; - -typedef int16_t INT16; -typedef int32_t INT32; -#else -#include <basetsd.h> -#pragma pack(push) -#pragma pack(1) -#define ATTR_PACKED -#pragma warning(disable:4200) -#endif - -#ifdef _WIN32_WCE -#include <stdint.h> -typedef uint64_t UINT64; -typedef uint32_t UINT32; -typedef uint16_t UINT16; -typedef uint8_t UINT8; - -typedef int16_t INT16; -typedef int32_t INT32; -#endif - -#define GET_ADDRESS(addr) ((void *)(unsigned long)(addr)) -#define SET_ADDRESS(addr, val) ((addr) = (unsigned long)(val)) - -typedef INT32 FIXED28_4; -typedef UINT64 ADDRESS; - -enum { - PATH_BEGIN = (1 << 0), - PATH_END = (1 << 1), - PATH_CLOSE = (1 << 3), - PATH_BEZIER = (1 << 4), -}; - -enum { - LINE_ATTR_STARTGAP = (1 << 2), - LINE_ATTR_STYLED = (1 << 3), -}; - -typedef struct ATTR_PACKED PointFix { - FIXED28_4 x; - FIXED28_4 y; -} PointFix; - -typedef struct ATTR_PACKED Point { - INT32 x; - INT32 y; -} Point; - -typedef struct ATTR_PACKED Point16 { - INT16 x; - INT16 y; -} Point16; - -typedef struct ATTR_PACKED Rect { - INT32 top; - INT32 left; - INT32 bottom; - INT32 right; -} Rect; - -typedef struct ATTR_PACKED PathSeg { - UINT32 flags; - UINT32 count; - UINT8 data[0]; -} PathSeg; - -enum ClipType { - CLIP_TYPE_NONE, - CLIP_TYPE_RECTS, - CLIP_TYPE_PATH, -}; - -typedef struct ATTR_PACKED Clip { - UINT32 type; - ADDRESS data; -} Clip; - -enum ROPDescriptor { - ROPD_INVERS_SRC = (1 << 0), - ROPD_INVERS_BRUSH = (1 << 1), - ROPD_INVERS_DEST = (1 << 2), - ROPD_OP_PUT = (1 << 3), - ROPD_OP_OR = (1 << 4), - ROPD_OP_AND = (1 << 5), - ROPD_OP_XOR = (1 << 6), - ROPD_OP_BLACKNESS = (1 << 7), - ROPD_OP_WHITENESS = (1 << 8), - ROPD_OP_INVERS = (1 << 9), - ROPD_INVERS_RES = (1 << 10), -}; - -typedef struct ATTR_PACKED Pattern { - ADDRESS pat; - Point pos; -} Pattern; - -enum { - BRUSH_TYPE_NONE, - BRUSH_TYPE_SOLID, - BRUSH_TYPE_PATTERN, -}; - -typedef struct ATTR_PACKED Brush { - UINT32 type; - union { - UINT32 color; - Pattern pattern; - } u; -} Brush; - -enum { - MASK_INVERS = (1 << 0), -}; - -typedef struct ATTR_PACKED QMask { - UINT8 flags; - Point pos; - ADDRESS bitmap; -} QMask; - -typedef struct ATTR_PACKED Fill { - Brush brush; - UINT16 rop_decriptor; - QMask mask; -} Fill; - -typedef struct ATTR_PACKED Palette { - UINT64 unique; - UINT16 num_ents; - UINT32 ents[0]; -} Palette; - -enum { - IMAGE_TYPE_BITMAP, - IMAGE_TYPE_QUIC, - IMAGE_TYPE_RESERVED, - IMAGE_TYPE_LZ_PLT = 100, - IMAGE_TYPE_LZ_RGB, - IMAGE_TYPE_GLZ_RGB, - IMAGE_TYPE_FROM_CACHE, -}; - -enum { - IMAGE_CACHE_ME = (1 << 0), -}; - -typedef struct ATTR_PACKED ImageDescriptor { - UINT64 id; - UINT8 type; - UINT8 flags; - UINT32 width; - UINT32 height; -} ImageDescriptor; - -enum { - BITMAP_FMT_INVALID, - BITMAP_FMT_1BIT_LE, - BITMAP_FMT_1BIT_BE, - BITMAP_FMT_4BIT_LE, - BITMAP_FMT_4BIT_BE, - BITMAP_FMT_8BIT, - BITMAP_FMT_16BIT, - BITMAP_FMT_24BIT, - BITMAP_FMT_32BIT, - BITMAP_FMT_RGBA, -}; - -enum { - BITMAP_PAL_CACHE_ME = (1 << 0), - BITMAP_PAL_FROM_CACHE = (1 << 1), - BITMAP_TOP_DOWN = (1 << 2), -}; - -typedef struct ATTR_PACKED Bitmap { - UINT8 format; - UINT8 flags; - UINT32 x; - UINT32 y; - UINT32 stride; - ADDRESS palette; - ADDRESS data; //data[0] ? -} Bitmap; - -typedef struct ATTR_PACKED BitmapImage { - ImageDescriptor descriptor; - Bitmap bitmap; -} BitmapImage; - -typedef struct ATTR_PACKED QUICData { - UINT32 data_size; - UINT8 data[0]; -} QUICData, LZ_RGBData; - -typedef struct ATTR_PACKED QUICImage { - ImageDescriptor descriptor; - QUICData quic; -} QUICImage; - -typedef struct ATTR_PACKED LZ_RGBImage { - ImageDescriptor descriptor; - LZ_RGBData lz_rgb; -} LZ_RGBImage; - -typedef struct ATTR_PACKED LZ_PLTData { - UINT8 flags; - UINT32 data_size; - ADDRESS palette; - UINT8 data[0]; -} LZ_PLTData; - -typedef struct ATTR_PACKED LZ_PLTImage { - ImageDescriptor descriptor; - LZ_PLTData lz_plt; -} LZ_PLTImage; - -enum { - IMAGE_SCALE_INTERPOLATE, - IMAGE_SCALE_NEAREST, -}; - -typedef struct ATTR_PACKED Opaque { - ADDRESS src_bitmap; - Rect src_area; - Brush brush; - UINT16 rop_decriptor; - UINT8 scale_mode; - QMask mask; -} Opaque; - -typedef struct ATTR_PACKED Copy { - ADDRESS src_bitmap; - Rect src_area; - UINT16 rop_decriptor; - UINT8 scale_mode; - QMask mask; -} Copy, Blend; - -typedef struct ATTR_PACKED Transparent { - ADDRESS src_bitmap; - Rect src_area; - UINT32 src_color; - UINT32 true_color; -} Transparent; - -typedef struct ATTR_PACKED AlphaBlnd { - UINT8 alpha; - ADDRESS src_bitmap; - Rect src_area; -} AlphaBlnd; - -typedef struct ATTR_PACKED Rop3 { - ADDRESS src_bitmap; - Rect src_area; - Brush brush; - UINT8 rop3; - UINT8 scale_mode; - QMask mask; -} Rop3; - -typedef struct ATTR_PACKED Blackness { - QMask mask; -} Blackness, Invers, Whiteness; - -enum { - LINE_STYLED = (1 << 3), - LINE_START_WITH_GAP = (1 << 2), -}; - -enum { - LINE_CAP_ROUND, - LINE_CAP_SQUARE, - LINE_CAP_BUTT, -}; - -enum { - LINE_JOIN_ROUND, - LINE_JOIN_BEVEL, - LINE_JOIN_MITER, -}; - -typedef struct ATTR_PACKED LineAttr { - UINT8 flags; - UINT8 join_style; - UINT8 end_style; - UINT8 style_nseg; - FIXED28_4 width; - FIXED28_4 miter_limit; - ADDRESS style; //data[0] ? -} LineAttr; - -typedef struct ATTR_PACKED Stroke { - ADDRESS path; - LineAttr attr; - Brush brush; - UINT16 fore_mode; - UINT16 back_mode; -} Stroke; - -typedef struct ATTR_PACKED RasterGlyph { - Point render_pos; - Point glyph_origin; - UINT16 width; - UINT16 height; - UINT8 data[0]; -} RasterGlyph; - -typedef struct ATTR_PACKED VectotGlyph { - Point render_pos; - UINT32 data_size; - UINT8 data[0]; //PathSeg[] -} VectotGlyph; - -enum { - STRING_RASTER_A1 = 1 << 0, - STRING_RASTER_A4 = 1 << 1, - STRING_RASTER_A8 = 1 << 2, - STRING_RASTER_TOP_DOWN = 1 << 3, -}; - -typedef struct ATTR_PACKED String { - UINT16 length; - UINT16 flags; - UINT8 data[0]; -} String; - -typedef struct ATTR_PACKED Text { - ADDRESS str; - Rect back_area; - Brush fore_brush; - Brush back_brush; - UINT16 fore_mode; - UINT16 back_mode; -} Text; - -enum { - CURSOR_TYPE_ALPHA, - CURSOR_TYPE_MONO, - CURSOR_TYPE_COLOR4, - CURSOR_TYPE_COLOR8, - CURSOR_TYPE_COLOR16, - CURSOR_TYPE_COLOR24, - CURSOR_TYPE_COLOR32, -}; - -typedef struct ATTR_PACKED CursorHeader { - UINT64 unique; - UINT16 type; - UINT16 width; - UINT16 height; - UINT16 hot_spot_x; - UINT16 hot_spot_y; -} CursorHeader; - - -#ifndef __GNUC__ -#pragma pack(pop) -#endif - -#undef ATTR_PACKED - -#endif diff --git a/common/ipc_ring.h b/common/ipc_ring.h deleted file mode 100644 index 1d9b3e1e..00000000 --- a/common/ipc_ring.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - Copyright (C) 2009 Red Hat, Inc. - - Redistribution and use in source and binary forms, with or without - modification, 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. - * 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 the copyright holder 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 COPYRIGHT HOLDER 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 COPYRIGHT - HOLDER 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. -*/ - - -#ifndef _H_RING_ -#define _H_RING_ - - -#define MSB_MASK4(x) \ - (((x) & 0x8) ? 0x8 : \ - ((x) & 0x4) ? 0x4 : \ - ((x) & 0x2) ? 0x2 : \ - ((x) & 0x1) ? 0x1 : 0) - -#define MSB_MASK8(x) \ - (((x) & 0xf0) ? MSB_MASK4((x) >> 4) << 4 : MSB_MASK4(x)) - -#define MSB_MASK16(x) \ - (((x) & 0xff00) ? MSB_MASK8((x) >> 8) << 8 : MSB_MASK8(x)) - -#define MSB_MASK(x) \ - (((x) & 0xffff0000) ? MSB_MASK16((x) >> 16) << 16 : MSB_MASK16(x)) - -#define POWER2_ALIGN(x) MSB_MASK((x) * 2 - 1) - - -#define _TOSHIFT_4(x) \ - (((x) & 0x8) ? 3 : \ - ((x) & 0x4) ? 2 : \ - ((x) & 0x2) ? 1 : 0) - -#define _TOSHIFT_8(x) \ - (((x) & 0xf0) ? _TOSHIFT_4((x) >> 4) + 4 : _TOSHIFT_4(x)) - -#define _TOSHIFT_16(x) \ - (((x) & 0xff00) ? _TOSHIFT_8((x) >> 8) + 8 : _TOSHIFT_8(x)) - -#define PAWER2_TO_SHIFT(x) \ - (((x) & 0xffff0000) ? _TOSHIFT_16((x) >> 16) + 16 : _TOSHIFT_16(x)) - - - -#define RING_DECLARE(name, el_type, size) \ -typedef struct ATTR_PACKED name##_ring_el { \ - union { \ - el_type el; \ - UINT8 data[POWER2_ALIGN(sizeof(el_type))]; \ - } ; \ -} name##_ring_el; \ - \ -typedef struct ATTR_PACKED name { \ - UINT32 num_items; \ - UINT32 prod; \ - UINT32 notify_on_prod; \ - UINT32 cons; \ - UINT32 notify_on_cons; \ - name##_ring_el items[POWER2_ALIGN(size)]; \ -} name; - - -#define RING_INIT(r) \ - (r)->num_items = sizeof((r)->items) >> \ - PAWER2_TO_SHIFT(sizeof((r)->items[0])); \ - (r)->prod = (r)->cons = 0; \ - (r)->notify_on_prod = 1; \ - (r)->notify_on_cons = 0; - - -#define RING_INDEX_MASK(r) ((r)->num_items - 1) - -#define RING_IS_PACKED(r) (sizeof((r)->items[0]) == sizeof((r)->items[0]).el) - -#define RING_IS_EMPTY(r) ((r)->cons == (r)->prod) - -#define RING_IS_FULL(r) (((r)->prod - (r)->cons) == (r)->num_items) - -#define RING_PROD_ITEM(r) (&(r)->items[(r)->prod & RING_INDEX_MASK(r)].el) - -#define RING_PROD_WAIT(r, wait) \ - if (((wait) = RING_IS_FULL(r))) { \ - (r)->notify_on_cons = (r)->cons + 1; \ - mb(); \ - (wait) = RING_IS_FULL(r); \ - } - -#define RING_PUSH(r, notify) \ - (r)->prod++; \ - mb(); \ - (notify) = (r)->prod == (r)->notify_on_prod; - - -#define RING_CONS_ITEM(r) (&(r)->items[(r)->cons & RING_INDEX_MASK(r)].el) - -#define RING_CONS_WAIT(r, wait) \ - if (((wait) = RING_IS_EMPTY(r))) { \ - (r)->notify_on_prod = (r)->prod + 1; \ - mb(); \ - (wait) = RING_IS_EMPTY(r); \ - } - -#define RING_POP(r, notify) \ - (r)->cons++; \ - mb(); \ - (notify) = (r)->cons == (r)->notify_on_cons; - - - -#endif diff --git a/common/qxl_dev.h b/common/qxl_dev.h deleted file mode 100644 index 048315de..00000000 --- a/common/qxl_dev.h +++ /dev/null @@ -1,372 +0,0 @@ -/* - Copyright (C) 2009 Red Hat, Inc. - - Redistribution and use in source and binary forms, with or without - modification, 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. - * 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 the copyright holder 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 COPYRIGHT HOLDER 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 COPYRIGHT - HOLDER 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. -*/ - - -#ifndef _H_QXL_DEV -#define _H_QXL_DEV - -#include "ipc_ring.h" -#include "draw.h" - -#ifdef __GNUC__ -#ifdef __i386__ -#define mb() __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory") -#else -//mfence -#define mb() __asm__ __volatile__ ("lock; addl $0,0(%%rsp)": : :"memory") -#endif -#define ATTR_PACKED __attribute__ ((__packed__)) -#else -#pragma pack(push) -#pragma pack(1) -#define ATTR_PACKED -#define mb() __asm {lock add [esp], 0} -#endif - -#define REDHAT_PCI_VENDOR_ID 0x1b36 -#define QXL_DEVICE_ID 0x0100 /* 0x100-0x11f reserved for spice */ -#define QXL_REVISION 0x03 - -#define QXL_ROM_MAGIC (*(UINT32*)"QXRO") -#define QXL_RAM_MAGIC (*(UINT32*)"QXRA") - -enum { - QXL_RAM_RANGE_INDEX, - QXL_VRAM_RANGE_INDEX, - QXL_ROM_RANGE_INDEX, - QXL_IO_RANGE_INDEX, - - QXL_PCI_RANGES -}; - -enum { - QXL_IO_NOTIFY_CMD, - QXL_IO_NOTIFY_CURSOR, - QXL_IO_UPDATE_AREA, - QXL_IO_UPDATE_IRQ, - QXL_IO_NOTIFY_OOM, - QXL_IO_RESET, - QXL_IO_LOG, - QXL_IO_MEMSLOT_ADD, - QXL_IO_MEMSLOT_DEL, - QXL_IO_DETACH_PRIMARY, - QXL_IO_ATTACH_PRIMARY, - QXL_IO_CREATE_PRIMARY, - QXL_IO_DESTROY_PRIMARY, - QXL_IO_DESTROY_SURFACE_WAIT, - - QXL_IO_RANGE_SIZE -}; - -typedef struct ATTR_PACKED QXLRom { - UINT32 magic; - UINT32 id; - UINT32 update_id; - UINT32 compression_level; - UINT32 log_level; - UINT32 modes_offset; - UINT32 num_pages; - UINT32 surface0_area_size; - UINT32 ram_header_offset; - UINT32 mm_clock; - UINT64 flags; - UINT8 slots_start; - UINT8 slots_end; - UINT8 slot_gen_bits; - UINT8 slot_id_bits; - UINT8 slot_generation; -} QXLRom; - -typedef struct ATTR_PACKED QXLMode { - UINT32 id; - UINT32 x_res; - UINT32 y_res; - UINT32 bits; - UINT32 stride; - UINT32 x_mili; - UINT32 y_mili; - UINT32 orientation; -} QXLMode; - -typedef struct ATTR_PACKED QXLModes { - UINT32 n_modes; - QXLMode modes[0]; -} QXLModes; - -typedef UINT64 PHYSICAL; -typedef UINT32 QXLFIXED; //fixed 28.4 - -enum QXLCmdType { - QXL_CMD_NOP, - QXL_CMD_DRAW, - QXL_CMD_UPDATE, - QXL_CMD_CURSOR, - QXL_CMD_MESSAGE, -}; - -typedef struct ATTR_PACKED QXLCommand { - PHYSICAL data; - UINT32 type; - UINT32 ped; -} QXLCommand; - -typedef struct ATTR_PACKED QXLCommandExt { - QXLCommand cmd; - UINT32 group_id; -} QXLCommandExt; - -typedef struct ATTR_PACKED QXLMemSlot { - UINT64 mem_start; - UINT64 mem_end; -} QXLMemSlot; - -#define QXL_SURF_TYPE_PRIMARY 0 - -typedef struct ATTR_PACKED QXLSurfaceCreate { - UINT32 width; - UINT32 height; - INT32 stride; - UINT32 depth; - UINT32 position; - UINT32 mouse_mode; - UINT32 flags; - UINT32 type; - PHYSICAL mem; -} QXLSurfaceCreate; - -RING_DECLARE(QXLCommandRing, QXLCommand, 32); -RING_DECLARE(QXLCursorRing, QXLCommand, 32); - -RING_DECLARE(QXLReleaseRing, UINT64, 8); - -#define QXL_LOG_BUF_SIZE 4096 - -#define QXL_INTERRUPT_DISPLAY (1 << 0) -#define QXL_INTERRUPT_CURSOR (1 << 1) - -typedef struct ATTR_PACKED QXLRam { - UINT32 magic; - UINT32 int_pending; - UINT32 int_mask; - UINT8 log_buf[QXL_LOG_BUF_SIZE]; - QXLCommandRing cmd_ring; - QXLCursorRing cursor_ring; - QXLReleaseRing release_ring; - Rect update_area; - QXLMemSlot mem_slot; - QXLSurfaceCreate create_surface; - UINT64 flags; -} QXLRam; - -typedef union QXLReleaseInfo { - UINT64 id; // in - UINT64 next; // out -} QXLReleaseInfo; - -typedef struct QXLReleaseInfoExt { - QXLReleaseInfo *info; - UINT32 group_id; -} QXLReleaseInfoExt; - -typedef struct ATTR_PACKED QXLDataChunk { - UINT32 data_size; - PHYSICAL prev_chunk; - PHYSICAL next_chunk; - UINT8 data[0]; -} QXLDataChunk; - -typedef struct ATTR_PACKED QXLMessage { - QXLReleaseInfo release_info; - UINT8 data[0]; -} QXLMessage; - -typedef struct ATTR_PACKED QXLUpdateCmd { - QXLReleaseInfo release_info; - Rect area; - UINT32 update_id; -} QXLUpdateCmd; - -typedef struct ATTR_PACKED QXLCursor { - CursorHeader header; - UINT32 data_size; - QXLDataChunk chunk; -} QXLCursor; - -enum { - QXL_CURSOR_SET, - QXL_CURSOR_MOVE, - QXL_CURSOR_HIDE, - QXL_CURSOR_TRAIL, -}; - -#define QXL_CURSUR_DEVICE_DATA_SIZE 128 - -typedef struct ATTR_PACKED QXLCursorCmd { - QXLReleaseInfo release_info; - UINT8 type; - union { - struct ATTR_PACKED { - Point16 position; - UINT8 visible; - PHYSICAL shape; - } set; - struct ATTR_PACKED { - UINT16 length; - UINT16 frequency; - } trail; - Point16 position; - } u; - UINT8 device_data[QXL_CURSUR_DEVICE_DATA_SIZE]; //todo: dynamic size from rom -} QXLCursorCmd; - -enum { - QXL_DRAW_NOP, - QXL_DRAW_FILL, - QXL_DRAW_OPAQUE, - QXL_DRAW_COPY, - QXL_COPY_BITS, - QXL_DRAW_BLEND, - QXL_DRAW_BLACKNESS, - QXL_DRAW_WHITENESS, - QXL_DRAW_INVERS, - QXL_DRAW_ROP3, - QXL_DRAW_STROKE, - QXL_DRAW_TEXT, - QXL_DRAW_TRANSPARENT, - QXL_DRAW_ALPHA_BLEND, -}; - -typedef struct ATTR_PACKED QXLString { - UINT32 data_size; - UINT16 length; - UINT16 flags; - QXLDataChunk chunk; -} QXLString; - -typedef struct ATTR_PACKED QXLCopyBits { - Point src_pos; -} QXLCopyBits; - -#define QXL_EFFECT_BLEND 0 -#define QXL_EFFECT_OPAQUE 1 -#define QXL_EFFECT_REVERT_ON_DUP 2 -#define QXL_EFFECT_BLACKNESS_ON_DUP 3 -#define QXL_EFFECT_WHITENESS_ON_DUP 4 -#define QXL_EFFECT_NOP_ON_DUP 5 -#define QXL_EFFECT_NOP 6 -#define QXL_EFFECT_OPAQUE_BRUSH 7 - -typedef struct ATTR_PACKED QXLDrawable { - QXLReleaseInfo release_info; - UINT8 effect; - UINT8 type; - UINT8 self_bitmap; - Rect self_bitmap_area; - Rect bbox; - Clip clip; - UINT32 mm_time; - union { - Fill fill; - Opaque opaque; - Copy copy; - Transparent transparent; - AlphaBlnd alpha_blend; - QXLCopyBits copy_bits; - Blend blend; - Rop3 rop3; - Stroke stroke; - Text text; - Blackness blackness; - Invers invers; - Whiteness whiteness; - } u; -} QXLDrawable; - -typedef struct ATTR_PACKED QXLClipRects { - UINT32 num_rects; - QXLDataChunk chunk; -} QXLClipRects; - -enum { - QXL_PATH_BEGIN = (1 << 0), - QXL_PATH_END = (1 << 1), - QXL_PATH_CLOSE = (1 << 3), - QXL_PATH_BEZIER = (1 << 4), -}; - -typedef struct ATTR_PACKED QXLPath { - UINT32 data_size; - QXLDataChunk chunk; -} QXLPath; - -enum { - QXL_IMAGE_GROUP_DRIVER, - QXL_IMAGE_GROUP_DEVICE, - QXL_IMAGE_GROUP_RED, - QXL_IMAGE_GROUP_DRIVER_DONT_CACHE, -}; - -typedef struct ATTR_PACKED QXLImageID { - UINT32 group; - UINT32 unique; -} QXLImageID; - -enum { - QXL_IMAGE_CACHE = (1 << 0), -}; - -enum { - QXL_BITMAP_DIRECT = (1 << 0), - QXL_BITMAP_UNSTABLE = (1 << 1), - QXL_BITMAP_TOP_DOWN = (1 << 2), // == BITMAP_TOP_DOWN -}; - -#define QXL_SET_IMAGE_ID(image, _group, _unique) { \ - UINT64* id_ptr = &(image)->descriptor.id; \ - QXLImageID *image_id = (QXLImageID *)id_ptr; \ - image_id->group = _group; \ - image_id->unique = _unique; \ -} - -typedef struct ATTR_PACKED QXLImage { - ImageDescriptor descriptor; - union { // variable length - Bitmap bitmap; - QUICData quic; - }; -} QXLImage; - -#ifndef __GNUC__ -#pragma pack(pop) -#endif - -#undef ATTR_PACKED - -#endif diff --git a/common/red.h b/common/red.h deleted file mode 100644 index 22c0ec65..00000000 --- a/common/red.h +++ /dev/null @@ -1,840 +0,0 @@ -/* - Copyright (C) 2009 Red Hat, Inc. - - Redistribution and use in source and binary forms, with or without - modification, 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. - * 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 the copyright holder 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 COPYRIGHT HOLDER 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 COPYRIGHT - HOLDER 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. -*/ - -#ifndef _H_RED -#define _H_RED - -#include <stdint.h> -#ifdef _WIN32 -#include <basetsd.h> -#endif -#include "draw.h" -#ifdef __GNUC__ -#define ATTR_PACKED __attribute__ ((__packed__)) -#else -#pragma pack(push) -#pragma pack(1) -#define ATTR_PACKED -#endif - -#define RED_MAGIC (*(uint32_t*)"REDQ") -#define RED_VERSION_MAJOR (~(uint32_t)0 - 1) -#define RED_VERSION_MINOR 2 - -// Encryption & Ticketing Parameters -#define RED_MAX_PASSWORD_LENGTH 60 -#define RED_TICKET_KEY_PAIR_LENGTH 1024 -#define RED_TICKET_PUBKEY_BYTES (RED_TICKET_KEY_PAIR_LENGTH / 8 + 34) - -enum { - RED_CHANNEL_MAIN = 1, - RED_CHANNEL_DISPLAY, - RED_CHANNEL_INPUTS, - RED_CHANNEL_CURSOR, - RED_CHANNEL_PLAYBACK, - RED_CHANNEL_RECORD, - RED_CHANNEL_TUNNEL, - - RED_CHANNEL_END -}; - -enum { - RED_ERR_OK, - RED_ERR_ERROR, - RED_ERR_INVALID_MAGIC, - RED_ERR_INVALID_DATA, - RED_ERR_VERSION_MISMATCH, - RED_ERR_NEED_SECURED, - RED_ERR_NEED_UNSECURED, - RED_ERR_PERMISSION_DENIED, - RED_ERR_BAD_CONNECTION_ID, - RED_ERR_CHANNEL_NOT_AVAILABLE, -}; - -enum { - RED_WARN_GENERAL, -}; - -enum { - RED_INFO_GENERAL, -}; - -typedef struct ATTR_PACKED RedLinkHeader { - uint32_t magic; - uint32_t major_version; - uint32_t minor_version; - uint32_t size; -} RedLinkHeader; - -typedef struct ATTR_PACKED RedLinkMess { - uint32_t connection_id; - uint8_t channel_type; - uint8_t channel_id; - uint32_t num_common_caps; - uint32_t num_channel_caps; - uint32_t caps_offset; -} RedLinkMess; - -typedef struct ATTR_PACKED RedLinkReply { - uint32_t error; - uint8_t pub_key[RED_TICKET_PUBKEY_BYTES]; - uint32_t num_common_caps; - uint32_t num_channel_caps; - uint32_t caps_offset; -} RedLinkReply; - -typedef struct ATTR_PACKED RedLinkEncryptedTicket { - uint8_t encrypted_data[RED_TICKET_KEY_PAIR_LENGTH / 8]; -} RedLinkEncryptedTicket; - -typedef struct ATTR_PACKED RedDataHeader { - uint64_t serial; - uint16_t type; - uint32_t size; - uint32_t sub_list; //offset to RedSubMessageList[] -} RedDataHeader; - -typedef struct ATTR_PACKED RedSubMessage { - uint16_t type; - uint32_t size; -} RedSubMessage; - -typedef struct ATTR_PACKED RedSubMessageList { - uint16_t size; - uint32_t sub_messages[0]; //offsets to RedSubMessage -} RedSubMessageList; - -enum { - RED_MIGRATE = 1, - RED_MIGRATE_DATA, - RED_SET_ACK, - RED_PING, - RED_WAIT_FOR_CHANNELS, - RED_DISCONNECTING, - RED_NOTIFY, - - RED_FIRST_AVAIL_MESSAGE = 101 -}; - -enum { - REDC_ACK_SYNC = 1, - REDC_ACK, - REDC_PONG, - REDC_MIGRATE_FLUSH_MARK, - REDC_MIGRATE_DATA, - REDC_DISCONNECTING, - - REDC_FIRST_AVAIL_MESSAGE = 101, -}; - -enum { - RED_MIGRATE_BEGIN = RED_FIRST_AVAIL_MESSAGE, - RED_MIGRATE_CANCEL, - RED_INIT, - RED_CHANNELS_LIST, - RED_MOUSE_MODE, - RED_MULTI_MEDIA_TIME, - - RED_AGENT_CONNECTED, - RED_AGENT_DISCONNECTED, - RED_AGENT_DATA, - RED_AGENT_TOKEN, - - RED_MESSAGES_END, -}; - -enum { - REDC_CLIENT_INFO = REDC_FIRST_AVAIL_MESSAGE, - REDC_MIGRATE_CONNECTED, - REDC_MIGRATE_CONNECT_ERROR, - REDC_ATTACH_CHANNELS, - REDC_MOUSE_MODE_REQUEST, - - REDC_AGENT_START, - REDC_AGENT_DATA, - REDC_AGENT_TOKEN, -}; - -#define RED_MOTION_ACK_BUNCH 4 - -enum { - RED_INPUTS_INIT = RED_FIRST_AVAIL_MESSAGE, - RED_INPUTS_KEY_MODIFAIERS, - - RED_INPUTS_MOUSE_MOTION_ACK = RED_FIRST_AVAIL_MESSAGE + 10, - - RED_INPUTS_MESSAGES_END, -}; - -#define RED_SCROLL_LOCK_MODIFIER (1 << 0) -#define RED_NUM_LOCK_MODIFIER (1 << 1) -#define RED_CAPS_LOCK_MODIFIER (1 << 2) - -typedef struct ATTR_PACKED RedInputsInit { - uint32_t keyboard_modifiers; -} RedInputsInit; - -typedef struct ATTR_PACKED RedKeyModifiers { - uint32_t modifiers; -} RedKeyModifiers; - -typedef struct ATTR_PACKED RedMultiMediaTime { - uint32_t time; -} RedMultiMediaTime; - -enum { - RED_PUBKEY_TYPE_INVALID, - RED_PUBKEY_TYPE_RSA, - RED_PUBKEY_TYPE_RSA2, - RED_PUBKEY_TYPE_DSA, - RED_PUBKEY_TYPE_DSA1, - RED_PUBKEY_TYPE_DSA2, - RED_PUBKEY_TYPE_DSA3, - RED_PUBKEY_TYPE_DSA4, - RED_PUBKEY_TYPE_DH, - RED_PUBKEY_TYPE_EC, -}; - -typedef struct ATTR_PACKED RedMigrationBegin { - uint16_t port; - uint16_t sport; - uint32_t host_offset; - uint32_t host_size; - uint16_t pub_key_type; - uint32_t pub_key_offset; - uint32_t pub_key_size; -} RedMigrationBegin; - -enum { - RED_MIGRATE_NEED_FLUSH = (1 << 0), - RED_MIGRATE_NEED_DATA_TRANSFER = (1 << 1), -}; - -typedef struct ATTR_PACKED RedMigrate { - uint32_t flags; -} RedMigrate; - -enum { - RED_RES_TYPE_INVALID, - RED_RES_TYPE_PIXMAP, -}; - -typedef struct ATTR_PACKED RedResorceID { - uint8_t type; - uint64_t id; -} RedResorceID; - -typedef struct ATTR_PACKED RedResorceList { - uint16_t count; - RedResorceID resorces[0]; -} RedResorceList; - -typedef struct ATTR_PACKED RedSetAck { - uint32_t generation; - uint32_t window; -} RedSetAck; - -typedef struct ATTR_PACKED RedWaitForChannel { - uint8_t channel_type; - uint8_t channel_id; - uint64_t message_serial; -} RedWaitForChannel; - -typedef struct ATTR_PACKED RedWaitForChannels { - uint8_t wait_count; - RedWaitForChannel wait_list[0]; -} RedWaitForChannels; - -typedef struct ATTR_PACKED RedChannelInit { - uint8_t type; - uint8_t id; -} RedChannelInit; - -typedef struct ATTR_PACKED RedInit { - uint32_t session_id; - uint32_t display_channels_hint; - uint32_t supported_mouse_modes; - uint32_t current_mouse_mode; - uint32_t agent_connected; - uint32_t agent_tokens; - uint32_t multi_media_time; - uint32_t ram_hint; -} RedInit; - -typedef struct ATTR_PACKED RedDisconnect { - uint64_t time_stamp; - uint32_t reason; // RED_ERR_? -} RedDisconnect; - -enum { - RED_NOTIFY_SEVERITY_INFO, - RED_NOTIFY_SEVERITY_WARN, - RED_NOTIFY_SEVERITY_ERROR, -}; - -enum { - RED_NOTIFY_VISIBILITY_LOW, - RED_NOTIFY_VISIBILITY_MEDIUM, - RED_NOTIFY_VISIBILITY_HIGH, -}; - -typedef struct ATTR_PACKED RedNotify { - uint64_t time_stamp; - uint32_t severty; - uint32_t visibilty; - uint32_t what; - uint32_t message_len; - uint8_t message[0]; -} RedNotify; - -typedef struct ATTR_PACKED RedChannels { - uint32_t num_of_channels; - RedChannelInit channels[0]; -} RedChannels; - -typedef struct ATTR_PACKED RedMouseMode { - uint32_t supported_modes; - uint32_t current_mode; -} RedMouseMode; - -typedef struct ATTR_PACKED RedPing { - uint32_t id; - uint64_t timestamp; -} RedPing; - -typedef struct ATTR_PACKED RedAgentDisconnect { - uint32_t error_code; // RED_ERR_? -} RedAgentDisconnect; - -#define RED_AGENT_MAX_DATA_SIZE 2048 - -typedef struct ATTR_PACKED RedAgentTokens { - uint32_t num_tokens; -} RedAgentTokens, RedcAgentTokens, RedcAgentStart; - -typedef struct ATTR_PACKED RedcClientInfo { - uint64_t cache_size; -} RedcClientInfo; - -typedef struct ATTR_PACKED RedcMouseModeRequest { - uint32_t mode; -} RedcMouseModeRequest; - -enum { - RED_DISPLAY_MODE = RED_FIRST_AVAIL_MESSAGE, - RED_DISPLAY_MARK, - RED_DISPLAY_RESET, - RED_DISPLAY_COPY_BITS, - - RED_DISPLAY_INVAL_LIST, - RED_DISPLAY_INVAL_ALL_PIXMAPS, - RED_DISPLAY_INVAL_PALETTE, - RED_DISPLAY_INVAL_ALL_PALETTES, - - RED_DISPLAY_STREAM_CREATE = RED_FIRST_AVAIL_MESSAGE + 21, - RED_DISPLAY_STREAM_DATA, - RED_DISPLAY_STREAM_CLIP, - RED_DISPLAY_STREAM_DESTROY, - RED_DISPLAY_STREAM_DESTROY_ALL, - - RED_DISPLAY_DRAW_FILL = RED_FIRST_AVAIL_MESSAGE + 201, - RED_DISPLAY_DRAW_OPAQUE, - RED_DISPLAY_DRAW_COPY, - RED_DISPLAY_DRAW_BLEND, - RED_DISPLAY_DRAW_BLACKNESS, - RED_DISPLAY_DRAW_WHITENESS, - RED_DISPLAY_DRAW_INVERS, - RED_DISPLAY_DRAW_ROP3, - RED_DISPLAY_DRAW_STROKE, - RED_DISPLAY_DRAW_TEXT, - RED_DISPLAY_DRAW_TRANSPARENT, - RED_DISPLAY_DRAW_ALPHA_BLEND, - - RED_DISPLAY_MESSAGES_END, -}; - -enum { - RED_CURSOR_NONE = (1 << 0), - RED_CURSOR_CACHE_ME = (1 << 1), - RED_CURSOR_FROM_CACHE = (1 << 2), -}; - -typedef struct ATTR_PACKED RedCursor { - uint32_t flags; - CursorHeader header; - uint8_t data[0]; -} RedCursor; - -typedef struct ATTR_PACKED RedMode { - uint32_t x_res; - uint32_t y_res; - uint32_t bits; -} RedMode; - -typedef struct ATTR_PACKED RedDrawBase { - Rect box; - Clip clip; -} RedDrawBase; - -typedef struct ATTR_PACKED RedFill { - RedDrawBase base; - Fill data; -} RedFill; - -typedef struct ATTR_PACKED RedOpaque { - RedDrawBase base; - Opaque data; -} RedOpaque; - -typedef struct ATTR_PACKED RedCopy { - RedDrawBase base; - Copy data; -} RedCopy; - -typedef struct ATTR_PACKED RedTransparent { - RedDrawBase base; - Transparent data; -} RedTransparent; - -typedef struct ATTR_PACKED RedAlphaBlend { - RedDrawBase base; - AlphaBlnd data; -} RedAlphaBlend; - -typedef struct ATTR_PACKED RedCopyBits { - RedDrawBase base; - Point src_pos; -} RedCopyBits; - -typedef RedCopy RedBlend; - -typedef struct ATTR_PACKED RedRop3 { - RedDrawBase base; - Rop3 data; -} RedRop3; - -typedef struct ATTR_PACKED RedBlackness { - RedDrawBase base; - Blackness data; -} RedBlackness; - -typedef struct ATTR_PACKED RedWhiteness { - RedDrawBase base; - Whiteness data; -} RedWhiteness; - -typedef struct ATTR_PACKED RedInvers { - RedDrawBase base; - Invers data; -} RedInvers; - -typedef struct ATTR_PACKED RedStroke { - RedDrawBase base; - Stroke data; -} RedStroke; - -typedef struct ATTR_PACKED RedText { - RedDrawBase base; - Text data; -} RedText; - -typedef struct ATTR_PACKED RedInvalOne { - uint64_t id; -} RedInvalOne; - -enum { - RED_VIDEO_CODEC_TYPE_MJPEG = 1, -}; - -enum { - STREAM_TOP_DOWN = (1 << 0), -}; - -typedef struct ATTR_PACKED RedStreamCreate { - uint32_t id; - uint32_t flags; - uint32_t codec_type; - uint64_t stamp; - uint32_t stream_width; - uint32_t stream_height; - uint32_t src_width; - uint32_t src_height; - Rect dest; - Clip clip; -} RedStreamCreate; - -typedef struct ATTR_PACKED RedStreamData { - uint32_t id; - uint32_t multi_media_time; - uint32_t data_size; - uint32_t ped_size; - uint8_t data[0]; -} RedStreamData; - -typedef struct ATTR_PACKED RedStreamClip { - uint32_t id; - Clip clip; -} RedStreamClip; - -typedef struct ATTR_PACKED RedStreamDestroy { - uint32_t id; -} RedStreamDestroy; - -enum { - RED_CURSOR_INIT = RED_FIRST_AVAIL_MESSAGE, - RED_CURSOR_RESET, - RED_CURSOR_SET, - RED_CURSOR_MOVE, - RED_CURSOR_HIDE, - RED_CURSOR_TRAIL, - RED_CURSOR_INVAL_ONE, - RED_CURSOR_INVAL_ALL, - - RED_CURSOR_MESSAGES_END, -}; - -typedef struct ATTR_PACKED RedCursorInit { - Point16 position; - uint16_t trail_length; - uint16_t trail_frequency; - uint8_t visible; - RedCursor cursor; -} RedCursorInit; - -typedef struct ATTR_PACKED RedCursorSet { - Point16 postition; - uint8_t visible; - RedCursor cursor; -} RedCursorSet; - -typedef struct ATTR_PACKED RedCursorMove { - Point16 postition; -} RedCursorMove; - -typedef struct ATTR_PACKED RedCursorTrail { - uint16_t length; - uint16_t frequency; -} RedCursorTrail; - -enum { - REDC_DISPLAY_INIT = REDC_FIRST_AVAIL_MESSAGE, - - REDC_DISPLAY_MESSGES_END, -}; - -typedef struct ATTR_PACKED RedcDisplayInit { - uint8_t pixmap_cache_id; - int64_t pixmap_cache_size; //in pixels - uint8_t glz_dictionary_id; - int glz_dictionary_window_size; // in pixels -} RedcDisplayInit; - -enum { - REDC_INPUTS_KEY_DOWN = REDC_FIRST_AVAIL_MESSAGE, - REDC_INPUTS_KEY_UP, - REDC_INPUTS_KEY_MODIFAIERS, - - REDC_INPUTS_MOUSE_MOTION = REDC_FIRST_AVAIL_MESSAGE + 10, - REDC_INPUTS_MOUSE_POSITION, - REDC_INPUTS_MOUSE_PRESS, - REDC_INPUTS_MOUSE_RELEASE, - - REDC_INPUTS_MESSGES_END, -}; - -typedef struct ATTR_PACKED RedcKeyDown { - uint32_t code; -} RedcKeyDown; - -typedef struct ATTR_PACKED RedcKeyUp { - uint32_t code; -} RedcKeyUp; - -enum { - RED_MOUSE_MODE_SERVER = (1 << 0), - RED_MOUSE_MODE_CLIENT = (1 << 1), -}; - -typedef struct ATTR_PACKED RedcKeyModifiers { - uint32_t modifiers; -} RedcKeyModifiers; - -enum RedButton { - REDC_MOUSE_INVALID_BUTTON, - REDC_MOUSE_LBUTTON, - REDC_MOUSE_MBUTTON, - REDC_MOUSE_RBUTTON, - REDC_MOUSE_UBUTTON, - REDC_MOUSE_DBUTTON, -}; - -#define REDC_LBUTTON_MASK (1 << (REDC_MOUSE_LBUTTON - 1)) -#define REDC_MBUTTON_MASK (1 << (REDC_MOUSE_MBUTTON - 1)) -#define REDC_RBUTTON_MASK (1 << (REDC_MOUSE_RBUTTON - 1)) - -typedef struct ATTR_PACKED RedcMouseMotion { - int32_t dx; - int32_t dy; - uint32_t buttons_state; -} RedcMouseMotion; - -typedef struct ATTR_PACKED RedcMousePosition { - uint32_t x; - uint32_t y; - uint32_t buttons_state; - uint8_t display_id; -} RedcMousePosition; - -typedef struct ATTR_PACKED RedcMousePress { - int32_t button; - int32_t buttons_state; -} RedcMousePress; - -typedef struct ATTR_PACKED RedcMouseRelease { - int32_t button; - int32_t buttons_state; -} RedcMouseRelease; - -enum { - RED_AUDIO_FMT_INVALD, - RED_AUDIO_FMT_S16, -}; - -enum { - RED_AUDIO_DATA_MODE_INVALD, - RED_AUDIO_DATA_MODE_RAW, - RED_AUDIO_DATA_MODE_CELT_0_5_1, -}; - -enum { - RED_PLAYBACK_DATA = RED_FIRST_AVAIL_MESSAGE, - RED_PLAYBACK_MODE, - RED_PLAYBACK_START, - RED_PLAYBACK_STOP, - - RED_PLAYBACK_MESSAGES_END, -}; - -enum { - RED_PLAYBACK_CAP_CELT_0_5_1, -}; - -enum { - RED_RECORD_START = RED_FIRST_AVAIL_MESSAGE, - RED_RECORD_STOP, - - RED_RECORD_MESSAGES_END, -}; - -enum { - REDC_RECORD_DATA = RED_FIRST_AVAIL_MESSAGE, - REDC_RECORD_MODE, - REDC_RECORD_START_MARK, - - REDC_RECORD_MESSAGES_END, -}; - -enum { - RED_RECORD_CAP_CELT_0_5_1, -}; - -typedef struct ATTR_PACKED RedPlaybackMode { - uint32_t time; - uint32_t mode; //RED_AUDIO_DATA_MODE_? - uint8_t data[0]; -} RedPlaybackMode, RedcRecordMode; - -typedef struct ATTR_PACKED RedPlaybackStart { - uint32_t channels; - uint32_t format; //RED_AUDIO_FMT_? - uint32_t frequency; - uint32_t time; -} RedPlaybackStart; - -typedef struct ATTR_PACKED RedPlaybackPacket { - uint32_t time; - uint8_t data[0]; -} RedPlaybackPacket, RedcRecordPacket; - -typedef struct ATTR_PACKED RedRecordStart { - uint32_t channels; - uint32_t format; //RED_AUDIO_FMT_? - uint32_t frequency; -} RedRecordStart; - -typedef struct ATTR_PACKED RedcRecordStartMark { - uint32_t time; -} RedcRecordStartMark; - -enum { - RED_TUNNEL_SERVICE_TYPE_INVALID, - RED_TUNNEL_SERVICE_TYPE_GENERIC, - RED_TUNNEL_SERVICE_TYPE_IPP, -}; - -enum { - RED_TUNNEL_INIT = RED_FIRST_AVAIL_MESSAGE, - RED_TUNNEL_SERVICE_IP_MAP, - RED_TUNNEL_SOCKET_OPEN, - RED_TUNNEL_SOCKET_FIN, - RED_TUNNEL_SOCKET_CLOSE, - RED_TUNNEL_SOCKET_DATA, - RED_TUNNEL_SOCKET_CLOSED_ACK, - RED_TUNNEL_SOCKET_TOKEN, - - RED_TUNNEL_MESSAGES_END, -}; - -typedef struct ATTR_PACKED RedTunnelInit { - uint16_t max_num_of_sockets; - uint32_t max_socket_data_size; -} RedTunnelInit; - -enum { - RED_TUNNEL_IP_TYPE_INVALID, - RED_TUNNEL_IP_TYPE_IPv4, -}; - -typedef struct ATTR_PACKED RedTunnelIpInfo { - uint16_t type; - uint8_t data[0]; -} RedTunnelIpInfo; - -typedef uint8_t RedTunnelIPv4[4]; - -typedef struct ATTR_PACKED RedTunnelServiceIpMap { - uint32_t service_id; - RedTunnelIpInfo virtual_ip; -} RedTunnelServiceIpMap; - -typedef struct ATTR_PACKED RedTunnelSocketOpen { - uint16_t connection_id; - uint32_t service_id; - uint32_t tokens; -} RedTunnelSocketOpen; - -/* connection id must be the first field in msgs directed to a specific connection */ - -typedef struct ATTR_PACKED RedTunnelSocketFin { - uint16_t connection_id; -} RedTunnelSocketFin; - -typedef struct ATTR_PACKED RedTunnelSocketClose { - uint16_t connection_id; -} RedTunnelSocketClose; - -typedef struct ATTR_PACKED RedTunnelSocketData { - uint16_t connection_id; - uint8_t data[0]; -} RedTunnelSocketData; - -typedef struct ATTR_PACKED RedTunnelSocketTokens { - uint16_t connection_id; - uint32_t num_tokens; -} RedTunnelSocketTokens; - -typedef struct ATTR_PACKED RedTunnelSocketClosedAck { - uint16_t connection_id; -} RedTunnelSocketClosedAck; - -enum { - REDC_TUNNEL_SERVICE_ADD = REDC_FIRST_AVAIL_MESSAGE, - REDC_TUNNEL_SERVICE_REMOVE, - REDC_TUNNEL_SOCKET_OPEN_ACK, - REDC_TUNNEL_SOCKET_OPEN_NACK, - REDC_TUNNEL_SOCKET_FIN, - REDC_TUNNEL_SOCKET_CLOSED, - REDC_TUNNEL_SOCKET_CLOSED_ACK, - REDC_TUNNEL_SOCKET_DATA, - - REDC_TUNNEL_SOCKET_TOKEN, - - REDC_TUNNEL_MESSGES_END, -}; - -typedef struct ATTR_PACKED RedcTunnelAddGenericService { - uint32_t type; - uint32_t id; - uint32_t group; - uint32_t port; - uint32_t name; - uint32_t description; -} RedcTunnelAddGenericService; - -typedef struct ATTR_PACKED RedcTunnelAddPrintService { - RedcTunnelAddGenericService base; - RedTunnelIpInfo ip; -} RedcTunnelAddPrintService; - -typedef struct ATTR_PACKED RedcTunnelRemoveService { - uint32_t id; -} RedcTunnelRemoveService; - -/* connection id must be the first field in msgs directed to a specific connection */ - -typedef struct ATTR_PACKED RedcTunnelSocketOpenAck { - uint16_t connection_id; - uint32_t tokens; -} RedcTunnelSocketOpenAck; - -typedef struct ATTR_PACKED RedcTunnelSocketOpenNack { - uint16_t connection_id; -} RedcTunnelSocketOpenNack; - -typedef struct ATTR_PACKED RedcTunnelSocketData { - uint16_t connection_id; - uint8_t data[0]; -} RedcTunnelSocketData; - -typedef struct ATTR_PACKED RedcTunnelSocketFin { - uint16_t connection_id; -} RedcTunnelSocketFin; - -typedef struct ATTR_PACKED RedcTunnelSocketClosed { - uint16_t connection_id; -} RedcTunnelSocketClosed; - -typedef struct ATTR_PACKED RedcTunnelSocketClosedAck { - uint16_t connection_id; -} RedcTunnelSocketClosedAck; - -typedef struct ATTR_PACKED RedcTunnelSocketTokens { - uint16_t connection_id; - uint32_t num_tokens; -} RedcTunnelSocketTokens; - -#undef ATTR_PACKED - -#ifndef __GNUC__ -#pragma pack(pop) -#endif - -#endif - diff --git a/common/red_error_codes.h b/common/red_error_codes.h deleted file mode 100644 index bff53ddd..00000000 --- a/common/red_error_codes.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2009 Red Hat, Inc. - - Redistribution and use in source and binary forms, with or without - modification, 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. - * 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 the copyright holder 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 COPYRIGHT HOLDER 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 COPYRIGHT - HOLDER 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. -*/ - -#ifndef RED_ERROR_CODES_H -#define RED_ERROR_CODES_H - -#define SPICEC_ERROR_CODE_SUCCESS 0 -#define SPICEC_ERROR_CODE_ERROR 1 -#define SPICEC_ERROR_CODE_GETHOSTBYNAME_FAILED 2 -#define SPICEC_ERROR_CODE_CONNECT_FAILED 3 -#define SPICEC_ERROR_CODE_SOCKET_FAILED 4 -#define SPICEC_ERROR_CODE_SEND_FAILED 5 -#define SPICEC_ERROR_CODE_RECV_FAILED 6 -#define SPICEC_ERROR_CODE_SSL_ERROR 7 -#define SPICEC_ERROR_CODE_NOT_ENOUGH_MEMORY 8 -#define SPICEC_ERROR_CODE_AGENT_TIMEOUT 9 -#define SPICEC_ERROR_CODE_AGENT_ERROR 10 -#define SPICEC_ERROR_CODE_VERSION_MISMATCH 11 -#define SPICEC_ERROR_CODE_PERMISSION_DENIED 12 -#define SPICEC_ERROR_CODE_INVALID_ARG 13 -#define SPICEC_ERROR_CODE_CMD_LINE_ERROR 14 - -#endif - diff --git a/common/reds_stat.h b/common/reds_stat.h deleted file mode 100644 index 0baa13f9..00000000 --- a/common/reds_stat.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (C) 2009 Red Hat, Inc. - - Redistribution and use in source and binary forms, with or without - modification, 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. - * 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 the copyright holder 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 COPYRIGHT HOLDER 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 COPYRIGHT - HOLDER 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. -*/ - -#ifndef _H_REDS_STAT -#define _H_REDS_STAT - -#include <stdint.h> - -#define REDS_STAT_SHM_NAME "spice.%u" -#define REDS_STAT_NODE_NAME_MAX_LENGTH 20 -#define REDS_STAT_MAGIC (*(uint32_t*)"STAT") -#define REDS_STAT_VERSION 1 - -enum { - STAT_NODE_FLAG_ENABLED = (1 << 0), - STAT_NODE_FLAG_VISIBLE = (1 << 1), - STAT_NODE_FLAG_VALUE = (1 << 2), -}; - -#define STAT_NODE_MASK_SHOW (STAT_NODE_FLAG_ENABLED | STAT_NODE_FLAG_VISIBLE) -#define STAT_NODE_MASK_SHOW_VALUE (STAT_NODE_MASK_SHOW | STAT_NODE_FLAG_VALUE) - -typedef struct StatNode { - uint64_t value; - uint32_t flags; - uint32_t next_sibling_index; - uint32_t first_child_index; - char name[REDS_STAT_NODE_NAME_MAX_LENGTH]; -} StatNode; - -typedef struct RedsStat { - uint32_t magic; - uint32_t version; - uint32_t generation; - uint32_t num_of_nodes; - uint32_t root_index; - StatNode nodes[]; -} RedsStat; - -#endif - diff --git a/common/vd_agent.h b/common/vd_agent.h deleted file mode 100644 index 74512109..00000000 --- a/common/vd_agent.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - Copyright (C) 2009 Red Hat, Inc. - - Redistribution and use in source and binary forms, with or without - modification, 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. - * 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 the copyright holder 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 COPYRIGHT HOLDER 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 COPYRIGHT - HOLDER 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. -*/ - -#ifndef _H_VD_AGENT -#define _H_VD_AGENT - -#include <stdint.h> -#ifdef __GNUC__ -#define ATTR_PACKED __attribute__ ((__packed__)) -#else -#pragma pack(push) -#pragma pack(1) -#define ATTR_PACKED -#endif - - -typedef struct ATTR_PACKED VDAgentMessage { - uint32_t protocol; - uint32_t type; - uint64_t opaque; - uint32_t size; - uint8_t data[0]; -} VDAgentMessage; - -#define VD_AGENT_PROTOCOL 1 - -enum { - VD_AGENT_MOUSE_STATE = 1, - VD_AGENT_MONITORS_CONFIG, - VD_AGENT_REPLY, -}; - -typedef struct ATTR_PACKED VDAgentMonConfig { - uint32_t height; - uint32_t width; - uint32_t depth; - int32_t x; - int32_t y; -} VDAgentMonConfig; - -enum { - VD_AGENT_CONFIG_MONITORS_FLAG_USE_POS = (1 << 0), -}; - -typedef struct ATTR_PACKED VDAgentMonitorsConfig { - uint32_t num_of_monitors; - uint32_t flags; - VDAgentMonConfig monitors[0]; -} VDAgentMonitorsConfig; - -#define VD_AGENT_LBUTTON_MASK (1 << 1) -#define VD_AGENT_MBUTTON_MASK (1 << 2) -#define VD_AGENT_RBUTTON_MASK (1 << 3) -#define VD_AGENT_UBUTTON_MASK (1 << 4) -#define VD_AGENT_DBUTTON_MASK (1 << 5) - -typedef struct ATTR_PACKED VDAgentMouseState { - uint32_t x; - uint32_t y; - uint32_t buttons; - uint8_t display_id; -} VDAgentMouseState; - -typedef struct ATTR_PACKED VDAgentReply { - uint32_t type; - uint32_t error; -} VDAgentReply; - -enum { - VD_AGENT_SUCCESS = 1, - VD_AGENT_ERROR, -}; - -#undef ATTR_PACKED - -#ifndef __GNUC__ -#pragma pack(pop) -#endif - -#endif - - diff --git a/common/vdi_dev.h b/common/vdi_dev.h deleted file mode 100644 index d8b5add3..00000000 --- a/common/vdi_dev.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - Copyright (C) 2009 Red Hat, Inc. - - Redistribution and use in source and binary forms, with or without - modification, 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. - * 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 the copyright holder 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 COPYRIGHT HOLDER 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 COPYRIGHT - HOLDER 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. -*/ - -#ifndef _H_VDI_DEV -#define _H_VDI_DEV - -#include "ipc_ring.h" - -#ifdef __GNUC__ -#ifdef __i386__ -#define mb() __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory") -#else -//mfence -#define mb() __asm__ __volatile__ ("lock; addl $0,0(%%rsp)": : :"memory") -#endif -#define ATTR_PACKED __attribute__ ((__packed__)) -#else -#pragma pack(push) -#pragma pack(1) -#define ATTR_PACKED -#define mb() __asm {lock add [esp], 0} -#endif - -#define REDHAT_PCI_VENDOR_ID 0x1b36 - -#define VDI_PORT_DEVICE_ID 0x0105 -#define VDI_PORT_REVISION 0x01 - -#define VDI_PORT_INTERRUPT (1 << 0) - -#define VDI_PORT_MAGIC (*(UINT32*)"VDIP") - -typedef struct ATTR_PACKED VDIPortPacket { - UINT32 gen; - UINT32 size; - UINT8 data[512 - 2 * sizeof(UINT32)]; -} VDIPortPacket; - -RING_DECLARE(VDIPortRing, VDIPortPacket, 32); - -enum { - VDI_PORT_IO_RANGE_INDEX, - VDI_PORT_RAM_RANGE_INDEX, -}; - -enum { - VDI_PORT_IO_CONNECTION, - VDI_PORT_IO_NOTIFY = 4, - VDI_PORT_IO_UPDATE_IRQ = 8, - - VDI_PORT_IO_RANGE_SIZE = 12 -}; - -typedef struct ATTR_PACKED VDIPortRam { - UINT32 magic; - UINT32 generation; - UINT32 int_pending; - UINT32 int_mask; - VDIPortRing input; - VDIPortRing output; - UINT32 reserv[32]; -} VDIPortRam; - -#ifndef __GNUC__ -#pragma pack(pop) -#endif - -#undef ATTR_PACKED - -#endif |