示例#1
0
/*******************************************************************************
 * vTraceSetObjectName
 *
 * Registers the names of queues, semaphores and other kernel objects in the
 * recorder's Object Property Table, at the given handle and object class.
 ******************************************************************************/
void vTraceSetObjectName(traceObjectClass objectclass, 
                         objectHandleType handle, 
                         const char* name)
{
    static uint32_t idx;

    if (handle == 0)
    {
        vTraceError("Illegal handle (0) in vTraceSetObjectName.");   
        return;
    }
    
    switch(objectclass)
    {
        case TRACE_CLASS_TASK:
        case TRACE_CLASS_ISR:
        case TRACE_CLASS_SEMAPHORE:
        case TRACE_CLASS_MUTEX:
        case TRACE_CLASS_QUEUE:
        break;
    default:
        vTraceError("Illegal object class in vTraceSetObjectName");   
        break;            
    }

    if (handle > 
        RecorderDataPtr->ObjectPropertyTable.NumberOfObjectsPerClass[objectclass])
    {
        switch(objectclass)
        {
            case TRACE_CLASS_TASK:
            vTraceError("Not enough TASK handles - increase NTask in trcConfig.h");         
            break;
            case TRACE_CLASS_ISR:
            vTraceError("Not enough ISR handles - increase NISR in trcConfig.h");       
            break;
            case TRACE_CLASS_SEMAPHORE:
            vTraceError("Not enough SEMAPHORE handles - increase NSemaphore in trcConfig.h");
            break;
            case TRACE_CLASS_MUTEX:
            vTraceError("Not enough MUTEX handles - increase NMutex in trcConfig.h");
            break;
            case TRACE_CLASS_QUEUE:
            vTraceError("Not enough QUEUE handles - increase NQueue in trcConfig.h");
            break;
        }
    }
    else
    {
        idx = uiIndexOfObject(handle, objectclass);

        if (traceErrorMessage == NULL)
        {
            (void)strncpy((char*)&(RecorderDataPtr->ObjectPropertyTable.objbytes[idx]),
                    name,
                    RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[ objectclass ] );
        }
    }
}
示例#2
0
/*******************************************************************************
 * vTraceSetObjectName
 *
 * Registers the names of queues, semaphores and other kernel objects in the
 * recorder's Object Property Table, at the given handle and object class.
 ******************************************************************************/
void vTraceSetObjectName(traceObjectClass objectclass,
                         objectHandleType handle,
                         const char* name)
{
    static uint16_t idx;

	TRACE_ASSERT(name != NULL, "vTraceSetObjectName: name == NULL", );

    if (objectclass >= TRACE_NCLASSES)
    {
        vTraceError("Illegal object class in vTraceSetObjectName");
        return;
    }

    if (handle == 0)
    {
        vTraceError("Illegal handle (0) in vTraceSetObjectName.");
        return;
    }

    if (handle > RecorderDataPtr->ObjectPropertyTable.NumberOfObjectsPerClass[objectclass])
    {
	    /* ERROR */
	    vTraceError(pszTraceGetErrorNotEnoughHandles(objectclass));
    }
    else
    {
        idx = uiIndexOfObject(handle, objectclass);

        if (traceErrorMessage == NULL)
        {
            (void)strncpy((char*)&(RecorderDataPtr->ObjectPropertyTable.objbytes[idx]),
                    name,
                    RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[ objectclass ]);
        }
    }
}