#include <stdio.h>
#include <stdlib.h>
#include <mk.h>
#include "dci.h"
main(int argc, char **argv, char **envp)
{
char *ps_version;
DCIStatus status;
DCIMetricId *metric = NULL;
DCIClassId *class = NULL;
DCIInstanceId *instance = NULL;
DCIReturn *retBuffer = NULL;
DCIHandle key;
uint32 *class_data = NULL;
uint32 *inst_data = NULL;
uint32 numIds;
uint32 RetBufSize = 0;
uint32 flags = 0;
console_printf("ENTERING:main\n");
/* Initialize dci services */
status = dciInitialize(&ps_version);
console_printf("dciInitialize status=0x%x\n",status);
if(status != DCI_SUCCESS)
{
console_printf("dciInitialize FAILED\n");
console_printf("EXITING #0:main\n");
exit(-1);
}
console_printf("VERSION=%s\n",ps_version);
/* Prepare the metric id structure */
metric = (DCIMetricId *)malloc(72);
metric->size = 72;
metric->classId.offset = 16;
metric->instanceId.offset = 48;
metric->datumId = 255;
class = (DCIClassId *)&(metric->data);
class->size = 32;
class->identifier.offset = 16;
class->identifier.count = 4;
class->identifier.size = 4;
class_data = (uint32 *)&(class->data);
*class_data++ = 254;
*class_data++ = 1;
*class_data++ = 1;
*class_data = 1;
instance = (DCIInstanceId *)((char *)class + class->size);
instance->size = 24;
instance->levelWild = 0;
instance->instances.offset = 20;
instance->instances.size = 4;
instance->instances.count = 1;
inst_data = (uint32 *)&(instance->data);
*inst_data = 0;
/* Call dciOpen */
retBuffer = NULL;
RetBufSize = 0;
numIds = 1;
status = dciOpen(&key, metric, numIds, &retBuffer, RetBufSize, flags);
free(metric);
if(status != DCI_SUCCESS) /* if FAILURE */
{
console_printf("dciOpen FAILED. status 0x%x\n",status);
status = dciTerminate();
console_printf("dciTerminate status = 0x%x\n",status);
console_printf("EXITING #1 main\n");
exit(-1);
}
console_printf("dciOpen PASSED. status 0x%x - summmary status 0x%x\n",
status, retBuffer->sumstatus);
if( retBuffer->sumstatus != DCI_SUCCESS )
console_printf("There was atleast one FAILURE in the return
buffer\n");
/* Close the key, terminate the DCI services and Clean up */
status = dciFree((uint32)retBuffer, retBuffer->size);
console_printf("dciFree status 0x%x\n",status);
status = dciClose(key);
console_printf("dciClose status = 0x%x\n",status);
status = dciTerminate();
console_printf("dciTerminate status = 0x%x\n",status);
console_printf("EXITING #2:main\n");
exit(0);
}
[Back: dciTerminate - Related Functions]
[Next: dciTerminate - Topics]