⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oslmemory.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
                break;
            }
        }
        memcpy(memData->fileName, &fileName[j], strlen(fileName) - j + 1);
        /* strcpy(memData.fileName, (char *)fileName); */
        memData->lineNumber = lineNumber;
        memData->bytes = nob1;
        memData->ptr = ptrAct;
        memData->isAllocated = 1;
        ByteCounter(ptr, 1, nob1);

    }
    else
    {
        PRINT_INFORMATION(("File size exceeded"));

    }

    if (MAX_BUFF < nob1)
    {
        MAX_BUFF = nob1;
    }
    return ptrAct;
}

/*-------------------------------------------------------------------
Function Name  :  osl_Mfree
Description    :  This osl_Mfree's the poinetr along with node from the link 
               list if present.
Input       :  Ponter to be freed
Output         :  None
-------------------------------------------------------------------*/


/*****************************************************************************
 * FUNCTION
 *  OslMfreeCHK
 * DESCRIPTION
 *  
 * PARAMETERS
 *  frp     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void OslMfreeCHK(void *frp)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i = 0, j = 0, k = 0;
    U16 maskingByte;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    for (j = 0; memoryList[j].ptr != frp && j <= MEMORY_LIST_LENGTH; j++);
    if (j != MEMORY_LIST_LENGTH)
    {
        maskingByte = 1;
        for (i = 0; i < 16; i++)
        {
            if (memoryList[j].bytes & maskingByte)
            {
                break;
            }
            maskingByte <<= 1;
        }
        if (i < 16)
        {
            bufferCount[i - 3]--;
        }
        ByteCounter(frp, -1, memoryList[j].bytes);
        memset(&memoryList[j], 0, sizeof(OSLMEMALLOC));
        memoryListCount--;
    }
#ifdef MMI_ON_WIN32
    free(frp);
#else 
    free_ctrl_buffer(frp);
#endif 

    return;
}

/*-------------------------------------------------------------------
Function Name  :  osl_MemoryCHK
Description    :  This flag starts / stops building of the Memory 
               link list
Output         :  None
-------------------------------------------------------------------*/


/*****************************************************************************
 * FUNCTION
 *  OslIntMemoryStart
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void OslIntMemoryStart()
{
#ifdef OSL_MEMORY_DUMP
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    memset(&memoryList, 0, sizeof(memoryList));
    memset(&bufferCount, 0, sizeof(bufferCount));
    memoryListCount = 0;
#endif /* OSL_MEMORY_DUMP */ 
    return;
}

/*-------------------------------------------------------------------
Function Name  :  OslMemCounter
Description    :  This flag starts / stops building of the Memory 
               link list
Input       :  TRUE : TO start Mem link list
               FALSE : To stop Mem link list
Output         :  None
-------------------------------------------------------------------*/


/*****************************************************************************
 * FUNCTION
 *  OslIntMemCounter
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  
 *****************************************************************************/
long OslIntMemCounter()
{
#ifdef OSL_MEMORY_DUMP
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return goslMemCount;
#else /* OSL_MEMORY_DUMP */ 
    return 0;
#endif /* OSL_MEMORY_DUMP */ 
}

/*-------------------------------------------------------------------
Function Name  :  OslDumpDataInFile
Description    :  This Dumps memory link list data in the file 
               C:\oslMemoryDump
Input       :  None
Output         :  None
-------------------------------------------------------------------*/


