From 18a186804bc4e496a392cb31003cef25798f6c7b Mon Sep 17 00:00:00 2001 From: Tiago Vignatti Date: Thu, 14 May 2009 03:40:25 -0300 Subject: [PATCH] Delete vga_arb_rec. --- include/pciaccess.h | 41 ++++++++++++++++++------------------- src/common_vgaarb.c | 53 +++++++++++++++++++++--------------------------- src/common_vgaarb_stub.c | 21 +++++++------------ 3 files changed, 50 insertions(+), 65 deletions(-) diff --git a/include/pciaccess.h b/include/pciaccess.h index 4087264..b7dad13 100644 --- a/include/pciaccess.h +++ b/include/pciaccess.h @@ -375,6 +375,12 @@ struct pci_device { * the \c pci_device structure. */ intptr_t user_data; + + /** + * Used by the VGA arbiter. Kind of resource decoded by the device and + * the file descriptor. */ + int vgaarb_rsrc; + int vgaarb_fd; }; @@ -479,19 +485,13 @@ struct pci_pcmcia_bridge_info { * VGA Arbiter definitions, functions and related. */ -typedef int VgaArbRsrcType; - -/* This is a mask that can be OR'ed */ -#define VGA_ARB_RSRC_NONE 0 -#define VGA_ARB_RSRC_LEGACY_IO 1 -#define VGA_ARB_RSRC_LEGACY_MEM 2 -#define VGA_ARB_RSRC_NORMAL_IO 4 -#define VGA_ARB_RSRC_NORMAL_MEM 8 - -typedef struct { - int fd; - VgaArbRsrcType rsrc; -} vga_arb_rec, *vga_arb_ptr; +/* Legacy VGA regions */ +#define VGA_ARB_RSRC_NONE 0x00 +#define VGA_ARB_RSRC_LEGACY_IO 0x01 +#define VGA_ARB_RSRC_LEGACY_MEM 0x02 +/* Non-legacy access */ +#define VGA_ARB_RSRC_NORMAL_IO 0x04 +#define VGA_ARB_RSRC_NORMAL_MEM 0x08 /* * With exception of vga_arb_trylock(), all functions bellow return 1 on success @@ -504,13 +504,12 @@ typedef struct { * it will print error messages at stderr. * */ -int pci_device_vgaarb_init (vga_arb_ptr *vgaDev); -void pci_device_vgaarb_fini (vga_arb_ptr vgaDev); -int pci_device_vgaarb_set_target (vga_arb_ptr vgaDev, unsigned int domain, - unsigned int bus, unsigned int dev, unsigned int fn); -int pci_device_vgaarb_decodes (vga_arb_ptr vgaDev); -int pci_device_vgaarb_lock (vga_arb_ptr vgaDev); -int pci_device_vgaarb_trylock (vga_arb_ptr vgaDev); -int pci_device_vgaarb_unlock (vga_arb_ptr vgaDev); +int pci_device_vgaarb_init (struct pci_device *dev); +void pci_device_vgaarb_fini (struct pci_device *dev); +int pci_device_vgaarb_set_target (struct pci_device *dev); +int pci_device_vgaarb_decodes (struct pci_device *dev); +int pci_device_vgaarb_lock (struct pci_device *dev); +int pci_device_vgaarb_trylock (struct pci_device *dev); +int pci_device_vgaarb_unlock (struct pci_device *dev); #endif /* PCIACCESS_H */ diff --git a/src/common_vgaarb.c b/src/common_vgaarb.c index cc1e262..9cf7385 100644 --- a/src/common_vgaarb.c +++ b/src/common_vgaarb.c @@ -45,28 +45,22 @@ #define VGAARB_DEV "/dev/vga_arbiter" int -pci_device_vgaarb_init(vga_arb_ptr *vgaDev) +pci_device_vgaarb_init(struct pci_device *dev) { - *vgaDev = malloc (sizeof(vga_arb_ptr *)); - if (vgaDev == NULL) { - fprintf(stderr, "%s: malloc: couldn't allocate memory\n", __FUNCTION__); - return 0; - } - - (*vgaDev)->rsrc = 0; + dev->vgaarb_rsrc = VGA_ARB_RSRC_NONE; - if (((*vgaDev)->fd = open (VGAARB_DEV, O_RDWR)) < 0) { + if ((dev->vgaarb_fd = open (VGAARB_DEV, O_RDWR)) < 0) { perror("device open failed"); - return 0; + return 1; } - return (*vgaDev)->fd; + return 0; } void -pci_device_vgaarb_fini(vga_arb_ptr vgaDev) +pci_device_vgaarb_fini(struct pci_device *dev) { - if (close(vgaDev->fd) == -1) + if (close(dev->vgaarb_fd) == -1) perror("device close failed"); } @@ -112,7 +106,7 @@ vgaarb_write(int fd, char *buf, int len) } static const char * -rsrc_to_str(VgaArbRsrcType iostate) +rsrc_to_str(int iostate) { switch (iostate) { case VGA_ARB_RSRC_LEGACY_IO | VGA_ARB_RSRC_LEGACY_MEM: @@ -155,49 +149,48 @@ vga_arb_read(vga_arb_ptr vgaDev) } #endif int -pci_device_vgaarb_set_target(vga_arb_ptr vgaDev, unsigned int domain, - unsigned int bus, unsigned int dev, unsigned int fn) +pci_device_vgaarb_set_target(struct pci_device *dev) { int len; char buf[BUFSIZE]; len = snprintf(buf, BUFSIZE, "target PCI:%d:%d:%d.%d", - domain, bus, dev, fn); + dev->domain, dev->bus, dev->dev, dev->func); - return vgaarb_write(vgaDev->fd, buf, len); + return vgaarb_write(dev->vgaarb_fd, buf, len); } int -pci_device_vgaarb_decodes(vga_arb_ptr vgaDev) +pci_device_vgaarb_decodes(struct pci_device *dev) { int len; char buf[BUFSIZE]; - len = snprintf(buf, BUFSIZE, "decodes %s", rsrc_to_str(vgaDev->rsrc)); + len = snprintf(buf, BUFSIZE, "decodes %s", rsrc_to_str(dev->vgaarb_rsrc)); - return vgaarb_write(vgaDev->fd, buf, len); + return vgaarb_write(dev->vgaarb_fd, buf, len); } int -pci_device_vgaarb_lock(vga_arb_ptr vgaDev) +pci_device_vgaarb_lock(struct pci_device *dev) { int len; char buf[BUFSIZE]; - len = snprintf(buf, BUFSIZE, "lock %s", rsrc_to_str(vgaDev->rsrc)); + len = snprintf(buf, BUFSIZE, "lock %s", rsrc_to_str(dev->vgaarb_rsrc)); - return vgaarb_write(vgaDev->fd, buf, len); + return vgaarb_write(dev->vgaarb_fd, buf, len); } int -pci_device_vgaarb_trylock(vga_arb_ptr vgaDev) +pci_device_vgaarb_trylock(struct pci_device *dev) { int len, write_ret; char buf[BUFSIZE]; - len = snprintf(buf, BUFSIZE, "trylock %s", rsrc_to_str(vgaDev->rsrc)); + len = snprintf(buf, BUFSIZE, "trylock %s", rsrc_to_str(dev->vgaarb_rsrc)); - write_ret = vgaarb_write(vgaDev->fd, buf, len); + write_ret = vgaarb_write(dev->vgaarb_fd, buf, len); if (write_ret == 0) return -1; @@ -209,12 +202,12 @@ pci_device_vgaarb_trylock(vga_arb_ptr vgaDev) } int -pci_device_vgaarb_unlock(vga_arb_ptr vgaDev) +pci_device_vgaarb_unlock(struct pci_device *dev) { int len; char buf[BUFSIZE]; - len = snprintf(buf, BUFSIZE, "unlock %s", rsrc_to_str(vgaDev->rsrc)); + len = snprintf(buf, BUFSIZE, "unlock %s", rsrc_to_str(dev->vgaarb_rsrc)); - return vgaarb_write(vgaDev->fd, buf, len); + return vgaarb_write(dev->vgaarb_fd, buf, len); } diff --git a/src/common_vgaarb_stub.c b/src/common_vgaarb_stub.c index 9fa36ac..976dbb2 100644 --- a/src/common_vgaarb_stub.c +++ b/src/common_vgaarb_stub.c @@ -33,44 +33,37 @@ int -vga_arb_read(vga_arb_ptr vgaDev) +vga_arb_set_target(struct pci_device *dev) { return 1; } int -vga_arb_set_target(vga_arb_ptr vgaDev, unsigned int domain, unsigned int bus, - unsigned int dev, unsigned int fn) +vga_arb_lock(struct pci_device *dev) { return 1; } int -vga_arb_lock(vga_arb_ptr vgaDev) +vga_arb_trylock(struct pci_device *dev) { return 1; } int -vga_arb_trylock(vga_arb_ptr vgaDev) +vga_arb_unlock(struct pci_device *dev) { return 1; } int -vga_arb_unlock(vga_arb_ptr vgaDev) +vga_arb_decodes(struct pci_device *dev) { return 1; } int -vga_arb_decodes(vga_arb_ptr vgaDev) -{ - return 1; -} - -int -vga_arb_init(vga_arb_ptr *vgaDev) +vga_arb_init(struct pci_device *dev) { #ifdef DEBUG fprintf(stderr, "%s: YOU'RE USING THE STUB FUNCTIONS!\n", __FUNCTION__); @@ -79,6 +72,6 @@ vga_arb_init(vga_arb_ptr *vgaDev) } void -vga_arb_fini(vga_arb_ptr vgaDev) +vga_arb_fini(struct pci_device *dev) { } -- 2.11.0