Re: [Spice-devel] [RFC 06/33] partially replace outb with ioport_write

2011-04-28 Thread Christophe Fergeau
On Wed, Apr 27, 2011 at 06:55:55PM +0300, Alon Levy wrote:
 replace everywhere it is needed for xspice - places left out are ifdefed
 out later based on the same define mentioned in qxl.h, XSPICE.
 
 note: leave spaces between function name and open paren?
 
 note2: ioport_write is added at the end of the file because the xspice 
 implementation
 will need access to the qxl_screen_t typedef, defined earlier in qxl.h .

I think this note isn't relevant to this patch.

 diff --git a/src/qxl.h b/src/qxl.h
 index 99dfecf..9683966 100644
 --- a/src/qxl.h
 +++ b/src/qxl.h
 @@ -335,4 +335,8 @@ void *qxl_allocnf  (qxl_screen_t  
  *qxl,
   unsigned long   size);
  int qxl_garbage_collect (qxl_screen_t *qxl);
  
 +#ifndef XSPICE
 +#define ioport_write(qxl, port, val) outb(qxl-io_base + port, val)
 +#endif

Since the beginning of the patch series is just cleanups/preparation for
the real XSPICE work, I wouldn't put the #ifndef in this one. Also I'd
prefer to have a real static function here instead of a #define

Christophe


pgpzLXoy6SUOU.pgp
Description: PGP signature
___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel


Re: [Spice-devel] [RFC 06/33] partially replace outb with ioport_write

2011-04-28 Thread Alon Levy
On Thu, Apr 28, 2011 at 04:14:38PM +0200, Christophe Fergeau wrote:
 On Wed, Apr 27, 2011 at 06:55:55PM +0300, Alon Levy wrote:
  replace everywhere it is needed for xspice - places left out are ifdefed
  out later based on the same define mentioned in qxl.h, XSPICE.
  
  note: leave spaces between function name and open paren?
  
  note2: ioport_write is added at the end of the file because the xspice 
  implementation
  will need access to the qxl_screen_t typedef, defined earlier in qxl.h .
 
 I think this note isn't relevant to this patch.

The point was not to put it in the end in this patch unexplained, and then 
later when
I add an #else to the #ifndef XSPICE below with a declaration using 
qxl_screen_t add the
explanation. But if I use a static inline here like you suggest below it solves 
the issue, and
makes it obvious why it needs to come after the qxl_screen_t typedef.

I'll send a revision.

 
  diff --git a/src/qxl.h b/src/qxl.h
  index 99dfecf..9683966 100644
  --- a/src/qxl.h
  +++ b/src/qxl.h
  @@ -335,4 +335,8 @@ void *qxl_allocnf  (qxl_screen_t
 *qxl,
  unsigned long   size);
   int   qxl_garbage_collect (qxl_screen_t *qxl);
   
  +#ifndef XSPICE
  +#define ioport_write(qxl, port, val) outb(qxl-io_base + port, val)
  +#endif
 
 Since the beginning of the patch series is just cleanups/preparation for
 the real XSPICE work, I wouldn't put the #ifndef in this one. Also I'd
 prefer to have a real static function here instead of a #define
 
 Christophe


___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel


[Spice-devel] [RFC 06/33] partially replace outb with ioport_write

2011-04-27 Thread Alon Levy
replace everywhere it is needed for xspice - places left out are ifdefed
out later based on the same define mentioned in qxl.h, XSPICE.

note: leave spaces between function name and open paren?

note2: ioport_write is added at the end of the file because the xspice 
implementation
will need access to the qxl_screen_t typedef, defined earlier in qxl.h .
---
 src/qxl.h |4 
 src/qxl_driver.c  |   10 +-
 src/qxl_ring.c|5 +++--
 src/qxl_surface.c |4 ++--
 4 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/qxl.h b/src/qxl.h
index 99dfecf..9683966 100644
--- a/src/qxl.h
+++ b/src/qxl.h
@@ -335,4 +335,8 @@ void *qxl_allocnf  (qxl_screen_t
   *qxl,
unsigned long   size);
 int   qxl_garbage_collect (qxl_screen_t *qxl);
 
+#ifndef XSPICE
+#define ioport_write(qxl, port, val) outb(qxl-io_base + port, val)
+#endif
+
 #endif // QXL_H
