[PATCH v6 12/23] modetest: Create a device structure
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
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], +