1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  */
  25 
  26 #pragma ident   "%Z%%M% %I%     %E% SMI"
  27 
  28 #ifndef __RADEON_IO32_H__
  29 #define __RADEON_IO32_H__
  30 
  31 
  32 #ifdef  _MULTI_DATAMODEL
  33 /*
  34  * For radeon_cp_init()
  35  */
  36 typedef struct drm_radeon_init_32 {
  37         int     func;
  38         unsigned int sarea_priv_offset;
  39         int is_pci; /* for overriding only */
  40         int cp_mode;
  41         int gart_size;
  42         int ring_size;
  43         int usec_timeout;
  44 
  45         unsigned int fb_bpp;
  46         unsigned int front_offset, front_pitch;
  47         unsigned int back_offset, back_pitch;
  48         unsigned int depth_bpp;
  49         unsigned int depth_offset, depth_pitch;
  50 
  51         unsigned int fb_offset DEPRECATED;
  52         unsigned int mmio_offset DEPRECATED;
  53         unsigned int ring_offset;
  54         unsigned int ring_rptr_offset;
  55         unsigned int buffers_offset;
  56         unsigned int gart_textures_offset;
  57 } drm_radeon_init_32_t;
  58 
  59 /*
  60  * radeon_cp_buffers()
  61  */
  62 typedef struct drm_dma_32 {
  63         int             context;
  64         int             send_count;
  65         uint32_t        send_indices;
  66         uint32_t        send_sizes;
  67         drm_dma_flags_t flags;
  68         int             request_count;
  69         int             request_size;
  70         uint32_t        request_indices;
  71         uint32_t        request_sizes;
  72         int granted_count;
  73 } drm_dma_32_t;
  74 
  75 /*
  76  * drm_radeon_clear()
  77  */
  78 typedef struct drm_radeon_clear_32 {
  79         unsigned int    flags;
  80         unsigned int    clear_color;
  81         unsigned int    clear_depth;
  82         unsigned int    color_mask;
  83         unsigned int    depth_mask;
  84         uint32_t        depth_boxes;
  85 } drm_radeon_clear_32_t;
  86 
  87 /*
  88  * For radeon_cp_texture()
  89  */
  90 typedef struct drm_radeon_tex_image_32 {
  91         unsigned int    x, y;
  92         unsigned int    width, height;
  93         uint32_t        data;
  94 } drm_radeon_tex_image_32_t;
  95 
  96 typedef struct drm_radeon_texture_32 {
  97         unsigned int offset;
  98         int             pitch;
  99         int             format;
 100         int             width;
 101         int             height;
 102         uint32_t        image;
 103 } drm_radeon_texture_32_t;
 104 
 105 /*
 106  * for radeon_cp_stipple()
 107  */
 108 typedef struct drm_radeon_stipple_32 {
 109         uint32_t mask;
 110 } drm_radeon_stipple_32_t;
 111 
 112 /*
 113  * radeon_cp_vertex2()
 114  */
 115 typedef struct drm_radeon_vertex2_32 {
 116         int             idx;
 117         int             discard;
 118         int             nr_states;
 119         uint32_t        state;
 120         int     nr_prims;
 121         uint32_t prim;
 122 } drm_radeon_vertex2_32_t;
 123 
 124 /*
 125  * radeon_cp_cmdbuf()
 126  */
 127 typedef struct drm_radeon_kcmd_buffer_32 {
 128         int     bufsz;
 129         uint32_t buf;
 130         int     nbox;
 131         uint32_t boxes;
 132 } drm_radeon_kcmd_buffer_32_t;
 133 
 134 /*
 135  * radeon_cp_getparam()
 136  */
 137 typedef struct drm_radeon_getparam_32 {
 138         int     param;
 139         uint32_t value;
 140 } drm_radeon_getparam_32_t;
 141 
 142 
 143 /*
 144  * radeon_mem_alloc()
 145  */
 146 typedef struct drm_radeon_mem_alloc_32 {
 147         int     region;
 148         int     alignment;
 149         int     size;
 150         uint32_t region_offset; /* offset from start of fb or GART */
 151 } drm_radeon_mem_alloc_32_t;
 152 
 153 
 154 /*
 155  * radeon_irq_emit()
 156  */
 157 typedef struct drm_radeon_irq_emit_32 {
 158         uint32_t        irq_seq;
 159 } drm_radeon_irq_emit_32_t;
 160 
 161 
 162 /*
 163  * radeon_cp_setparam()
 164  */
 165 #pragma pack(1)
 166 typedef struct drm_radeon_setparam_32 {
 167         unsigned int param;
 168         uint64_t        value;
 169 } drm_radeon_setparam_32_t;
 170 #pragma pack()
 171 
 172 #endif  /* _MULTI_DATAMODEL */
 173 #endif  /* __RADEON_IO32_H__ */