freebsd-ports/graphics/libggi/files/patch-aa
Yen-Ming Lee af5fff43b1 update graphics/libggi from 2.0b3 to 2.0.3
transfer maintainership

PR:		51797
Submitted by:	Matthew West <mwest@uct.ac.za>
2003-05-05 20:04:26 +00:00

109 lines
2.7 KiB
Text

*** display/kgi/kgi.c.orig Thu Dec 5 16:59:59 2002
--- display/kgi/kgi.c Mon Apr 14 17:06:19 2003
***************
*** 15,20 ****
--- 15,30 ----
kgic_mapper_identify_request_t request;
kgic_mapper_identify_result_t result;
} cb;
+ #ifdef __FreeBSD__
+ union {
+ kgic_mapper_attach_request_t request;
+ kgic_mapper_attach_result_t result;
+ } at;
+ union {
+ kgic_mapper_get_unit_request_t request;
+ kgic_mapper_get_unit_result_t result;
+ } get_unit;
+ #endif
if (NULL == ctx) {
***************
*** 35,40 ****
--- 45,81 ----
return -KGI_INVAL;
}
+ #ifdef __FreeBSD__
+ memset(&get_unit, 0, sizeof(get_unit));
+
+ /* Pass an invalid device id to force auto attachement */
+ get_unit.request.unit = -1;
+ if (ioctl(ctx->mapper.fd, KGIC_MAPPER_GET_UNIT, &get_unit)) {
+ perror("failed to get free unit");
+ return errno;
+ }
+
+ /* Close /dev/graphic then open the true one */
+ close(ctx->mapper.fd);
+
+ sprintf(fname, "/dev/graphic%i", get_unit.result.unit);
+ ctx->mapper.fd = open(fname, O_RDWR | O_NONBLOCK);
+ if (ctx->mapper.fd < 0) {
+ perror("failed to open /dev/graphicX");
+ return errno;
+ }
+
+ memset(&at, 0, sizeof(at));
+
+ /* Pass an invalid device id to force auto attachement */
+ at.request.device_id = -1;
+ if (ioctl(ctx->mapper.fd, KGIC_MAPPER_ATTACH, &at)) {
+
+ perror("failed to attach to device");
+ return errno;
+ }
+ #endif
+
memset(&cb, 0, sizeof(cb));
strncpy(cb.request.client, client,
sizeof(cb.request.client));
***************
*** 245,252 ****
switch (cb.result.type & KGI_RT_MASK) {
case KGI_RT_MMIO:
! printf("MMIO: window %i, size %i, align %.8x, "
! "access %.8x\n",
cb.result.info.mmio.window,
cb.result.info.mmio.size,
cb.result.info.mmio.align,
--- 286,293 ----
switch (cb.result.type & KGI_RT_MASK) {
case KGI_RT_MMIO:
! printf("MMIO: window %li, size %li, align %.8lx, "
! "access %.8lx\n",
cb.result.info.mmio.window,
cb.result.info.mmio.size,
cb.result.info.mmio.align,
***************
*** 254,266 ****
break;
case KGI_RT_ACCEL:
! printf("ACCEL: recommended are %i buffers of size %i\n",
cb.result.info.accel.buffers,
cb.result.info.accel.buffer_size);
break;
case KGI_RT_SHMEM:
! printf("SHMEM: (maximum) aperture size %i\n",
cb.result.info.shmem.aperture_size);
break;
--- 295,307 ----
break;
case KGI_RT_ACCEL:
! printf("ACCEL: recommended are %li buffers of size %li\n",
cb.result.info.accel.buffers,
cb.result.info.accel.buffer_size);
break;
case KGI_RT_SHMEM:
! printf("SHMEM: (maximum) aperture size %li\n",
cb.result.info.shmem.aperture_size);
break;