I work on the Intel Embedded Graphics Driver (IEGD). The discussion on libdrm generated some interest
because our driver makes use of the DRI and needs such functionality. Currently we are just using a version of the
libdrm stuff created by taking the sources from Xorg 6.8.2 with almost no modifications. Probably very similar to your
libdrm 1.0 but I haven't looked yet.

So my questions/requests are:

1) Is libdrm intended to be staticly linked with a libGL, libXvMC etc. Or are you invisioning a dynamic library available on all systems?
2) Can you please make it c++ safe. (Haven't looked at 1.0 but we needed modifications) A quick check reveals things
  like bufs.virt in xf86drm.c and the need for extern "C" {  around the function prototypes.
3) What about libXF86DRI?  To make a DRI client you need libdrm and a hypothetical libXF86DRI to get the functions such
  as XF86DRIOpenConnection.  Clearly you'd want to rename the functions to something like XDRIOpenConnection(), but
  getting a library that can be linked by other clients would be nice.
4) Any way I can persuade you to NOT put the memory manager in libdrm?  Perhaps another little library, released from
  the same place but not really linked together. I have a need for libdrm but I have no use for your memory manager and it
  seems like a lot of weight that I don't want to carry. It also seems a bit misplaced to me. The DRI and DRM protocols
  are things of general use that anyone using the DRI would need. The memory manager is a helper so that code can
  be shared between drivers (your drivers), but is not a required component that would be used by other libGL
  implementations etc.