Merge remote-tracking branch 'alanc/master'

This commit is contained in:
Keith Packard 2012-07-17 12:17:39 -07:00
commit beeea70495
6 changed files with 92 additions and 76 deletions

View File

@ -1056,11 +1056,12 @@ int
ProcXineramaQueryScreens(ClientPtr client)
{
/* REQUEST(xXineramaQueryScreensReq); */
CARD32 number = (noPanoramiXExtension) ? 0 : PanoramiXNumScreens;
xXineramaQueryScreensReply rep = {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = bytes_to_int32(rep.number * sz_XineramaScreenInfo),
.number = (noPanoramiXExtension) ? 0 : PanoramiXNumScreens
.length = bytes_to_int32(number * sz_XineramaScreenInfo),
.number = number
};
REQUEST_SIZE_MATCH(xXineramaQueryScreensReq);

View File

@ -135,6 +135,7 @@ ProcXvMCListSurfaceTypes(ClientPtr client)
xvmcSurfaceInfo info;
XvMCAdaptorPtr adaptor = NULL;
XvMCSurfaceInfoPtr surface;
int num_surfaces;
REQUEST(xvmcListSurfaceTypesReq);
REQUEST_SIZE_MATCH(xvmcListSurfaceTypesReq);
@ -154,16 +155,17 @@ ProcXvMCListSurfaceTypes(ClientPtr client)
}
}
num_surfaces = (adaptor) ? adaptor->num_surfaces : 0;
rep = (xvmcListSurfaceTypesReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.num = (adaptor) ? adaptor->num_surfaces : 0,
.length = bytes_to_int32(rep.num * sizeof(xvmcSurfaceInfo)),
.num = num_surfaces,
.length = bytes_to_int32(num_surfaces * sizeof(xvmcSurfaceInfo)),
};
WriteToClient(client, sizeof(xvmcListSurfaceTypesReply), &rep);
for (i = 0; i < rep.num; i++) {
for (i = 0; i < num_surfaces; i++) {
surface = adaptor->surfaces[i];
info.surface_type_id = surface->surface_type_id;
info.chroma_format = surface->chroma_format;

View File

@ -550,15 +550,16 @@ static int
ProcDRI2GetParam(ClientPtr client)
{
REQUEST(xDRI2GetParamReq);
xDRI2GetParamReply rep;
xDRI2GetParamReply rep = {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = 0
};
DrawablePtr pDrawable;
CARD64 value;
int status;
REQUEST_SIZE_MATCH(xDRI2GetParamReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
if (!validDrawable(client, stuff->drawable, DixReadAccess,
&pDrawable, &status))

View File

@ -86,23 +86,26 @@ ProcRRGetProviders (ClientPtr client)
}
pScrPriv = rrGetScrPriv(pScreen);
rep.pad = 0;
if (!pScrPriv)
{
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.timestamp = currentTime.milliseconds;
rep.nProviders = 0;
rep = (xRRGetProvidersReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = 0,
.timestamp = currentTime.milliseconds,
.nProviders = 0
};
extra = NULL;
extraLen = 0;
} else {
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.timestamp = pScrPriv->lastSetTime.milliseconds;
rep.nProviders = total_providers;
rep.length = total_providers;
rep = (xRRGetProvidersReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.timestamp = pScrPriv->lastSetTime.milliseconds,
.nProviders = total_providers,
.length = total_providers
};
extraLen = rep.length << 2;
if (extraLen) {
extra = malloc(extraLen);
@ -163,18 +166,20 @@ ProcRRGetProviderInfo (ClientPtr client)
pScreen = provider->pScreen;
pScrPriv = rrGetScrPriv(pScreen);
rep.type = X_Reply;
rep.status = RRSetConfigSuccess;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.capabilities = provider->capabilities;
rep.nameLength = provider->nameLength;
rep.timestamp = pScrPriv->lastSetTime.milliseconds;
rep.nCrtcs = pScrPriv->numCrtcs;
rep.nOutputs = pScrPriv->numOutputs;
rep = (xRRGetProviderInfoReply) {
.type = X_Reply,
.status = RRSetConfigSuccess,
.sequenceNumber = client->sequence,
.length = 0,
.capabilities = provider->capabilities,
.nameLength = provider->nameLength,
.timestamp = pScrPriv->lastSetTime.milliseconds,
.nCrtcs = pScrPriv->numCrtcs,
.nOutputs = pScrPriv->numOutputs,
.nAssociatedProviders = 0
};
/* count associated providers */
rep.nAssociatedProviders = 0;
if (provider->offload_sink)
rep.nAssociatedProviders++;
if (provider->output_source)

View File

@ -65,14 +65,14 @@ RRDestroyProviderProperty(RRPropertyPtr prop)
static void
RRDeleteProperty(RRProviderRec * provider, RRPropertyRec * prop)
{
xRRProviderPropertyNotifyEvent event;
event.type = RREventBase + RRNotify;
event.subCode = RRNotify_ProviderProperty;
event.provider = provider->id;
event.state = PropertyDelete;
event.atom = prop->propertyName;
event.timestamp = currentTime.milliseconds;
xRRProviderPropertyNotifyEvent event = {
.type = RREventBase + RRNotify,
.subCode = RRNotify_ProviderProperty,
.provider = provider->id,
.state = PropertyDelete,
.atom = prop->propertyName,
.timestamp = currentTime.milliseconds
};
RRDeliverPropertyEvent(provider->pScreen, (xEvent *) &event);
@ -138,7 +138,6 @@ RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
pointer value, Bool sendevent, Bool pending)
{
RRPropertyPtr prop;
xRRProviderPropertyNotifyEvent event;
rrScrPrivPtr pScrPriv = rrGetScrPriv(provider->pScreen);
int size_in_bytes;
int total_size;
@ -237,12 +236,14 @@ RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
provider->pendingProperties = TRUE;
if (sendevent) {
event.type = RREventBase + RRNotify;
event.subCode = RRNotify_ProviderProperty;
event.provider = provider->id;
event.state = PropertyNewValue;
event.atom = prop->propertyName;
event.timestamp = currentTime.milliseconds;
xRRProviderPropertyNotifyEvent event = {
.type = RREventBase + RRNotify,
.subCode = RRNotify_ProviderProperty,
.provider = provider->id,
.state = PropertyNewValue,
.atom = prop->propertyName,
.timestamp = currentTime.milliseconds
};
RRDeliverPropertyEvent(provider->pScreen, (xEvent *) &event);
}
return Success;
@ -394,10 +395,12 @@ ProcRRListProviderProperties(ClientPtr client)
if (!(pAtoms = (Atom *) malloc(numProps * sizeof(Atom))))
return BadAlloc;
rep.type = X_Reply;
rep.length = bytes_to_int32(numProps * sizeof(Atom));
rep.sequenceNumber = client->sequence;
rep.nAtoms = numProps;
rep = (xRRListProviderPropertiesReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = bytes_to_int32(numProps * sizeof(Atom)),
.nAtoms = numProps
};
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@ -438,12 +441,14 @@ ProcRRQueryProviderProperty(ClientPtr client)
if (!extra)
return BadAlloc;
}
rep.type = X_Reply;
rep.length = prop->num_valid;
rep.sequenceNumber = client->sequence;
rep.pending = prop->is_pending;
rep.range = prop->range;
rep.immutable = prop->immutable;
rep = (xRRQueryProviderPropertyReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = prop->num_valid,
.pending = prop->is_pending,
.range = prop->range,
.immutable = prop->immutable
};
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@ -568,7 +573,10 @@ ProcRRGetProviderProperty(ClientPtr client)
RRPropertyValuePtr prop_value;
unsigned long n, len, ind;
RRProviderPtr provider;
xRRGetProviderPropertyReply reply;
xRRGetProviderPropertyReply reply = {
.type = X_Reply,
.sequenceNumber = client->sequence
};
char *extra = NULL;
REQUEST_SIZE_MATCH(xRRGetProviderPropertyReq);
@ -594,8 +602,6 @@ ProcRRGetProviderProperty(ClientPtr client)
if (prop->propertyName == stuff->property)
break;
reply.type = X_Reply;
reply.sequenceNumber = client->sequence;
if (!prop) {
reply.nItems = 0;
reply.length = 0;
@ -672,14 +678,14 @@ ProcRRGetProviderProperty(ClientPtr client)
reply.propertyType = prop_value->type;
if (stuff->delete && (reply.bytesAfter == 0)) {
xRRProviderPropertyNotifyEvent event;
event.type = RREventBase + RRNotify;
event.subCode = RRNotify_ProviderProperty;
event.provider = provider->id;
event.state = PropertyDelete;
event.atom = prop->propertyName;
event.timestamp = currentTime.milliseconds;
xRRProviderPropertyNotifyEvent event = {
.type = RREventBase + RRNotify,
.subCode = RRNotify_ProviderProperty,
.provider = provider->id,
.state = PropertyDelete,
.atom = prop->propertyName,
.timestamp = currentTime.milliseconds
};
RRDeliverPropertyEvent(provider->pScreen, (xEvent *) &event);
}

View File

@ -396,16 +396,17 @@ rrGetMultiScreenResources(ClientPtr client, Bool query, ScreenPtr pScreen)
ErrorF("reporting %d %d %d %d\n", total_crtcs, total_outputs, total_modes, total_name_len);
pScrPriv = rrGetScrPriv(pScreen);
rep.pad = 0;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.timestamp = pScrPriv->lastSetTime.milliseconds;
rep.configTimestamp = pScrPriv->lastConfigTime.milliseconds;
rep.nCrtcs = total_crtcs;
rep.nOutputs = total_outputs;
rep.nModes = total_modes;
rep.nbytesNames = total_name_len;
rep = (xRRGetScreenResourcesReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = 0,
.timestamp = pScrPriv->lastSetTime.milliseconds,
.configTimestamp = pScrPriv->lastConfigTime.milliseconds,
.nCrtcs = total_crtcs,
.nOutputs = total_outputs,
.nModes = total_modes,
.nbytesNames = total_name_len
};
rep.length = (total_crtcs + total_outputs + total_modes * bytes_to_int32(SIZEOF(xRRModeInfo)) +
bytes_to_int32(rep.nbytesNames));