[PATCH v6 12/23] modetest: Create a device structure

2013-06-15 Thread Laurent Pinchart
Instead of passing the device fd and resources as global variables group
them in a device structure and pass it explictly to all functions that
need it.

Signed-off-by: Laurent Pinchart 
---
 tests/modetest/modetest.c | 201 --
 1 file changed, 103 insertions(+), 98 deletions(-)

diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c
index 89bfc53..cfcb989 100644
--- a/tests/modetest/modetest.c
+++ b/tests/modetest/modetest.c
@@ -95,8 +95,12 @@ struct resources {
struct plane *planes;
 };

-struct resources *resources;
-int fd;
+struct device {
+   int fd;
+
+   struct resources *resources;
+   struct kms_driver *kms;
+};

 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))

@@ -197,15 +201,15 @@ static const char *mode_flag_names[] = {

 static bit_name_fn(mode_flag)

-static void dump_encoders(void)
+static void dump_encoders(struct device *dev)
 {
drmModeEncoder *encoder;
int i;

printf("Encoders:\n");
printf("id\tcrtc\ttype\tpossible crtcs\tpossible clones\t\n");
-   for (i = 0; i < resources->res->count_encoders; i++) {
-   encoder = resources->encoders[i].encoder;
+   for (i = 0; i < dev->resources->res->count_encoders; i++) {
+   encoder = dev->resources->encoders[i].encoder;
if (!encoder)
continue;

@@ -240,14 +244,13 @@ static void dump_mode(drmModeModeInfo *mode)
printf("\n");
 }

-static void
-dump_blob(uint32_t blob_id)
+static void dump_blob(struct device *dev, uint32_t blob_id)
 {
uint32_t i;
unsigned char *blob_data;
drmModePropertyBlobPtr blob;

-   blob = drmModeGetPropertyBlob(fd, blob_id);
+   blob = drmModeGetPropertyBlob(dev->fd, blob_id);
if (!blob)
return;

@@ -263,8 +266,8 @@ dump_blob(uint32_t blob_id)
drmModeFreePropertyBlob(blob);
 }

-static void
-dump_prop(drmModePropertyPtr prop, uint32_t prop_id, uint64_t value)
+static void dump_prop(struct device *dev, drmModePropertyPtr prop,
+ uint32_t prop_id, uint64_t value)
 {
int i;
printf("\t%d", prop_id);
@@ -316,7 +319,7 @@ dump_prop(drmModePropertyPtr prop, uint32_t prop_id, 
uint64_t value)
if (prop->flags & DRM_MODE_PROP_BLOB) {
printf("\t\tblobs:\n");
for (i = 0; i < prop->count_blobs; i++)
-   dump_blob(prop->blob_ids[i]);
+   dump_blob(dev, prop->blob_ids[i]);
printf("\n");
} else {
assert(prop->count_blobs == 0);
@@ -324,19 +327,19 @@ dump_prop(drmModePropertyPtr prop, uint32_t prop_id, 
uint64_t value)

printf("\t\tvalue:");
if (prop->flags & DRM_MODE_PROP_BLOB)
-   dump_blob(value);
+   dump_blob(dev, value);
else
printf(" %"PRIu64"\n", value);
 }

-static void dump_connectors(void)
+static void dump_connectors(struct device *dev)
 {
int i, j;

printf("Connectors:\n");
printf("id\tencoder\tstatus\t\ttype\tsize (mm)\tmodes\tencoders\n");
-   for (i = 0; i < resources->res->count_connectors; i++) {
-   struct connector *_connector = >connectors[i];
+   for (i = 0; i < dev->resources->res->count_connectors; i++) {
+   struct connector *_connector = >resources->connectors[i];
drmModeConnector *connector = _connector->connector;
if (!connector)
continue;
@@ -364,7 +367,7 @@ static void dump_connectors(void)
if (_connector->props) {
printf("  props:\n");
for (j = 0; j < (int)_connector->props->count_props; 
j++)
-   dump_prop(_connector->props_info[j],
+   dump_prop(dev, _connector->props_info[j],
  _connector->props->props[j],
  _connector->props->prop_values[j]);
}
@@ -372,15 +375,15 @@ static void dump_connectors(void)
printf("\n");
 }

-static void dump_crtcs(void)
+static void dump_crtcs(struct device *dev)
 {
int i;
uint32_t j;

printf("CRTCs:\n");
printf("id\tfb\tpos\tsize\n");
-   for (i = 0; i < resources->res->count_crtcs; i++) {
-   struct crtc *_crtc = >crtcs[i];
+   for (i = 0; i < dev->resources->res->count_crtcs; i++) {
+   struct crtc *_crtc = >resources->crtcs[i];
drmModeCrtc *crtc = _crtc->crtc;
if (!crtc)
continue;
@@ -395,7 +398,7 @@ static void dump_crtcs(void)
if (_crtc->props) {
printf("  props:\n");
for (j = 0; j < _crtc->props->count_props; j++)
-   dump_prop(_crtc->props_info[j],
+ 

[PATCH v6 12/23] modetest: Create a device structure

2013-06-14 Thread Laurent Pinchart
Instead of passing the device fd and resources as global variables group
them in a device structure and pass it explictly to all functions that
need it.

Signed-off-by: Laurent Pinchart laurent.pinch...@ideasonboard.com
---
 tests/modetest/modetest.c | 201 --
 1 file changed, 103 insertions(+), 98 deletions(-)

diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c
index 89bfc53..cfcb989 100644
--- a/tests/modetest/modetest.c
+++ b/tests/modetest/modetest.c
@@ -95,8 +95,12 @@ struct resources {
struct plane *planes;
 };
 
-struct resources *resources;
-int fd;
+struct device {
+   int fd;
+
+   struct resources *resources;
+   struct kms_driver *kms;
+};
 
 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
 
@@ -197,15 +201,15 @@ static const char *mode_flag_names[] = {
 
 static bit_name_fn(mode_flag)
 
-static void dump_encoders(void)
+static void dump_encoders(struct device *dev)
 {
drmModeEncoder *encoder;
int i;
 
printf(Encoders:\n);
printf(id\tcrtc\ttype\tpossible crtcs\tpossible clones\t\n);
-   for (i = 0; i  resources-res-count_encoders; i++) {
-   encoder = resources-encoders[i].encoder;
+   for (i = 0; i  dev-resources-res-count_encoders; i++) {
+   encoder = dev-resources-encoders[i].encoder;
if (!encoder)
continue;
 
@@ -240,14 +244,13 @@ static void dump_mode(drmModeModeInfo *mode)
printf(\n);
 }
 
-static void
-dump_blob(uint32_t blob_id)
+static void dump_blob(struct device *dev, uint32_t blob_id)
 {
uint32_t i;
unsigned char *blob_data;
drmModePropertyBlobPtr blob;
 
-   blob = drmModeGetPropertyBlob(fd, blob_id);
+   blob = drmModeGetPropertyBlob(dev-fd, blob_id);
if (!blob)
return;
 
@@ -263,8 +266,8 @@ dump_blob(uint32_t blob_id)
drmModeFreePropertyBlob(blob);
 }
 
-static void
-dump_prop(drmModePropertyPtr prop, uint32_t prop_id, uint64_t value)
+static void dump_prop(struct device *dev, drmModePropertyPtr prop,
+ uint32_t prop_id, uint64_t value)
 {
int i;
printf(\t%d, prop_id);
@@ -316,7 +319,7 @@ dump_prop(drmModePropertyPtr prop, uint32_t prop_id, 
uint64_t value)
if (prop-flags  DRM_MODE_PROP_BLOB) {
printf(\t\tblobs:\n);
for (i = 0; i  prop-count_blobs; i++)
-   dump_blob(prop-blob_ids[i]);
+   dump_blob(dev, prop-blob_ids[i]);
printf(\n);
} else {
assert(prop-count_blobs == 0);
@@ -324,19 +327,19 @@ dump_prop(drmModePropertyPtr prop, uint32_t prop_id, 
uint64_t value)
 
printf(\t\tvalue:);
if (prop-flags  DRM_MODE_PROP_BLOB)
-   dump_blob(value);
+   dump_blob(dev, value);
else
printf( %PRIu64\n, value);
 }
 
-static void dump_connectors(void)
+static void dump_connectors(struct device *dev)
 {
int i, j;
 
printf(Connectors:\n);
printf(id\tencoder\tstatus\t\ttype\tsize (mm)\tmodes\tencoders\n);
-   for (i = 0; i  resources-res-count_connectors; i++) {
-   struct connector *_connector = resources-connectors[i];
+   for (i = 0; i  dev-resources-res-count_connectors; i++) {
+   struct connector *_connector = dev-resources-connectors[i];
drmModeConnector *connector = _connector-connector;
if (!connector)
continue;
@@ -364,7 +367,7 @@ static void dump_connectors(void)
if (_connector-props) {
printf(  props:\n);
for (j = 0; j  (int)_connector-props-count_props; 
j++)
-   dump_prop(_connector-props_info[j],
+   dump_prop(dev, _connector-props_info[j],
  _connector-props-props[j],
  _connector-props-prop_values[j]);
}
@@ -372,15 +375,15 @@ static void dump_connectors(void)
printf(\n);
 }
 
-static void dump_crtcs(void)
+static void dump_crtcs(struct device *dev)
 {
int i;
uint32_t j;
 
printf(CRTCs:\n);
printf(id\tfb\tpos\tsize\n);
-   for (i = 0; i  resources-res-count_crtcs; i++) {
-   struct crtc *_crtc = resources-crtcs[i];
+   for (i = 0; i  dev-resources-res-count_crtcs; i++) {
+   struct crtc *_crtc = dev-resources-crtcs[i];
drmModeCrtc *crtc = _crtc-crtc;
if (!crtc)
continue;
@@ -395,7 +398,7 @@ static void dump_crtcs(void)
if (_crtc-props) {
printf(  props:\n);
for (j = 0; j  _crtc-props-count_props; j++)
-   dump_prop(_crtc-props_info[j],
+