Subversion Repositories Kolibri OS

Rev

Rev 876 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. #include "types.h"
  3.  
  4. #include <stdio.h>
  5. #include <malloc.h>
  6. #include <memory.h>
  7.  
  8. #include "syscall.h"
  9.  
  10. #include "ati2d.h"
  11. #include "accel_2d.h"
  12.  
  13. RHD_t rhd;
  14.  
  15. static clip_t  clip;
  16.  
  17. static local_pixmap_t scr_pixmap;
  18.  
  19. static void Init3DEngine(RHDPtr rhdPtr);
  20.  
  21. int __stdcall srv_2d(ioctl_t *io);
  22.  
  23. u32_t __stdcall drvEntry(int action)
  24. {
  25.   RHDPtr rhdPtr;
  26.   u32_t retval;
  27.  
  28.   int i;
  29.  
  30.   if(action != 1)
  31.     return 0;
  32.  
  33.   if(!dbg_open("/hd0/2/ati2d.log"))
  34.   {
  35.      printf("Can't open /rd/1/drivers/ati2d.log\nExit\n");
  36.      return 0;
  37.   }
  38.  
  39.   if((rhdPtr=FindPciDevice())==NULL)
  40.   {
  41.     dbgprintf("Device not found\n");
  42.     return 0;
  43.   };
  44.  
  45.   for(i=0;i<6;i++)
  46.   {
  47.     if(rhd.memBase[i])
  48.       dbgprintf("Memory base_%d 0x%x size 0x%x\n",
  49.                 i,rhd.memBase[i],(1<<rhd.memsize[i]));
  50.   };
  51.   for(i=0;i<6;i++)
  52.   {
  53.     if(rhd.ioBase[i])
  54.       dbgprintf("Io base_%d 0x%x size 0x%x\n",
  55.                 i,rhd.ioBase[i],(1<<rhd.memsize[i]));
  56.   };
  57.   if(!RHDPreInit())
  58.     return 0;
  59.  
  60.   R5xx2DInit();
  61.   rhd.has_tcl = 1;
  62.  
  63. //  Init3DEngine(&rhd);
  64.  
  65.   //init_r500();
  66.  
  67.  
  68.   retval = RegService("HDRAW", srv_2d);
  69.   dbgprintf("reg service %s as: %x\n", "HDRAW", retval);
  70.  
  71.   return retval;
  72. };
  73.  
  74.  
  75. #define API_VERSION     0x01000100
  76.  
  77. #define SRV_GETVERSION  0
  78.  
  79.  
  80. int _stdcall srv_2d(ioctl_t *io)
  81. {
  82.   u32_t *inp;
  83.   u32_t *outp;
  84.  
  85.   inp = io->input;
  86.   outp = io->output;
  87.  
  88.   switch(io->io_code)
  89.   {
  90.     case SRV_GETVERSION:
  91.       if(io->out_size==4)
  92.       {
  93.         *outp = API_VERSION;
  94.         return 0;
  95.       }
  96.       break;
  97.  
  98.       case PX_CREATE:
  99.         if(io->inp_size==7)
  100.           return CreatePixmap((pixmap_t*)inp);
  101.         break;
  102.  
  103.       case PX_DESTROY:
  104.         if(io->inp_size==7)
  105.           return DestroyPixmap((pixmap_t*)inp);
  106.         break;
  107.  
  108.       case PX_DRAW_RECT:
  109.         if(io->inp_size==6)
  110.           return DrawRect((draw_t*)inp);
  111.         break;
  112.  
  113.       case PX_FILL_RECT:
  114.         if(io->inp_size==9)
  115.           return FillRect((fill_t*)inp);
  116.         break;
  117.  
  118.       case PX_BLIT:
  119.         if(io->inp_size==8)
  120.           return PixBlit((pixblit_t*)inp);
  121.         break;
  122.  
  123.      case  PX_BLIT_TRANSPARENT:
  124.         if(io->inp_size==8)
  125.           return TransBlit((pixblit_t*)inp);
  126.         break;
  127.  
  128.       case PX_LINE:
  129.         if(io->inp_size==6)
  130.           return Line((draw_t*)inp);
  131.         break;
  132.  
  133. /*
  134.       case BLIT:
  135.         if(io->inp_size==6)
  136.           return Blit((blit_t*)inp);
  137.         break;
  138.  
  139.       case COMPIZ:
  140.         if(io->inp_size==6)
  141.           return RadeonComposite((blit_t*)inp);
  142.         break;
  143. */
  144.  
  145.     default:
  146.       return ERR_PARAM;
  147.   };
  148.   return ERR_PARAM;
  149. }
  150.  
  151.  
  152. #include "init.c"
  153. #include "pci.c"
  154. #include "ati_mem.c"
  155. //#include "cursor.inc"
  156.  
  157. #include "r500.inc"
  158.  
  159. #include "clip.inc"
  160. #include "pixmap.inc"
  161. #include "accel_2d.inc"
  162. #include "accel_3d.inc"
  163.  
  164.  
  165.