Lines Matching defs:conn
500 struct drm_mode_get_connector conn, counts;
504 memclear(conn);
505 conn.connector_id = connector_id;
507 conn.count_modes = 1;
508 conn.modes_ptr = VOID2U64(&stack_mode);
511 if (drmIoctl(fd, DRM_IOCTL_MODE_GETCONNECTOR, &conn))
515 counts = conn;
517 if (conn.count_props) {
518 conn.props_ptr = VOID2U64(drmMalloc(conn.count_props*sizeof(uint32_t)));
519 if (!conn.props_ptr)
521 conn.prop_values_ptr = VOID2U64(drmMalloc(conn.count_props*sizeof(uint64_t)));
522 if (!conn.prop_values_ptr)
526 if (conn.count_modes) {
527 conn.modes_ptr = VOID2U64(drmMalloc(conn.count_modes*sizeof(struct drm_mode_modeinfo)));
528 if (!conn.modes_ptr)
531 conn.count_modes = 1;
532 conn.modes_ptr = VOID2U64(&stack_mode);
535 if (conn.count_encoders) {
536 conn.encoders_ptr = VOID2U64(drmMalloc(conn.count_encoders*sizeof(uint32_t)));
537 if (!conn.encoders_ptr)
541 if (drmIoctl(fd, DRM_IOCTL_MODE_GETCONNECTOR, &conn))
548 if (counts.count_props < conn.count_props ||
549 counts.count_modes < conn.count_modes ||
550 counts.count_encoders < conn.count_encoders) {
551 drmFree(U642VOID(conn.props_ptr));
552 drmFree(U642VOID(conn.prop_values_ptr));
553 if (U642VOID(conn.modes_ptr) != &stack_mode)
554 drmFree(U642VOID(conn.modes_ptr));
555 drmFree(U642VOID(conn.encoders_ptr));
564 r->connector_id = conn.connector_id;
565 r->encoder_id = conn.encoder_id;
566 r->connection = conn.connection;
567 r->mmWidth = conn.mm_width;
568 r->mmHeight = conn.mm_height;
570 r->subpixel = conn.subpixel + 1;
571 r->count_modes = conn.count_modes;
572 r->count_props = conn.count_props;
573 r->props = drmAllocCpy(U642VOID(conn.props_ptr), conn.count_props, sizeof(uint32_t));
574 r->prop_values = drmAllocCpy(U642VOID(conn.prop_values_ptr), conn.count_props, sizeof(uint64_t));
575 r->modes = drmAllocCpy(U642VOID(conn.modes_ptr), conn.count_modes, sizeof(struct drm_mode_modeinfo));
576 r->count_encoders = conn.count_encoders;
577 r->encoders = drmAllocCpy(U642VOID(conn.encoders_ptr), conn.count_encoders, sizeof(uint32_t));
578 r->connector_type = conn.connector_type;
579 r->connector_type_id = conn.connector_type_id;
594 drmFree(U642VOID(conn.prop_values_ptr));
595 drmFree(U642VOID(conn.props_ptr));
596 if (U642VOID(conn.modes_ptr) != &stack_mode)
597 drmFree(U642VOID(conn.modes_ptr));
598 drmFree(U642VOID(conn.encoders_ptr));