#ifdef HAVE_XORG_CONFIG_H
#include <xorg-config.h>
#endif
#include "xf86.h"
#include "xf86_OSproc.h"
#include "xf86RamDacPriv.h"
int RamDacHWPrivateIndex = -1;
int RamDacScreenPrivateIndex = -1;
RamDacRecPtr
RamDacCreateInfoRec(void)
{
RamDacRecPtr infoRec;
infoRec = calloc(1, sizeof(RamDacRec));
return infoRec;
}
RamDacHelperRecPtr
RamDacHelperCreateInfoRec(void)
{
RamDacHelperRecPtr infoRec;
infoRec = calloc(1, sizeof(RamDacHelperRec));
return infoRec;
}
void
RamDacDestroyInfoRec(RamDacRecPtr infoRec)
{
free(infoRec);
}
void
RamDacHelperDestroyInfoRec(RamDacHelperRecPtr infoRec)
{
free(infoRec);
}
Bool
RamDacInit(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPriv)
{
RamDacScreenRecPtr ramdacScrPtr;
if (!RamDacGetRec(pScrn))
return FALSE;
ramdacScrPtr =
((RamDacScreenRecPtr) (pScrn)->privates[RamDacGetScreenIndex()].ptr);
ramdacScrPtr->RamDacRec = ramdacPriv;
return TRUE;
}
void
RamDacGetRecPrivate(void)
{
if (RamDacHWPrivateIndex < 0)
RamDacHWPrivateIndex = xf86AllocateScrnInfoPrivateIndex();
if (RamDacScreenPrivateIndex < 0)
RamDacScreenPrivateIndex = xf86AllocateScrnInfoPrivateIndex();
return;
}
Bool
RamDacGetRec(ScrnInfoPtr scrp)
{
RamDacGetRecPrivate();
if (scrp->privates[RamDacHWPrivateIndex].ptr != NULL)
return TRUE;
if (scrp->privates[RamDacScreenPrivateIndex].ptr != NULL)
return TRUE;
scrp->privates[RamDacHWPrivateIndex].ptr =
xnfcalloc(sizeof(RamDacHWRec), 1);
scrp->privates[RamDacScreenPrivateIndex].ptr =
xnfcalloc(sizeof(RamDacScreenRec), 1);
return TRUE;
}
void
RamDacFreeRec(ScrnInfoPtr pScrn)
{
RamDacHWRecPtr ramdacHWPtr;
RamDacScreenRecPtr ramdacScrPtr;
if (RamDacHWPrivateIndex < 0)
return;
if (RamDacScreenPrivateIndex < 0)
return;
ramdacHWPtr = RAMDACHWPTR(pScrn);
ramdacScrPtr = ((RamDacScreenRecPtr)
(pScrn)->privates[RamDacGetScreenIndex()].ptr);
free(ramdacHWPtr);
ramdacHWPtr = NULL;
free(ramdacScrPtr);
ramdacScrPtr = NULL;
}
int
RamDacGetHWIndex(void)
{
return RamDacHWPrivateIndex;
}
int
RamDacGetScreenIndex(void)
{
return RamDacScreenPrivateIndex;
}