diff --git a/src/qxl_driver.c b/src/qxl_driver.c
index a712ca0..a0aea25 100644
--- a/src/qxl_driver.c
+++ b/src/qxl_driver.c
@@ -130,7 +130,7 @@ qxl_usleep (int useconds)
 int
 qxl_handle_oom (qxl_screen_t *qxl)
 {
-outb (qxl-io_base + QXL_IO_NOTIFY_OOM, 0);
+ioport_write(qxl, QXL_IO_NOTIFY_OOM, 0);
 
 #if 0
 ErrorF (.);
@@ -168,7 +168,7 @@ qxl_allocnf (qxl_screen_t *qxl, unsigned long size)
ram_header-update_area.right = qxl-virtual_x;
ram_header-update_surface = 0; /* Only primary for now */

-   outb (qxl-io_base + QXL_IO_UPDATE_AREA, 0);
+   ioport_write(qxl, QXL_IO_UPDATE_AREA, 0);

 #if 0
ErrorF (eliminated memory (%d)\n, nth_oom++);
@@ -342,7 +342,7 @@ qxl_reset (qxl_screen_t *qxl)
 uint64_t high_bits;
 struct QXLRam *ram_header;
 
-outb(qxl-io_base + QXL_IO_RESET, 0);
+ioport_write(qxl, QXL_IO_RESET, 0);
 
 ram_header = (void *)((unsigned long)qxl-ram + (unsigned 
long)qxl-rom-ram_header_offset);
 
@@ -370,7 +370,7 @@ qxl_reset (qxl_screen_t *qxl)
 ram_header-mem_slot.mem_start = slot-start_phys_addr;
 ram_header-mem_slot.mem_end = slot-end_phys_addr;
 
-outb (qxl-io_base + QXL_IO_MEMSLOT_ADD, qxl-main_mem_slot);
+ioport_write(qxl, QXL_IO_MEMSLOT_ADD, qxl-main_mem_slot);
 
 slot-generation = qxl-rom-slot_generation;
 
@@ -390,7 +390,7 @@ qxl_reset (qxl_screen_t *qxl)
 ram_header-mem_slot.mem_start = slot-start_phys_addr;
 ram_header-mem_slot.mem_end = slot-end_phys_addr;
 
-outb (qxl-io_base + QXL_IO_MEMSLOT_ADD, qxl-vram_mem_slot);
+ioport_write(qxl, QXL_IO_MEMSLOT_ADD, qxl-vram_mem_slot);
 
 slot-generation = qxl-rom-slot_generation;
 
diff --git a/src/qxl_ring.c b/src/qxl_ring.c
index 22d98ea..0870ef1 100644
--- a/src/qxl_ring.c
+++ b/src/qxl_ring.c
@@ -88,8 +88,9 @@ qxl_ring_push (struct qxl_ring *ring,
 
 mem_barrier();
 
-if (header-prod == header-notify_on_prod)
-   outb (ring-qxl-io_base + ring-io_port_prod_notify, 0);
+if (header-prod == header-notify_on_prod) {
+ioport_write (ring-qxl, ring-io_port_prod_notify, 0);
+}
 }
 
 Bool
diff --git a/src/qxl_surface.c b/src/qxl_surface.c
index bf91483..6056555 100644
--- a/src/qxl_surface.c
+++ b/src/qxl_surface.c
@@ -378,7 +378,7 @@ qxl_surface_cache_create_primary (surface_cache_t   *cache,
 create-type = QXL_SURF_TYPE_PRIMARY;
 create-mem = physical_address (cache-qxl, cache-qxl-ram, 
cache-qxl-main_mem_slot);
 
-outb (qxl-io_base + QXL_IO_CREATE_PRIMARY, 0);
+ioport_write(qxl, QXL_IO_CREATE_PRIMARY, 0);
 
 dev_addr = (uint8_t *)qxl-ram + mode-stride * (mode-y_res - 1);
 
@@ -920,7 +920,7 @@ download_box (qxl_surface_t *surface, int x1, int y1, int 
x2, int y2)
 ErrorF (Issuing update command for %d\n, surface-id);
 #endif
 
-outb (surface-cache-qxl-io_base + QXL_IO_UPDATE_AREA, 0);
+ioport_write(surface-cache-qxl, QXL_IO_UPDATE_AREA, 0);
 
 pixman_image_composite (PIXMAN_OP_SRC,
surface-dev_image,
-- 
1.7.4.4

___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel