On Wed, 2004-12-08 at 02:54 +0100, Stephane Marchesin wrote: > > The small attached patch adds a new drm ioctl to do surface > allocation/deallocation on the radeon.
[...] > Any comments ? I'ts untested, but that's my first ioctl, so I wanted > feedback (both on the idea and the implementation) before I build > anything upon it. I think it's a good start but still missing some details. > + // allocate the surface > + for(i=0;i<8;i++) > + if (!(dev_priv->surfaces&(1<<i))) > + break; > + > + if (i>=8) > + return DRM_ERR(ENOMEM); > + else > + dev_priv->surfaces&=(1<<i); > + > + if ( DRM_COPY_TO_USER( &alloc.surface, &i, > + sizeof(int) ) ) { > + DRM_ERROR( "copy_to_user\n" ); > + return DRM_ERR(EFAULT); IMHO it should also manage the ranges (prevent overlapping, ...) and parameters of the surfaces. > + DRM_COPY_FROM_USER_IOCTL( memfree, (drm_radeon_mem_free_t __user *)data, > + sizeof(memfree) ); > + > + dev_priv->surfaces&= (~(1<<memfree.surface)); It should definitely ensure that only the owner can free a surface though. It would also need to free a client's surfaces if it dies, etc. -- Earthling Michel DÃnzer | Debian (powerpc), X and DRI developer Libre software enthusiast | http://svcs.affero.net/rm.php?r=daenzer ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ -- _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel