On Tue, Jul 21, 2009 at 12:21 PM, Julien Cristau <jcris...@debian.org>wrote:
> On Mon, Jul 20, 2009 at 19:17:01 +0300, Pauli Nieminen wrote: > > > >From b7e77b71d1f2d8ff6741e534911e09f10e3f3d4e Mon Sep 17 00:00:00 2001 > > From: Pauli Nieminen <suok...@gmail.com> > > Date: Mon, 20 Jul 2009 14:39:57 +0300 > > Subject: [PATCH 01/15] libdrm: Add function attribute for debug > > functions to let gcc check parameter correctness. > > > > --- > > libdrm/xf86drm.c | 5 ++++- > > 1 files changed, 4 insertions(+), 1 deletions(-) > > > > diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c > > index 26dd812..4214b91 100644 > > --- a/libdrm/xf86drm.c > > +++ b/libdrm/xf86drm.c > > @@ -107,13 +107,16 @@ void drmSetServerInfo(drmServerInfoPtr info) > > * \internal > > * This function is a wrapper around vfprintf(). > > */ > > +static int drmDebugPrint(const char *format, va_list ap) > > __attribute__((format(printf,1,0))); > > > why add a forward declaration instead of adding the attribute to the > function definition? also your patches are whitespace damaged. > That is limitation of gcc. attributes has to be given in declaration. At least that is what manual says . I didn't test. > > > static int drmDebugPrint(const char *format, va_list ap) > > { > > return vfprintf(stderr, format, ap); > > } > > > > -static int (*drm_debug_print)(const char *format, va_list ap) = > drmDebugPrint; > > +static int (*drm_debug_print)(const char *format, va_list ap) > > __attribute__((format(printf,1,0))) = drmDebugPrint; > > + > > +void drmMsg(const char *format, ...) > __attribute__((format(printf,1,2))); > > > > void > > drmMsg(const char *format, ...) > > Cheers, > Julien > Attached the patches to prevent the damage to them. Pauli
From b7e77b71d1f2d8ff6741e534911e09f10e3f3d4e Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 14:39:57 +0300 Subject: [PATCH 01/19] libdrm: Add function attribute for debug functions to let gcc check parameter correctness. --- libdrm/xf86drm.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index 26dd812..4214b91 100644 --- a/libdrm/xf86drm.c +++ b/libdrm/xf86drm.c @@ -107,13 +107,16 @@ void drmSetServerInfo(drmServerInfoPtr info) * \internal * This function is a wrapper around vfprintf(). */ +static int drmDebugPrint(const char *format, va_list ap) __attribute__((format(printf,1,0))); static int drmDebugPrint(const char *format, va_list ap) { return vfprintf(stderr, format, ap); } -static int (*drm_debug_print)(const char *format, va_list ap) = drmDebugPrint; +static int (*drm_debug_print)(const char *format, va_list ap) __attribute__((format(printf,1,0))) = drmDebugPrint; + +void drmMsg(const char *format, ...) __attribute__((format(printf,1,2))); void drmMsg(const char *format, ...) -- 1.6.3.3
From 7b9950e3e3e4d9a456addcdbbcdefaf4cc44a5c0 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 14:46:06 +0300 Subject: [PATCH 02/19] libdrm: Add __attribute__ macro to hide gcc specific function attributes for compiler not supporting them. --- libdrm/xf86drm.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index 4214b91..a942233 100644 --- a/libdrm/xf86drm.c +++ b/libdrm/xf86drm.c @@ -92,6 +92,14 @@ #define DRM_NODE_CONTROL 0 #define DRM_NODE_RENDER 1 +/* + * define macro for gcc specific __attribute__ if using alternative compiler + */ +#ifndef __GNUC__ +#define __attribute__(x) /*empty*/ +#endif + + static drmServerInfoPtr drm_server_info; void drmSetServerInfo(drmServerInfoPtr info) -- 1.6.3.3
From 7a737a95e3c9bdfdf18b648678f41911259adceb Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 14:49:38 +0300 Subject: [PATCH 03/19] libdrm: Add function declaration to header for drmSetDebugMsgFunction. --- libdrm/xf86drm.h | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/libdrm/xf86drm.h b/libdrm/xf86drm.h index c1d173c..f4d6504 100644 --- a/libdrm/xf86drm.h +++ b/libdrm/xf86drm.h @@ -663,6 +663,7 @@ extern int drmSLLookupNeighbors(void *l, unsigned long key, extern int drmOpenOnce(void *unused, const char *BusID, int *newlyopened); extern void drmCloseOnce(int fd); extern void drmMsg(const char *format, ...); +extern void drmSetDebugMsgFunction(int (*debug_msg_ptr)(const char *format, va_list ap)); extern int drmSetMaster(int fd); extern int drmDropMaster(int fd); -- 1.6.3.3
From f20a4ea99e79cd0155a56112c272c228dac463f8 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 15:34:13 +0300 Subject: [PATCH 04/19] libdrm: Fix unsigned/signed coparision of -1 value gid_t is unsigned in gnu libc this makes it impossible to check if group id is set to negative by xserver. --- libdrm/xf86drm.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index a942233..d168258 100644 --- a/libdrm/xf86drm.c +++ b/libdrm/xf86drm.c @@ -340,7 +340,8 @@ static int drmOpenDevice(long dev, int minor, int type) drm_server_info->get_perms(&serv_group, &serv_mode); devmode = serv_mode ? serv_mode : DRM_DEV_MODE; devmode &= ~(S_IXUSR|S_IXGRP|S_IXOTH); - group = (serv_group >= 0) ? serv_group : DRM_DEV_GID; + /* gid_t is unsigned so we have to check that value isn't equal to "-1" */ + group = (serv_group != (gid_t)-1) ? serv_group : DRM_DEV_GID; } #if !defined(UDEV) -- 1.6.3.3
From 3eb4a3493f13c48bee1b2453f5ecead0ba498c51 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 15:45:41 +0300 Subject: [PATCH 05/19] libdrm: Fix drmOpenDevice to take dev_t type as parameter. This fixes signed/unsigned comparission between st.st_dev and dev. --- libdrm/xf86drm.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index d168258..30e9616 100644 --- a/libdrm/xf86drm.c +++ b/libdrm/xf86drm.c @@ -323,7 +323,7 @@ static int chown_check_return(const char *path, uid_t owner, gid_t group) * special file node with the major and minor numbers specified by \p dev and * parent directory if necessary and was called by root. */ -static int drmOpenDevice(long dev, int minor, int type) +static int drmOpenDevice(dev_t dev, int minor, int type) { stat_t st; char buf[64]; -- 1.6.3.3
From 78bfacedfb3b81968b2171a942101d323b1782cb Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 15:48:48 +0300 Subject: [PATCH 06/19] libdrm: Fix loop index variable type to match the type of count --- libdrm/xf86drm.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index 30e9616..2507829 100644 --- a/libdrm/xf86drm.c +++ b/libdrm/xf86drm.c @@ -2177,8 +2177,8 @@ int drmGetClient(int fd, int idx, int *auth, int *pid, int *uid, int drmGetStats(int fd, drmStatsT *stats) { - drm_stats_t s; - int i; + drm_stats_t s; + unsigned long i; if (drmIoctl(fd, DRM_IOCTL_GET_STATS, &s)) return -errno; -- 1.6.3.3
From 7fcfbf715644d2268236b8a19d1f2f83c952d72b Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 16:25:59 +0300 Subject: [PATCH 07/19] libdrm: Fix random number generator to use unsigned seed. This fixes wanring about unsigned/signed comparision. Also make it easier to compile test program using -D switch. --- libdrm/xf86drmRandom.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libdrm/xf86drmRandom.c b/libdrm/xf86drmRandom.c index ecab9e2..f488630 100644 --- a/libdrm/xf86drmRandom.c +++ b/libdrm/xf86drmRandom.c @@ -74,7 +74,9 @@ #include <stdio.h> #include <stdlib.h> +#ifndef RANDOM_MAIN #define RANDOM_MAIN 0 +#endif #if !RANDOM_MAIN # include "xf86drm.h" @@ -98,7 +100,7 @@ typedef struct RandomState { unsigned long q; /* m div a */ unsigned long r; /* m mod a */ unsigned long check; - long seed; + unsigned long seed; } RandomState; #if RANDOM_MAIN @@ -153,7 +155,7 @@ unsigned long drmRandom(void *state) hi = s->seed / s->q; lo = s->seed % s->q; s->seed = s->a * lo - s->r * hi; - if (s->seed <= 0) s->seed += s->m; + if (s->seed > s->m) s->seed += s->m; return s->seed; } -- 1.6.3.3
From 10a9bf298be4695242bcdb63bcfad720e03bf040 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 16:31:54 +0300 Subject: [PATCH 08/19] libdrm: Make gcc to understand that pointers are realy pointers. --- libdrm/xf86drmSL.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libdrm/xf86drmSL.c b/libdrm/xf86drmSL.c index 58aefac..22e3b92 100644 --- a/libdrm/xf86drmSL.c +++ b/libdrm/xf86drmSL.c @@ -335,16 +335,16 @@ void drmSLDump(void *l) list->magic, SL_ENTRY_MAGIC); } printf("\nEntry %p <0x%08lx, %p> has %2d levels\n", - entry, entry->key, entry->value, entry->levels); + (void*)entry, entry->key, entry->value, entry->levels); for (i = 0; i < entry->levels; i++) { if (entry->forward[i]) { printf(" %2d: %p <0x%08lx, %p>\n", i, - entry->forward[i], + (void*)entry->forward[i], entry->forward[i]->key, entry->forward[i]->value); } else { - printf(" %2d: %p\n", i, entry->forward[i]); + printf(" %2d: %p\n", i, (void*)entry->forward[i]); } } } -- 1.6.3.3
From 69cad004e5355e4adcee753de4da91c98949d3df Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 16:50:20 +0300 Subject: [PATCH 09/19] libdrm: Make drmAllocCpy static. --- libdrm/xf86drmMode.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/libdrm/xf86drmMode.c b/libdrm/xf86drmMode.c index ea11207..180d3ef 100644 --- a/libdrm/xf86drmMode.c +++ b/libdrm/xf86drmMode.c @@ -55,7 +55,7 @@ * Util functions */ -void* drmAllocCpy(void *array, int count, int entry_size) +static void* drmAllocCpy(void *array, int count, int entry_size) { char *r; int i; -- 1.6.3.3
From 6ad9d2f1495df9bbdecbe4e7676da75d48ba3719 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 16:55:21 +0300 Subject: [PATCH 10/19] libdrm: Make drmAllocCpy use only single memcpy call instead of calling memcpy in loop. --- libdrm/xf86drmMode.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/libdrm/xf86drmMode.c b/libdrm/xf86drmMode.c index 180d3ef..0d080b8 100644 --- a/libdrm/xf86drmMode.c +++ b/libdrm/xf86drmMode.c @@ -58,7 +58,6 @@ static void* drmAllocCpy(void *array, int count, int entry_size) { char *r; - int i; if (!count || !array || !entry_size) return 0; @@ -66,8 +65,7 @@ static void* drmAllocCpy(void *array, int count, int entry_size) if (!(r = drmMalloc(count*entry_size))) return 0; - for (i = 0; i < count; i++) - memcpy(r+(entry_size*i), array+(entry_size*i), entry_size); + memcpy(r, array, count*entry_size); return r; } -- 1.6.3.3
From 0c8b7939fc95084d77063eb8de78b0724d3d4058 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 17:00:45 +0300 Subject: [PATCH 11/19] libdrm: Make pci id numbers unsigned for sscanf. --- libdrm/xf86drmMode.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/libdrm/xf86drmMode.c b/libdrm/xf86drmMode.c index 0d080b8..9b4d5fb 100644 --- a/libdrm/xf86drmMode.c +++ b/libdrm/xf86drmMode.c @@ -574,7 +574,8 @@ int drmCheckModesettingSupported(const char *busid) { #ifdef __linux__ char pci_dev_dir[1024]; - int domain, bus, dev, func; + unsigned int domain, bus, dev; + int func; DIR *sysdir; struct dirent *dent; int found = 0, ret; -- 1.6.3.3
From dea4cebdb49556ab06930bd5a4d303ce1c0b85c7 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 17:19:55 +0300 Subject: [PATCH 12/19] intel: Move debug output after setting the value. --- libdrm/intel/intel_bufmgr_fake.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libdrm/intel/intel_bufmgr_fake.c b/libdrm/intel/intel_bufmgr_fake.c index 969c03d..7259690 100644 --- a/libdrm/intel/intel_bufmgr_fake.c +++ b/libdrm/intel/intel_bufmgr_fake.c @@ -287,10 +287,10 @@ _fence_wait_internal(drm_intel_bufmgr_fake *bufmgr_fake, int seq) return; } - DBG("wait 0x%08x\n", iw.irq_seq); - iw.irq_seq = seq; + DBG("wait 0x%08x\n", iw.irq_seq); + /* The kernel IRQ_WAIT implementation is all sorts of broken. * 1) It returns 1 to 0x7fffffff instead of using the full 32-bit unsigned * range. -- 1.6.3.3
From 9043299720ef5ecac1fe575b0bbda19b81720dd8 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 18:00:43 +0300 Subject: [PATCH 13/19] libdrm/radeon: Remove unussed variables and make printf happy with explicity void* cast from struct radeon_bo*. --- libdrm/radeon/radeon_bo.h | 2 +- libdrm/radeon/radeon_bo_gem.c | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/libdrm/radeon/radeon_bo.h b/libdrm/radeon/radeon_bo.h index 597d0ef..3bb15af 100644 --- a/libdrm/radeon/radeon_bo.h +++ b/libdrm/radeon/radeon_bo.h @@ -84,7 +84,7 @@ static inline void _radeon_bo_debug(struct radeon_bo *bo, int line) { fprintf(stderr, "%s %p 0x%08X 0x%08X 0x%08X [%s %s %d]\n", - op, bo, bo->handle, bo->size, bo->cref, file, func, line); + op, (void*)bo, bo->handle, bo->size, bo->cref, file, func, line); } static inline struct radeon_bo *_radeon_bo_open(struct radeon_bo_manager *bom, diff --git a/libdrm/radeon/radeon_bo_gem.c b/libdrm/radeon/radeon_bo_gem.c index 558b93a..4ebf986 100644 --- a/libdrm/radeon/radeon_bo_gem.c +++ b/libdrm/radeon/radeon_bo_gem.c @@ -162,7 +162,7 @@ static int bo_map(struct radeon_bo *bo, int write) sizeof(args)); if (r) { fprintf(stderr, "error mapping %p 0x%08X (error = %d)\n", - bo, bo->handle, r); + (void*)bo, bo->handle, r); return r; } ptr = mmap(0, args.size, PROT_READ|PROT_WRITE, MAP_SHARED, bo->bom->fd, args.addr_ptr); @@ -239,7 +239,6 @@ uint32_t radeon_gem_name_bo(struct radeon_bo *bo) int radeon_gem_get_kernel_name(struct radeon_bo *bo, uint32_t *name) { - struct radeon_bo_gem *bo_gem = (struct radeon_bo_gem*)bo; struct drm_gem_flink flink; int r; @@ -254,7 +253,6 @@ int radeon_gem_get_kernel_name(struct radeon_bo *bo, uint32_t *name) int radeon_gem_set_domain(struct radeon_bo *bo, uint32_t read_domains, uint32_t write_domain) { - struct radeon_bo_gem *bo_gem = (struct radeon_bo_gem*)bo; struct drm_radeon_gem_set_domain args; int r; -- 1.6.3.3
From 36aef4bf07154ef6d206f15ff1c036a7f8e368a9 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 18:33:03 +0300 Subject: [PATCH 14/19] libdrm/radeon: Add config.h include to enable POSIX extensions for strdup call. --- libdrm/radeon/radeon_track.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/libdrm/radeon/radeon_track.c b/libdrm/radeon/radeon_track.c index 1623906..09f8725 100644 --- a/libdrm/radeon/radeon_track.c +++ b/libdrm/radeon/radeon_track.c @@ -27,6 +27,9 @@ * Authors: * Jérôme Glisse <gli...@freedesktop.org> */ +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif #include <stdio.h> #include <stdlib.h> #include <string.h> -- 1.6.3.3
From 9c0cd0ba5bb5966498cad2c5a8c69ec24c4c8e34 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 18:40:49 +0300 Subject: [PATCH 15/19] Fix signed/unsigned comparison warning --- libdrm/radeon/radeon_cs_gem.c | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libdrm/radeon/radeon_cs_gem.c b/libdrm/radeon/radeon_cs_gem.c index 264b067..43b136f 100644 --- a/libdrm/radeon/radeon_cs_gem.c +++ b/libdrm/radeon/radeon_cs_gem.c @@ -354,21 +354,22 @@ static void cs_gem_print(struct radeon_cs *cs, FILE *file) unsigned opcode; unsigned reg; unsigned cnt; - int i, j; + unsigned i,j; for (i = 0; i < cs->cdw;) { - cnt = CP_PACKET_GET_COUNT(cs->packets[i]); + /* First word in CP is not counted so has to add one to value */ + cnt = CP_PACKET_GET_COUNT(cs->packets[i]) + 1; switch (CP_PACKET_GET_TYPE(cs->packets[i])) { case PACKET_TYPE0: - fprintf(file, "Pkt0 at %d (%d dwords):\n", i, cnt + 1); + fprintf(file, "Pkt0 at %d (%d dwords):\n", i, cnt); reg = CP_PACKET0_GET_REG(cs->packets[i]); if (CP_PACKET0_GET_ONE_REG_WR(cs->packets[i++])) { - for (j = 0; j <= cnt; j++) { + for (j = 0; j < cnt; j++) { fprintf(file, " 0x%08X -> 0x%04X\n", cs->packets[i++], reg); } } else { - for (j = 0; j <= cnt; j++) { + for (j = 0; j < cnt; j++) { fprintf(file, " 0x%08X -> 0x%04X\n", cs->packets[i++], reg); reg += 4; @@ -410,7 +411,7 @@ static void cs_gem_print(struct radeon_cs *cs, FILE *file) fprintf(file, "Unknow opcode 0x%02X at %d\n", opcode, i); return; } - for (j = 0; j <= cnt; j++) { + for (j = 0; j < cnt; j++) { fprintf(file, " 0x%08X\n", cs->packets[i++]); } break; -- 1.6.3.3
From 1cd7a914be3fc5ee8aabdd2297710f5c781b555f Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 21:36:57 +0300 Subject: [PATCH 16/19] libdrm/tests: Fix compiler warnings in dristat.c. --- tests/dristat.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/dristat.c b/tests/dristat.c index 48c3b51..2551f82 100644 --- a/tests/dristat.c +++ b/tests/dristat.c @@ -26,7 +26,9 @@ * Authors: Rickard E. (Rik) Faith <fa...@valinux.com> * */ - +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -96,6 +98,7 @@ static void getvm(int fd) case DRM_SHM: typename = "SHM"; break; case DRM_AGP: typename = "AGP"; break; case DRM_SCATTER_GATHER: typename = "SG"; break; + case DRM_CONSISTENT: typename = "CON"; break; default: typename = "???"; break; } @@ -108,7 +111,7 @@ static void getvm(int fd) flagname[6] = '\0'; printf(" %4d 0x%08lx 0x%08lx %3.3s %6.6s 0x%08lx ", - i, offset, (unsigned long)size, typename, flagname, handle); + i, (unsigned long)offset, (unsigned long)size, typename, flagname, (unsigned long)handle); if (mtrr < 0) printf("none\n"); else printf("%4d\n", mtrr); } @@ -133,7 +136,8 @@ static void getclients(int fd) sprintf(buf, "/proc/%d/cmdline", pid); memset(cmd, 0, sizeof(cmd)); if ((procfd = open(buf, O_RDONLY, 0)) >= 0) { - read(procfd, cmd, sizeof(cmd)-1); + while (read(procfd, cmd, sizeof(cmd)-1) == -1 && errno == EINTR) + {} close(procfd); } if (*cmd) { @@ -184,7 +188,7 @@ static void printhuman(unsigned long value, const char *name, int mult) static void getstats(int fd, int i) { drmStatsT prev, curr; - int j; + unsigned int j; double rate; printf(" System statistics:\n"); -- 1.6.3.3
From c7926a7f1e738bf8dbafc7e5fb8e25e1f0b3f6a8 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 21:37:54 +0300 Subject: [PATCH 17/19] libdrm/tests: Fix compiler warnings in drmstat.c. --- tests/drmstat.c | 33 +++++++++++++++++++++++++-------- 1 files changed, 25 insertions(+), 8 deletions(-) diff --git a/tests/drmstat.c b/tests/drmstat.c index ed2aeb6..cea97db 100644 --- a/tests/drmstat.c +++ b/tests/drmstat.c @@ -28,6 +28,7 @@ * */ +#include <alloca.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -69,13 +70,15 @@ static void getversion(int fd) printf( "No driver available\n" ); } } - -void handler(int fd, void *oldctx, void *newctx) + +#if 0 +static void handler(int fd, void *oldctx, void *newctx) { printf("Got fd %d\n", fd); } +#endif -void process_sigio(char *device) +static void process_sigio(char *device) { int fd; @@ -89,6 +92,13 @@ void process_sigio(char *device) for (;;) sleep(60); } +#define system(command) \ + do { \ + int rv = system(command); \ + if (rv == 0) \ + exit(1); \ + } while(0); + int main(int argc, char **argv) { int c; @@ -104,6 +114,7 @@ int main(int argc, char **argv) int loops; char buf[1024]; int i; + unsigned int j; drmBufInfoPtr info; drmBufMapPtr bufs; drmLockPtr lock; @@ -115,7 +126,10 @@ int main(int argc, char **argv) case 'F': count = strtoul(optarg, NULL, 0); if (!fork()) { - dup(fd); + if (dup(fd) != -1) + { + exit(1); + } sleep(count); } close(fd); @@ -278,7 +292,7 @@ int main(int argc, char **argv) drmError(r, argv[0]); return 1; } - printf("0x%04lx byte shm added at 0x%08lx\n", size, handle); + printf("0x%04lx byte shm added at 0x%08lx\n", size, (unsigned long)handle); sprintf(buf, "cat /proc/dri/0/vm"); system(buf); break; @@ -326,9 +340,9 @@ int main(int argc, char **argv) printf("\n"); if (c == 'w') { printf("===== WRITING =====\n"); - for (i = 0; i < size; i+=2) { - ((char *)address)[i] = i & 0xff; - ((char *)address)[i+1] = i & 0xff; + for (j = 0; j < size; j+=2) { + ((char *)address)[j] = j & 0xff; + ((char *)address)[j+1] = j & 0xff; } } printf("===== READING =====\n"); @@ -414,6 +428,9 @@ int main(int argc, char **argv) return r; } +void +xf86VDrvMsgVerb(int scrnIndex, int type, int verb, const char *format, + va_list args) __attribute__((format(printf, 4, 0))); void xf86VDrvMsgVerb(int scrnIndex, int type, int verb, const char *format, -- 1.6.3.3
From 654356f6625bac34003313a3d7c54cb7b21df706 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 21:39:02 +0300 Subject: [PATCH 18/19] libdrm/tests: Fix compiler warnings in modeprint.c. --- tests/modeprint/modeprint.c | 31 +++++++++++++++++-------------- 1 files changed, 17 insertions(+), 14 deletions(-) diff --git a/tests/modeprint/modeprint.c b/tests/modeprint/modeprint.c index 595d444..9cde77d 100644 --- a/tests/modeprint/modeprint.c +++ b/tests/modeprint/modeprint.c @@ -50,20 +50,20 @@ int crtcs; int fbs; char *module_name; -const char* getConnectionText(drmModeConnection conn) +static const char* getConnectionText(drmModeConnection conn) { switch (conn) { case DRM_MODE_CONNECTED: return "connected"; case DRM_MODE_DISCONNECTED: return "disconnected"; - default: + case DRM_MODE_UNKNOWNCONNECTION: return "unknown"; } - + return 0; } -int printMode(struct drm_mode_modeinfo *mode) +static int printMode(drmModeModeInfoPtr mode) { if (full_modes) { printf("Mode: %s\n", mode->name); @@ -87,9 +87,9 @@ int printMode(struct drm_mode_modeinfo *mode) return 0; } -int printProperty(int fd, drmModeResPtr res, drmModePropertyPtr props, uint64_t value) +static int printProperty(int fd, drmModeResPtr res, drmModePropertyPtr props, uint64_t value) { - const unsigned char *name = NULL; + const char *name = NULL; int j; printf("Property: %s\n", props->name); @@ -120,8 +120,11 @@ int printProperty(int fd, drmModeResPtr res, drmModePropertyPtr props, uint64_t } } else { +#if 0 + /* FIXME: Why here was this if statment? */ if (!strncmp(props->name, "DPMS", 4)) ; +#endif for (j = 0; j < props->count_enums; j++) { printf("\t\t%lld = %s\n", props->enums[j].value, props->enums[j].name); @@ -139,10 +142,10 @@ int printProperty(int fd, drmModeResPtr res, drmModePropertyPtr props, uint64_t return 0; } -int printConnector(int fd, drmModeResPtr res, drmModeConnectorPtr connector, uint32_t id) +static int printConnector(int fd, drmModeResPtr res, drmModeConnectorPtr connector, uint32_t id) { int i = 0; - struct drm_mode_modeinfo *mode = NULL; + drmModeModeInfoPtr mode = NULL; drmModePropertyPtr props; printf("Connector: %d-%d\n", connector->connector_type, connector->connector_type_id); @@ -187,7 +190,7 @@ int printConnector(int fd, drmModeResPtr res, drmModeConnectorPtr connector, uin return 0; } -int printEncoder(int fd, drmModeResPtr res, drmModeEncoderPtr encoder, uint32_t id) +static int printEncoder(int fd, drmModeResPtr res, drmModeEncoderPtr encoder, uint32_t id) { printf("Encoder\n"); printf("\tid :%i\n", id); @@ -198,7 +201,7 @@ int printEncoder(int fd, drmModeResPtr res, drmModeEncoderPtr encoder, uint32_t return 0; } -int printCrtc(int fd, drmModeResPtr res, drmModeCrtcPtr crtc, uint32_t id) +static int printCrtc(int fd, drmModeResPtr res, drmModeCrtcPtr crtc, uint32_t id) { printf("Crtc\n"); printf("\tid : %i\n", id); @@ -206,13 +209,13 @@ int printCrtc(int fd, drmModeResPtr res, drmModeCrtcPtr crtc, uint32_t id) printf("\ty : %i\n", crtc->y); printf("\twidth : %i\n", crtc->width); printf("\theight : %i\n", crtc->height); - printf("\tmode : %p\n", &crtc->mode); + printf("\tmode : %p\n", (void*)&crtc->mode); printf("\tgamma size : %d\n", crtc->gamma_size); return 0; } -int printFrameBuffer(int fd, drmModeResPtr res, drmModeFBPtr fb) +static int printFrameBuffer(int fd, drmModeResPtr res, drmModeFBPtr fb) { printf("Framebuffer\n"); printf("\thandle : %i\n", fb->handle); @@ -226,7 +229,7 @@ int printFrameBuffer(int fd, drmModeResPtr res, drmModeFBPtr fb) return 0; } -int printRes(int fd, drmModeResPtr res) +static int printRes(int fd, drmModeResPtr res) { int i; drmModeFBPtr fb; @@ -302,7 +305,7 @@ int printRes(int fd, drmModeResPtr res) return 0; } -void args(int argc, char **argv) +static void args(int argc, char **argv) { int i; -- 1.6.3.3
From 7d07667d09bc4500374387483e8a2e75ca158424 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen <suok...@gmail.com> Date: Mon, 20 Jul 2009 21:39:43 +0300 Subject: [PATCH 19/19] libdrm/tests: Fix compiler warnings in modetest.c. --- tests/modetest/modetest.c | 48 +++++++++++++++++++++----------------------- 1 files changed, 23 insertions(+), 25 deletions(-) diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c index 6c69a57..7b1bb1b 100644 --- a/tests/modetest/modetest.c +++ b/tests/modetest/modetest.c @@ -63,12 +63,12 @@ int fd, modes; struct type_name { int type; - char *name; + const char *name; }; #define type_name_fn(res) \ -char * res##_str(int type) { \ - int i; \ +static const char * res##_str(int type) { \ + unsigned int i; \ for (i = 0; i < ARRAY_SIZE(res##_names); i++) { \ if (res##_names[i].type == type) \ return res##_names[i].name; \ @@ -112,7 +112,7 @@ struct type_name connector_type_names[] = { type_name_fn(connector_type) -void dump_encoders(void) +static void dump_encoders(void) { drmModeEncoder *encoder; int i; @@ -138,7 +138,7 @@ void dump_encoders(void) printf("\n"); } -void dump_mode(drmModeModeInfo *mode) +static void dump_mode(drmModeModeInfo *mode) { printf(" %s %.02f %d %d %d %d %d %d %d %d\n", mode->name, @@ -166,7 +166,7 @@ dump_props(drmModeConnector *connector) } } -void dump_connectors(void) +static void dump_connectors(void) { drmModeConnector *connector; int i, j; @@ -207,7 +207,7 @@ void dump_connectors(void) printf("\n"); } -void dump_crtcs(void) +static void dump_crtcs(void) { drmModeCrtc *crtc; int i; @@ -234,7 +234,7 @@ void dump_crtcs(void) printf("\n"); } -void dump_framebuffers(void) +static void dump_framebuffers(void) { drmModeFB *fb; int i; @@ -251,7 +251,8 @@ void dump_framebuffers(void) } printf("%d\t(%dx%d)\t%d\n", fb->fb_id, - fb->width, fb->height); + fb->width, fb->height, + fb->bpp); drmModeFreeFB(fb); } @@ -266,7 +267,7 @@ void dump_framebuffers(void) * can bind it with a free crtc. */ struct connector { - int id; + unsigned int id; char mode_str[64]; drmModeModeInfo *mode; drmModeEncoder *encoder; @@ -277,7 +278,7 @@ static void connector_find_mode(struct connector *c) { drmModeConnector *connector; - int i, j, size, ret, width, height; + int i, j; /* First, find the connector & mode */ c->mode = NULL; @@ -348,7 +349,7 @@ create_test_buffer(drm_intel_bufmgr *bufmgr, { drm_intel_bo *bo; unsigned int *fb_ptr; - int size, ret, i, stride; + int size, i, stride; div_t d; cairo_surface_t *surface; cairo_t *cr; @@ -460,13 +461,10 @@ create_test_buffer(drm_intel_bufmgr *bufmgr, static void set_mode(struct connector *c, int count) { - drmModeConnector *connector; - drmModeEncoder *encoder = NULL; - struct drm_mode_modeinfo *mode = NULL; drm_intel_bufmgr *bufmgr; drm_intel_bo *bo; unsigned int fb_id; - int i, j, ret, width, height, x, stride; + int i, ret, width, height, x, stride; width = 0; height = 0; @@ -497,7 +495,6 @@ set_mode(struct connector *c, int count) x = 0; for (i = 0; i < count; i++) { - int crtc_id; if (c[i].mode == NULL) continue; @@ -519,7 +516,7 @@ extern char *optarg; extern int optind, opterr, optopt; static char optstr[] = "ecpmfs:"; -void usage(char *name) +static void usage(char *name) { fprintf(stderr, "usage: %s [-ecpmf]\n", name); fprintf(stderr, "\t-e\tlist encoders\n"); @@ -539,9 +536,10 @@ int main(int argc, char **argv) { int c; int encoders = 0, connectors = 0, crtcs = 0, framebuffers = 0; - char *modules[] = { "i915", "radeon" }; - char *modeset = NULL, *mode, *connector; - int i, connector_id, count = 0; + const char *modules[] = { "i915", "radeon" }; + char *modeset = NULL; + unsigned int i; + int count = 0; struct connector con_args[2]; opterr = 0; @@ -565,13 +563,13 @@ int main(int argc, char **argv) case 's': modeset = strdup(optarg); con_args[count].crtc = -1; - if (sscanf(optarg, "%d:%64s", + if (sscanf(optarg, "%u:%64s", &con_args[count].id, - &con_args[count].mode_str) != 2 && - sscanf(optarg, "%...@%d:%64s", + con_args[count].mode_str) != 2 && + sscanf(optarg, "%...@%d:%64s", &con_args[count].id, &con_args[count].crtc, - &con_args[count].mode_str) != 3) + con_args[count].mode_str) != 3) usage(argv[0]); count++; break; -- 1.6.3.3
------------------------------------------------------------------------------
-- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel