root/dev/ic/stireg.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. sti_ecfg_t
  2. sti_cfg_t
  3. sti_initflags_t
  4. sti_einitin_t
  5. sti_initin_t
  6. sti_initout_t
  7. sti_mgmtflags_t
  8. sti_mgmtin_t
  9. sti_mgmtout_t
  10. sti_unpmvflags_t
  11. sti_unpmvin_t
  12. sti_unpmvout_t
  13. sti_blkmvflags_t
  14. sti_blkmvin_t
  15. sti_blkmvout_t
  16. sti_testflags_t
  17. sti_testin_t
  18. sti_testout_t
  19. sti_exhdlflags_t
  20. sti_eexhdlin_t
  21. sti_exhdlint_t
  22. sti_exhdlin_t
  23. sti_eexhdlout_t
  24. sti_exhdlout_t
  25. sti_inqconfflags_t
  26. sti_inqconfin_t
  27. sti_einqconfout_t
  28. sti_inqconfout_t
  29. sti_scmentflags_t
  30. sti_scmentin_t
  31. sti_scmentout_t
  32. sti_dmacflags_t
  33. sti_dmacin_t
  34. sti_dmacout_t
  35. sti_flowcflags_t
  36. sti_flowcin_t
  37. sti_flowcout_t
  38. sti_utimingflags_t
  39. sti_utimingin_t
  40. sti_utimingout_t
  41. sti_pmgrflags_t
  42. sti_pmgrin_t
  43. sti_pmgrout_t
  44. sti_utilflags_t
  45. sti_utilin_t
  46. sti_utilout_t

    1 /*      $OpenBSD: stireg.h,v 1.11 2005/10/29 11:54:07 miod Exp $        */
    2 
    3 /*
    4  * Copyright (c) 2000 Michael Shalayeff
    5  * All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   19  * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT,
   20  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   22  * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   24  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
   25  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
   26  * THE POSSIBILITY OF SUCH DAMAGE.
   27  */
   28 
   29 #ifndef _IC_STIREG_H_
   30 #define _IC_STIREG_H_
   31 
   32 /* #define      STIDEBUG */
   33 
   34 #define STI_REGION_MAX  8
   35 #define STI_MONITOR_MAX 256
   36 #define STI_DEVNAME_LEN 32
   37 #define STI_NCMAP       256
   38 
   39 /* code ROM definitions */
   40 #define STI_BEGIN       0
   41 #define STI_INIT_GRAPH  0
   42 #define STI_STATE_MGMT  1
   43 #define STI_FONT_UNPMV  2
   44 #define STI_BLOCK_MOVE  3
   45 #define STI_SELF_TEST   4
   46 #define STI_EXCEP_HDLR  5
   47 #define STI_INQ_CONF    6
   48 #define STI_SCM_ENT     7
   49 #define STI_DMA_CTRL    8
   50 #define STI_FLOW_CTRL   9
   51 #define STI_UTIMING     10
   52 #define STI_PROC_MGR    11
   53 #define STI_UTIL        12
   54 #define STI_END         13
   55 #define STI_CODECNT     16
   56 
   57 #define STI_CODEBASE_MAIN       0x40
   58 #define STI_CODEBASE_ALT        0x80
   59 
   60 #define STI_CODEBASE_PA         STI_CODEBASE_MAIN
   61 #define STI_CODEBASE_M68K       STI_CODEBASE_ALT
   62 #define STI_CODEBASE_PA64       STI_CODEBASE_ALT
   63 
   64 /* sti returns */
   65 #define STI_OK          0
   66 #define STI_FAIL        -1
   67 #define STI_NRDY        1
   68 
   69 /* sti errno */
   70 #define STI_NOERRNO             0       /* no error */
   71 #define STI_BADREENTLVL         1       /* bad reentry level */
   72 #define STI_NOREGIONSDEF        2       /* region table is not setup */
   73 #define STI_ILLNPLANES          3       /* invalid num of text planes */
   74 #define STI_ILLINDEX            4       /* invalid font index */
   75 #define STI_ILLLOC              5       /* invalid font location */
   76 #define STI_ILLCOLOUR           6       /* invalid colour */
   77 #define STI_ILLBLKMVFROM        7       /* invalid from in blkmv */
   78 #define STI_ILLBLKMVTO          8       /* invalid to in blkmv */
   79 #define STI_ILLBLKMVSIZE        9       /* invalid size in blkmv */
   80 #define STI_BEIUNSUPP           10      /* bus error ints unsupported */
   81 #define STI_UNXPBE              11      /* unexpected bus error */
   82 #define STI_UNXHWF              12      /* unexpected hardware failure */
   83 #define STI_NEGCFG              13      /* no ext global config struct */
   84 #define STI_NEIG                14      /* no ext init struct */
   85 #define STI_ILLSCME             15      /* invalid set cmap entry */
   86 #define STI_ILLCMVAL            16      /* invalid cmap value */
   87 #define STI_NORESMEM            17      /* no requested global memory */
   88 #define STI_RESMEMCORR          18      /* reserved memory corrupted */
   89 #define STI_ILLNTBLKMV          19      /* invalid non-text blkmv */
   90 #define STI_ILLMONITOR          20      /* monitor selection is out of range */
   91 #define STI_ILLEXCADDR          21      /* invalid excpt handler addr */
   92 #define STI_ILLEXCFLAGS         22      /* invalid excpt handler flags */
   93 #define STI_NOEHE               23      /* no ext exhdl struct */
   94 #define STI_NOINQCE             24      /* no ext inq cfg struct */
   95 #define STI_ILLRGNPTR           25      /* invalid region pointer */
   96 #define STI_ILLUTLOP            26      /* invalid util opcode */
   97 #define STI_UNKNOWN             250     /* unknown error */
   98 #define STI_NOCFGPTR            251     /* no config ptr defined */
   99 #define STI_NOFLPTR             252     /* no flag ptr defined */
  100 #define STI_NOINPTR             253     /* no in ptr defined */
  101 #define STI_NOOUTPTR            254     /* no way you can get it */
  102 #define STI_NOLOCK              255     /* kernel dishonour graphics lock */
  103 
  104 /* colours */
  105 #define STI_COLOUR_BLACK        0
  106 #define STI_COLOUR_WHITE        1
  107 #define STI_COLOUR_RED          2
  108 #define STI_COLOUR_YELLOW       3
  109 #define STI_COLOUR_GREEN        4
  110 #define STI_COLOUR_CYAN         5
  111 #define STI_COLOUR_BLUE         6
  112 #define STI_COLOUR_MAGENTA      7
  113 
  114 #pragma pack(1)
  115 
  116         /* LSB high */
  117 struct  sti_dd {
  118         u_int32_t       dd_type;        /* 0x00 device type */
  119 #define STI_DEVTYPE1    1
  120 #define STI_DEVTYPE4    3
  121         u_int8_t        dd_unused;
  122         u_int8_t        dd_nmon;        /* 0x05 number monitor rates */
  123         u_int8_t        dd_grrev;       /* 0x06 global rom revision */
  124         u_int8_t        dd_lrrev;       /* 0x07 local rom revision */
  125         u_int32_t       dd_grid[2];     /* 0x08 graphics id */
  126         u_int32_t       dd_fntaddr;     /* 0x10 font start address */
  127         u_int32_t       dd_maxst;       /* 0x14 max state storage */
  128         u_int32_t       dd_romend;      /* 0x18 rom last address */
  129         u_int32_t       dd_reglst;      /* 0x1c device region list */
  130         u_int16_t       dd_maxreent;    /* 0x20 max reent storage */
  131         u_int16_t       dd_maxtimo;     /* 0x22 max execution timeout .1 sec */
  132         u_int32_t       dd_montbl;      /* 0x24 mon table address, array of
  133                                                 names num of dd_nmon */
  134         u_int32_t       dd_udaddr;      /* 0x28 user data address */
  135         u_int32_t       dd_stimemreq;   /* 0x2c sti memory request */
  136         u_int32_t       dd_udsize;      /* 0x30 user data size */
  137         u_int16_t       dd_pwruse;      /* 0x34 power usage */
  138         u_int8_t        dd_bussup;      /* 0x36 bus support */
  139 #define STI_BUSSUPPORT_GSCINTL  0x01    /*      supports pulling INTL for int */
  140 #define STI_BUSSUPPORT_GSC15X   0x02    /*      supports GSC 1.5X */
  141 #define STI_BUSSUPPORT_GSC2X    0x04    /*      supports GSC 2.X */
  142 #define STI_BUSSUPPORT_PCIIOEIM 0x08    /*      will use directed int */
  143 #define STI_BUSSUPPORT_PCISTD   0x10    /*      will use std PCI int */
  144 #define STI_BUSSUPPORT_ILOCK    0x20    /*      supports implicit locking */
  145 #define STI_BUSSUPPORT_ROMMAP   0x40    /*      rom is only in pci erom space */
  146 #define STI_BUSSUPPORT_2DECODE  0x80    /*      single address decoder */
  147         u_int8_t        dd_ebussup;     /* 0x37 extended bus support */
  148 #define STI_EBUSSUPPORT_DMA     0x01    /*      supports dma */
  149 #define STI_EBUSSUPPORT_PIOLOCK 0x02    /*      no implicit locking for dma */
  150         u_int8_t        dd_altcodet;    /* 0x38 alternate code type */
  151 #define STI_ALTCODE_UNKNOWN     0x00
  152 #define STI_ALTCODE_PA64        0x01    /*      alt code is in pa64 */
  153         u_int8_t        dd_eddst[3];    /* 0x39 extended DD struct */
  154         u_int32_t       dd_cfbaddr;     /* 0x3c CFB address, location of
  155                                                 X11 driver to be used for
  156                                                 servers w/o accel */
  157         u_int32_t       dd_pacode[16];  /* 0x40 routines for pa-risc */
  158         u_int32_t       dd_altcode[16]; /* 0x80 routines for m68k/i386 */
  159 };
  160 
  161 #define STI_REVISION(maj, min)  (((maj) << 4) | ((min) & 0x0f))
  162 
  163 /* after the last region there is one indirect list ptr */
  164 struct sti_region {
  165         u_int   offset  :14;    /* page offset dev io space relative */
  166         u_int   sys_only: 1;    /* whether allow user access */
  167         u_int   cache   : 1;    /* map in cache */
  168         u_int   btlb    : 1;    /* should use BTLB if available */
  169         u_int   last    : 1;    /* last region in the list */
  170         u_int   length  :14;    /* size in pages */
  171 };
  172 
  173 struct sti_font {
  174         u_int16_t       first;
  175         u_int16_t       last;
  176         u_int8_t        width;
  177         u_int8_t        height;
  178         u_int8_t        type;
  179 #define STI_FONT_HPROMAN8       1
  180 #define STI_FONT_KANA8          2
  181         u_int8_t        bpc;
  182         u_int32_t       next;
  183         u_int8_t        uheight;
  184         u_int8_t        uoffset;
  185         u_int8_t        unused[2];
  186 };
  187 
  188 struct sti_fontcfg {
  189         u_int16_t       first;
  190         u_int16_t       last;
  191         u_int8_t        width;
  192         u_int8_t        height;
  193         u_int8_t        type;
  194         u_int8_t        bpc;
  195         u_int8_t        uheight;
  196         u_int8_t        uoffset;
  197 };
  198 
  199 typedef struct sti_ecfg {
  200         u_int8_t        current_monitor;
  201         u_int8_t        uf_boot;
  202         u_int16_t       power;          /* power dissipation Watts */
  203         u_int32_t       freq_ref;
  204         u_int32_t       *addr;          /* memory block of size dd_stimemreq */
  205         void            *future;
  206 } *sti_ecfg_t;
  207 
  208 typedef struct sti_cfg {
  209         u_int32_t       text_planes;
  210         u_int16_t       scr_width;
  211         u_int16_t       scr_height;
  212         u_int16_t       oscr_width;
  213         u_int16_t       oscr_height;
  214         u_int16_t       fb_width;
  215         u_int16_t       fb_height;
  216         u_int32_t       regions[STI_REGION_MAX];
  217         u_int32_t       reent_level;
  218         u_int32_t       *save_addr;
  219         sti_ecfg_t      ext_cfg;
  220 } *sti_cfg_t;
  221 
  222 
  223 /* routine types */
  224 #define STI_DEP(n) \
  225         typedef int (*sti_##n##_t)( \
  226           sti_##n##flags_t, sti_##n##in_t, sti_##n##out_t, sti_cfg_t);
  227 
  228 typedef struct sti_initflags {
  229         u_int32_t       flags;
  230 #define STI_INITF_WAIT  0x80000000
  231 #define STI_INITF_RESET 0x40000000
  232 #define STI_INITF_TEXT  0x20000000
  233 #define STI_INITF_NTEXT 0x10000000
  234 #define STI_INITF_CLEAR 0x08000000
  235 #define STI_INITF_CMB   0x04000000      /* non-text planes cmap black */
  236 #define STI_INITF_EBET  0x02000000      /* enable bus error timer */
  237 #define STI_INITF_EBETI 0x01000000      /* enable bus error timer interrupt */
  238 #define STI_INITF_PTS   0x00800000      /* preserve text settings */
  239 #define STI_INITF_PNTS  0x00400000      /* preserve non-text settings */
  240 #define STI_INITF_PBET  0x00200000      /* preserve BET settings */
  241 #define STI_INITF_PBETI 0x00100000      /* preserve BETI settings */
  242 #define STI_INITF_ICMT  0x00080000      /* init cmap for text planes */
  243 #define STI_INITF_SCMT  0x00040000      /* change current monitor type */
  244 #define STI_INITF_RIE   0x00020000      /* retain int enables */
  245         void *future;
  246 } *sti_initflags_t;
  247 
  248 typedef struct sti_einitin {
  249         u_int8_t        mon_type;
  250         u_int8_t        pad;
  251         u_int16_t       inflight;       /* possible on pci */
  252         void            *future;
  253 } *sti_einitin_t;
  254 
  255 typedef struct sti_initin {
  256         u_int32_t       text_planes;    /* number of planes for text */
  257         sti_einitin_t   ext_in;
  258 } *sti_initin_t;
  259 
  260 typedef struct sti_initout {
  261         int32_t         errno;
  262         u_int32_t       text_planes;    /* number of planes used for text */
  263         void            *future;
  264 } *sti_initout_t;
  265 
  266 STI_DEP(init);
  267 
  268 typedef struct sti_mgmtflags {
  269         u_int32_t       flags;
  270 #define STI_MGMTF_WAIT  0x80000000
  271 #define STI_MGMTF_SAVE  0x40000000
  272 #define STI_MGMTF_RALL  0x20000000      /* restore all display planes */
  273         void *future;
  274 } *sti_mgmtflags_t;
  275 
  276 typedef struct sti_mgmtin {
  277         void    *addr;
  278         void    *future;
  279 } *sti_mgmtin_t;
  280 
  281 typedef struct sti_mgmtout {
  282         int32_t         errno;
  283         void            *future;
  284 } *sti_mgmtout_t;
  285 
  286 STI_DEP(mgmt);
  287 
  288 typedef struct sti_unpmvflags {
  289         u_int32_t       flags;
  290 #define STI_UNPMVF_WAIT 0x80000000
  291 #define STI_UNPMVF_NTXT 0x40000000      /* intp non-text planes */
  292         void            *future;
  293 } *sti_unpmvflags_t;
  294 
  295 typedef struct sti_unpmvin {
  296         u_int32_t       *font_addr;     /* font */
  297         u_int16_t       index;          /* character index in the font */
  298         u_int8_t        fg_colour;
  299         u_int8_t        bg_colour;
  300         u_int16_t       x, y;
  301         void            *future;
  302 } *sti_unpmvin_t;
  303 
  304 typedef struct sti_unpmvout {
  305         u_int32_t       errno;
  306         void            *future;
  307 } *sti_unpmvout_t;
  308 
  309 STI_DEP(unpmv);
  310 
  311 typedef struct sti_blkmvflags {
  312         u_int32_t       flags;
  313 #define STI_BLKMVF_WAIT 0x80000000
  314 #define STI_BLKMVF_COLR 0x40000000      /* change colour on move */
  315 #define STI_BLKMVF_CLR  0x20000000      /* clear on move */
  316 #define STI_BLKMVF_NTXT 0x10000000      /* move in non-text planes */
  317         void            *future;
  318 } *sti_blkmvflags_t;
  319 
  320 typedef struct sti_blkmvin {
  321         u_int8_t        fg_colour;
  322         u_int8_t        bg_colour;
  323         u_int16_t       srcx, srcy, dstx, dsty;
  324         u_int16_t       width, height;
  325         u_int16_t       pad;
  326         void            *future;
  327 } *sti_blkmvin_t;
  328 
  329 typedef struct sti_blkmvout {
  330         u_int32_t       errno;
  331         void            *future;
  332 } *sti_blkmvout_t;
  333 
  334 STI_DEP(blkmv);
  335 
  336 typedef struct sti_testflags {
  337         u_int32_t       flags;
  338 #define STI_TESTF_WAIT  0x80000000
  339 #define STI_TESTF_ETST  0x40000000
  340         void            *future;
  341 } *sti_testflags_t;
  342 
  343 typedef struct sti_testin {
  344         void            *future;
  345 } *sti_testin_t;
  346 
  347 typedef struct sti_testout {
  348         u_int32_t       errno;
  349         u_int32_t       result;
  350         void            *future;
  351 } *sti_testout_t;
  352 
  353 STI_DEP(test);
  354 
  355 typedef struct sti_exhdlflags {
  356         u_int32_t       flags;
  357 #define STI_EXHDLF_WAIT 0x80000000
  358 #define STI_EXHDLF_CINT 0x40000000      /* clear int */
  359 #define STI_EXHDLF_CBE  0x20000000      /* clear BE */
  360 #define STI_EXHDLF_PINT 0x10000000      /* preserve int */
  361 #define STI_EXHDLF_RINT 0x08000000      /* restore int */
  362 #define STI_EXHDLF_WEIM 0x04000000      /* write eim w/ sti_eexhdlin */
  363 #define STI_EXHDLF_REIM 0x02000000      /* read eim to sti_eexhdlout */
  364 #define STI_EXHDLF_GIE  0x01000000      /* global int enable */
  365 #define STI_EXHDLF_PGIE 0x00800000
  366 #define STI_EXHDLF_WIEM 0x00400000
  367 #define STI_EXHDLF_EIEM 0x00200000
  368 #define STI_EXHDLF_BIC  0x00100000      /* begin int cycle */
  369 #define STI_EXHDLF_EIC  0x00080000      /* end int cycle */
  370 #define STI_EXHDLF_RIE  0x00040000      /* reset do not clear int enables */
  371         void            *future;
  372 } *sti_exhdlflags_t;
  373 
  374 typedef struct sti_eexhdlin {
  375         u_int32_t       eim_addr;
  376         u_int32_t       eim_data;
  377         u_int32_t       iem;            /* enable mask */
  378         u_int32_t       icm;            /* clear mask */
  379         void            *future;
  380 } *sti_eexhdlin_t;
  381 
  382 typedef struct sti_exhdlint {
  383         u_int32_t       flags;
  384 #define STI_EXHDLINT_BET        0x80000000      /* bus error timer */
  385 #define STI_EXHDLINT_HW         0x40000000      /* high water */
  386 #define STI_EXHDLINT_LW         0x20000000      /* low water */
  387 #define STI_EXHDLINT_TM         0x10000000      /* texture map */
  388 #define STI_EXHDLINT_VB         0x08000000      /* vertical blank */
  389 #define STI_EXHDLINT_UDC        0x04000000      /* unbuffered dma complete */
  390 #define STI_EXHDLINT_BDC        0x02000000      /* buffered dma complete */
  391 #define STI_EXHDLINT_UDPC       0x01000000      /* unbuf priv dma complete */
  392 #define STI_EXHDLINT_BDPC       0x00800000      /* buffered priv dma complete */
  393 } *sti_exhdlint_t;
  394 
  395 typedef struct sti_exhdlin {
  396         sti_exhdlint_t  addr;
  397         sti_eexhdlin_t  ext;
  398 } *sti_exhdlin_t;
  399 
  400 typedef struct sti_eexhdlout {
  401         u_int32_t       eim_addr;
  402         u_int32_t       eim_data;
  403         u_int32_t       iem;            /* enable mask */
  404         u_int32_t       icm;            /* clear mask */
  405         void            *future;
  406 } *sti_eexhdlout_t;
  407 
  408 typedef struct sti_exhdlout {
  409         u_int32_t       errno;
  410         u_int32_t       flags;
  411 #define STI_EXHDLO_BE   0x80000000      /* BE was intercepted */
  412 #define STI_EXHDLO_IP   0x40000000      /* there is int pending */
  413 #define STI_EXHDLO_IE   0x20000000      /* global enable set */
  414         sti_eexhdlout_t ext;
  415 } *sti_exhdlout_t;
  416 
  417 STI_DEP(exhdl);
  418 
  419 typedef struct sti_inqconfflags {
  420         u_int32_t       flags;
  421 #define STI_INQCONFF_WAIT       0x80000000
  422         void            *future;
  423 } *sti_inqconfflags_t;
  424 
  425 typedef struct sti_inqconfin {
  426         void    *future;
  427 } *sti_inqconfin_t;
  428 
  429 typedef struct sti_einqconfout {
  430         u_int32_t       crt_config[3];
  431         u_int32_t       crt_hw[3];
  432         void            *future;
  433 } *sti_einqconfout_t;
  434 
  435 typedef struct sti_inqconfout {
  436         u_int32_t       errno;
  437         u_int16_t       width, height, owidth, oheight, fbwidth, fbheight;
  438         u_int32_t       bpp;    /* bits per pixel */
  439         u_int32_t       bppu;   /* accessible bpp */
  440         u_int32_t       planes;
  441         u_int8_t        name[STI_DEVNAME_LEN];
  442         u_int32_t       attributes;
  443 #define STI_INQCONF_Y2X         0x0001  /* pixel is higher than wider */
  444 #define STI_INQCONF_HWBLKMV     0x0002  /* hw blkmv is present */
  445 #define STI_INQCONF_AHW         0x0004  /* adv hw accel */
  446 #define STI_INQCONF_INT         0x0008  /* can interrupt */
  447 #define STI_INQCONF_GONOFF      0x0010  /* supports on/off */
  448 #define STI_INQCONF_AONOFF      0x0020  /* supports alpha on/off */
  449 #define STI_INQCONF_VARY        0x0040  /* variable fb height */
  450 #define STI_INQCONF_ODDBYTES    0x0080  /* use only odd fb bytes */
  451 #define STI_INQCONF_FLUSH       0x0100  /* fb cache requires flushing */
  452 #define STI_INQCONF_DMA         0x0200  /* supports dma */
  453 #define STI_INQCONF_VDMA        0x0400  /* supports vdma */
  454 #define STI_INQCONF_YUV1        0x2000  /* supports YUV type 1 */
  455 #define STI_INQCONF_YUV2        0x4000  /* supports YUV type 2 */
  456 #define STI_INQCONF_BITS \
  457     "\020\001y2x\002hwblkmv\003ahw\004int\005gonoff\006aonoff\007vary"\
  458     "\010oddb\011flush\012dma\013vdma\016yuv1\017yuv2"
  459         sti_einqconfout_t ext;
  460 } *sti_inqconfout_t;
  461 
  462 STI_DEP(inqconf);
  463 
  464 typedef struct sti_scmentflags {
  465         u_int32_t       flags;
  466 #define STI_SCMENTF_WAIT        0x80000000
  467         void            *future;
  468 } *sti_scmentflags_t;
  469 
  470 typedef struct sti_scmentin {
  471         u_int32_t       entry;
  472         u_int32_t       value;
  473         void            *future;
  474 } *sti_scmentin_t;
  475 
  476 typedef struct sti_scmentout {
  477         u_int32_t       errno;
  478         void            *future;
  479 } *sti_scmentout_t;
  480 
  481 STI_DEP(scment);
  482 
  483 typedef struct sti_dmacflags {
  484         u_int32_t       flags;
  485 #define STI_DMACF_WAIT  0x80000000
  486 #define STI_DMACF_PRIV  0x40000000      /* priv dma */
  487 #define STI_DMACF_DIS   0x20000000      /* disable */
  488 #define STI_DMACF_BUF   0x10000000      /* buffered */
  489 #define STI_DMACF_MRK   0x08000000      /* write a marker */
  490 #define STI_DMACF_ABRT  0x04000000      /* abort dma xfer */
  491         void            *future;
  492 } *sti_dmacflags_t;
  493 
  494 typedef struct sti_dmacin {
  495         u_int32_t       pa_upper;
  496         u_int32_t       pa_lower;
  497         u_int32_t       len;
  498         u_int32_t       mrk_data;
  499         u_int32_t       mrk_off;
  500         void            *future;
  501 } *sti_dmacin_t;
  502 
  503 typedef struct sti_dmacout {
  504         u_int32_t       errno;
  505         void            *future;
  506 } *sti_dmacout_t;
  507 
  508 STI_DEP(dmac);
  509 
  510 typedef struct sti_flowcflags {
  511         u_int32_t       flags;
  512 #define STI_FLOWCF_WAIT 0x80000000
  513 #define STI_FLOWCF_CHW  0x40000000      /* check high water */
  514 #define STI_FLOWCF_WHW  0x20000000      /* write high water */
  515 #define STI_FLOWCF_WLW  0x10000000      /* write low water */
  516 #define STI_FLOWCF_PCSE 0x08000000      /* preserve cse */
  517 #define STI_FLOWCF_CSE  0x04000000
  518 #define STI_FLOWCF_CSWF 0x02000000      /* cs write fine */
  519 #define STI_FLOWCF_CSWC 0x01000000      /* cs write coarse */
  520 #define STI_FLOWCF_CSWQ 0x00800000      /* cs write fifo */
  521         void            *future;
  522 } *sti_flowcflags_t;
  523 
  524 typedef struct sti_flowcin {
  525         u_int32_t       retry;
  526         u_int32_t       bufz;
  527         u_int32_t       hwcnt;
  528         u_int32_t       lwcnt;
  529         u_int32_t       csfv;   /* cs fine value */
  530         u_int32_t       cscv;   /* cs coarse value */
  531         u_int32_t       csqc;   /* cs fifo count */
  532         void            *future;
  533 } *sti_flowcin_t;
  534 
  535 typedef struct sti_flowcout {
  536         u_int32_t       errno;
  537         u_int32_t       retry_result;
  538         u_int32_t       fifo_size;
  539         void            *future;
  540 } *sti_flowcout_t;
  541 
  542 STI_DEP(flowc);
  543 
  544 typedef struct sti_utimingflags {
  545         u_int32_t       flags;
  546 #define STI_UTIMF_WAIT  0x80000000
  547 #define STI_UTIMF_HKS   0x40000000      /* has kbuf_size */
  548         void            *future;
  549 } *sti_utimingflags_t;
  550 
  551 typedef struct sti_utimingin {
  552         void            *data;
  553         void            *kbuf;
  554         void            *future;
  555 } *sti_utimingin_t;
  556 
  557 typedef struct sti_utimingout {
  558         u_int32_t       errno;
  559         u_int32_t       kbuf_size;      /* buffer required size */
  560         void            *future;
  561 } *sti_utimingout_t;
  562 
  563 STI_DEP(utiming);
  564 
  565 typedef struct sti_pmgrflags {
  566         u_int32_t       flags;
  567 #define STI_UTIMF_WAIT  0x80000000
  568 #define STI_UTIMOP_CLEANUP      0x00000000
  569 #define STI_UTIMOP_BAC          0x10000000
  570 #define STI_UTIMF_CRIT  0x04000000
  571 #define STI_UTIMF_BUFF  0x02000000
  572 #define STI_UTIMF_IBUFF 0x01000000
  573         void            *future;
  574 } *sti_pmgrflags_t;
  575 
  576 typedef struct sti_pmgrin {
  577         u_int32_t       reserved[4];
  578         void            *future;
  579 } *sti_pmgrin_t;
  580 
  581 typedef struct sti_pmgrout {
  582         int32_t         errno;
  583         void            *future;
  584 } *sti_pmgrout_t;
  585 
  586 STI_DEP(pmgr);
  587 
  588 typedef struct sti_utilflags {
  589         u_int32_t       flags;
  590 #define STI_UTILF_ROOT  0x80000000      /* was called as root */
  591         void            *future;
  592 } *sti_utilflags_t;
  593 
  594 typedef struct sti_utilin {
  595         u_int32_t       in_size;
  596         u_int32_t       out_size;
  597         u_int8_t        *buf;
  598 } *sti_utilin_t;
  599 
  600 typedef struct sti_utilout {
  601         int32_t         errno;
  602         void            *future;
  603 } *sti_utilout_t;
  604 
  605 STI_DEP(util);
  606 
  607 #pragma pack()
  608 
  609 #endif /* _IC_STIREG_H_ */

/* [<][>][^][v][top][bottom][index][help] */