summaryrefslogtreecommitdiff
path: root/shared-core
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2007-12-05 16:03:05 +1000
committerDave Airlie <airlied@redhat.com>2007-12-05 16:03:05 +1000
commit1a6c95ef711fce807659ab5e4fe480d65ac233b6 (patch)
treec50176cc24a94b527a623b99caa9896cb4a4350f /shared-core
parentf7432d187e4b5e13c9e450bf12d5ab8c18ea5146 (diff)
arrgggh.. make all ioctl structs 32/64-bit compatible hopefully.
This also starts to add blob property support. someone needs to check this work for other things like ppc/x86 alignment diffs
Diffstat (limited to 'shared-core')
-rw-r--r--shared-core/drm.h48
1 files changed, 24 insertions, 24 deletions
diff --git a/shared-core/drm.h b/shared-core/drm.h
index f4f75cf5..6317f142 100644
--- a/shared-core/drm.h
+++ b/shared-core/drm.h
@@ -920,18 +920,19 @@ struct drm_mode_modeinfo {
};
struct drm_mode_card_res {
-
+ uint64_t fb_id_ptr;
+ uint64_t crtc_id_ptr;
+ uint64_t output_id_ptr;
int count_fbs;
- unsigned int __user *fb_id;
-
int count_crtcs;
- unsigned int __user *crtc_id;
-
int count_outputs;
- unsigned int __user *output_id;
+ int min_width, max_width;
+ int min_height, max_height;
};
struct drm_mode_crtc {
+ uint64_t set_outputs_ptr;
+
unsigned int crtc_id; /**< Id */
unsigned int fb_id; /**< Id of framebuffer */
@@ -942,9 +943,6 @@ struct drm_mode_crtc {
int count_possibles;
unsigned int possibles; /**< Outputs that can be connected */
-
- unsigned int __user *set_outputs; /**< Outputs to be connected */
-
int gamma_size;
int mode_valid;
struct drm_mode_modeinfo mode;
@@ -952,6 +950,12 @@ struct drm_mode_crtc {
struct drm_mode_get_output {
+ uint64_t modes_ptr;
+ uint64_t props_ptr;
+ uint64_t prop_values_ptr;
+
+ int count_modes;
+ int count_props;
unsigned int output; /**< Id */
unsigned int crtc; /**< Id of crtc */
unsigned char name[DRM_OUTPUT_NAME_LEN];
@@ -959,42 +963,37 @@ struct drm_mode_get_output {
unsigned int connection;
unsigned int mm_width, mm_height; /**< HxW in millimeters */
unsigned int subpixel;
-
int count_crtcs;
- unsigned int crtcs; /**< possible crtc to connect to */
-
int count_clones;
+ unsigned int crtcs; /**< possible crtc to connect to */
unsigned int clones; /**< list of clones */
-
- int count_modes;
- struct drm_mode_modeinfo *modes;
-
- int count_props;
- unsigned int __user *props;
- unsigned int __user *prop_values;
};
#define DRM_MODE_PROP_PENDING (1<<0)
#define DRM_MODE_PROP_RANGE (1<<1)
#define DRM_MODE_PROP_IMMUTABLE (1<<2)
#define DRM_MODE_PROP_ENUM (1<<3) // enumerated type with text strings
+#define DRM_MODE_PROP_BLOB (1<<4)
struct drm_mode_property_enum {
- uint32_t value;
+ uint64_t value;
unsigned char name[DRM_PROP_NAME_LEN];
};
+
+struct drm_mode_property_blob {
+ uint32_t length;
+};
struct drm_mode_get_property {
+ uint64_t values_ptr;
+ uint64_t enum_blob_ptr;
unsigned int prop_id;
unsigned int flags;
unsigned char name[DRM_PROP_NAME_LEN];
int count_values;
- uint32_t __user *values;
-
- int count_enums;
- struct drm_mode_property_enum *enums;
+ int count_enum_blobs;
};
struct drm_mode_fb_cmd {
@@ -1111,6 +1110,7 @@ struct drm_mode_mode_cmd {
#define DRM_IOCTL_MODE_RMFB DRM_IOWR(0xA5, unsigned int)
#define DRM_IOCTL_MODE_GETFB DRM_IOWR(0xA6, struct drm_mode_fb_cmd)
+#define DRM_IOCTL_MODE_GETPROPBLOB DRM_IOWR(0xA8, struct drm_mode_get_propblob)
#define DRM_IOCTL_MODE_ATTACHMODE DRM_IOWR(0xA9, struct drm_mode_mode_cmd)
#define DRM_IOCTL_MODE_DETACHMODE DRM_IOWR(0xAA, struct drm_mode_mode_cmd)