/*****************************************************************************
 * FUNCTION
 *  OslIntDumpDataInFile
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void OslIntDumpDataInFile()
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    MYTIME t;
    char fileName[128];
    U8 i;

#ifdef MMI_ON_WIN32
    FILE *fp;
#endif 
    OSLMEMALLOC *ptr = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    strcpy(fileName, "C:\\oslMemoryDump.txt");

#ifdef MMI_ON_WIN32
    if ((fp = fopen(fileName, "a+")) == NULL)
    {
        return;
    }
    GetDateTime(&t);
    fprintf(
        fp,
        "____________________________________________________________________________________________________________________________\n");
    fprintf(fp, "Memory Dump at time %d:%d:%d on %d-%d-%d\n", t.nHour, t.nMin, t.nSec, t.nDay, t.nMonth, t.nYear);
    fprintf(fp, "Maximum Buffer Allocated %ld\n", MAX_BUFF);
    fprintf(fp, "Maximum Dynamic Memory used %ld\n", MaxDynamicMemUsed);
    fprintf(fp, "Total Memory In Use %ld\n", goslMemCount);
#endif /* MMI_ON_WIN32 */ 
    PRINT_INFORMATION(("____________________________________________________________________________________________________________________________"));
    PRINT_INFORMATION(("Memory Dump at time %d:%d:%d on %d-%d-%d \n \n", t.nHour, t.nMin, t.nSec, t.nDay, t.nMonth,
                       t.nYear));
    PRINT_INFORMATION(("Maximum Buffer Allocated %ld", MAX_BUFF));
    PRINT_INFORMATION(("Maximum Dynamic Memory used %ld", MaxDynamicMemUsed));
    PRINT_INFORMATION(("Total Memory In Use %ld", goslMemCount));

    for (i = 0; i < MEMORY_LIST_LENGTH; i++)
    {
        ptr = &memoryList[i];
        if (!ptr->isAllocated)
        {
            continue;
        }
    #ifdef MMI_ON_WIN32
        fprintf(fp, "File: [%s]        Line: [%d]        Size: [%d]\n", ptr->fileName, ptr->lineNumber, ptr->bytes);
    #endif 
        PRINT_INFORMATION(("File: [%s]        Line: [%d]        Size: [%d]", ptr->fileName, ptr->lineNumber,
                           ptr->bytes));
    }

#ifdef MMI_ON_WIN32
    fprintf(fp, "BUFFER VISE ALLOCATION\n");
    fprintf(fp, "Number of buffers of size 8: [%d]\n", bufferCount[0]);
    fprintf(fp, "Number of buffers of size 16: [%d]\n", bufferCount[1]);
    fprintf(fp, "Number of buffers of size 32: [%d]\n", bufferCount[2]);
    fprintf(fp, "Number of buffers of size 64: [%d]\n", bufferCount[3]);
    fprintf(fp, "Number of buffers of size 128: [%d]\n", bufferCount[4]);
    fprintf(fp, "Number of buffers of size 256: [%d]\n", bufferCount[5]);
    fprintf(fp, "Number of buffers of size 512: [%d]\n", bufferCount[6]);
    fprintf(fp, "Number of buffers of size 1024: [%d]\n", bufferCount[7]);
    fprintf(fp, "Number of buffers of size 2048: [%d]\n", bufferCount[8]);
    fprintf(fp, "Number of buffers of size 4096: [%d]\n", bufferCount[9]);
    fprintf(fp, "Number of buffers of size 8192: [%d]\n", bufferCount[10]);
    fprintf(fp, "Number of buffers of size 16384: [%d]\n", bufferCount[11]);
    fprintf(fp, "Number of buffers of size 32768: [%d]\n", bufferCount[12]);
    fprintf(fp, "Number of buffers of size 65536: [%d]\n", bufferCount[13]);
#endif /* MMI_ON_WIN32 */ 
    PRINT_INFORMATION(("Number of buffers of size 8: [%d]", bufferCount[0]));
    PRINT_INFORMATION(("Number of buffers of size 16: [%d]", bufferCount[1]));
    PRINT_INFORMATION(("Number of buffers of size 32: [%d]", bufferCount[2]));
    PRINT_INFORMATION(("Number of buffers of size 64: [%d]", bufferCount[3]));
    PRINT_INFORMATION(("Number of buffers of size 128: [%d]", bufferCount[4]));
    PRINT_INFORMATION(("Number of buffers of size 256: [%d]", bufferCount[5]));
    PRINT_INFORMATION(("Number of buffers of size 512: [%d]", bufferCount[6]));
    PRINT_INFORMATION(("Number of buffers of size 1024: [%d]", bufferCount[7]));
    PRINT_INFORMATION(("Number of buffers of size 2048: [%d]", bufferCount[8]));
    PRINT_INFORMATION(("Number of buffers of size 4096: [%d]", bufferCount[9]));
    PRINT_INFORMATION(("Number of buffers of size 8192: [%d]", bufferCount[10]));
    PRINT_INFORMATION(("Number of buffers of size 16384: [%d]", bufferCount[11]));
    PRINT_INFORMATION(("Number of buffers of size 32768: [%d]", bufferCount[12]));
    PRINT_INFORMATION(("Number of buffers of size 65536: [%d]", bufferCount[13]));

    PRINT_INFORMATION(("____________________________________________________________________________________________________________________________"));
#ifdef MMI_ON_WIN32
    fclose(fp);
#endif 
    return;
}

#endif /* OSL_MEMORY_DUMP */ 
/*-------------------------------------------------------------------
            end of file OslMemory.C
---------------------------------------------------------------------*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -