📄 memory.cpp
字号:
// Memory.cpp : implementation file
//
#include "stdafx.h"
#include "TCPIPplugin.h"
#include "Memory.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// If any property is changed the value will be set to true.
// used in classwizplugin.cpp if user presses ok.
//
extern bool g_save;
/////////////////////////////////////////////////////////////////////////////
// Memory property page
IMPLEMENT_DYNCREATE(Memory, CPropertyPage)
Memory::Memory() : CPropertyPage(Memory::IDD)
{
//{{AFX_DATA_INIT(Memory)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
InitMemorySettings();
}
Memory::~Memory()
{
}
void Memory::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Memory)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
PopulateMemoryData();
}
BEGIN_MESSAGE_MAP(Memory, CPropertyPage)
//{{AFX_MSG_MAP(Memory)
ON_EN_CHANGE(IDC_POOL_START, OnChangePoolStart)
ON_EN_CHANGE(IDC_POOL_MEM_SIZE, OnChangePoolMemSize)
ON_CBN_SELCHANGE(IDC_MEM_ALIGN, OnSelchangeMemAlign)
ON_EN_CHANGE(IDC_RAM_SIZE, OnChangeRamSize)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Memory message handlers
void Memory::InitMemorySettings()
{
m_memory_alignment=4;
m_pool_mem_start = 128; // Its No. of pool buffers
m_pool_mem_size = 512; // pool buffer size
m_ram_size = 65536; // ram size
}
void Memory::PopulateMemoryData()
{
CEdit *pEdit = (CEdit*)GetDlgItem(IDC_RAM_START);
char temp_buf_arr[80];
#if 0
if(pEdit != NULL)
{
sprintf(temp_buf_arr,"0x%x",m_ram_start);
pEdit->SetWindowText(temp_buf_arr);
}
#endif
pEdit = (CEdit*)GetDlgItem(IDC_RAM_SIZE);
if(pEdit != NULL)
{
sprintf(temp_buf_arr,"%d",m_ram_size);
pEdit->SetWindowText(temp_buf_arr);
}
CComboBox *pComboBox = (CComboBox*)GetDlgItem(IDC_MEM_ALIGN);
if(pComboBox != NULL)
{
pComboBox->ResetContent();
if(pComboBox->InsertString(0,"4") == CB_ERRSPACE)
int err =1;
if(pComboBox->InsertString(-1,"2") == CB_ERRSPACE)
int err1=1;
if(pComboBox->InsertString(-1,"1") == CB_ERRSPACE)
int err2=1;
switch(m_memory_alignment)
{
case 1:
pComboBox->SetCurSel(2);
break;
case 2:
pComboBox->SetCurSel(1);
break;
case 4:
pComboBox->SetCurSel(0);
break;
}
}
pEdit = (CEdit*)GetDlgItem(IDC_POOL_START);
if(pEdit != NULL)
{
sprintf(temp_buf_arr,"%d",m_pool_mem_start);
pEdit->SetWindowText(temp_buf_arr);
}
pEdit = (CEdit*)GetDlgItem(IDC_POOL_MEM_SIZE);
if(pEdit != NULL)
{
sprintf(temp_buf_arr,"%d",m_pool_mem_size);
pEdit->SetWindowText(temp_buf_arr);
}
}
bool Memory::StoreMemoryHeaderData(ConfigHeaderStruct *cfg_header)
{
cfg_header->mem_alignment = m_memory_alignment;
cfg_header->pool_start_addr = m_pool_mem_start;
cfg_header->pool_size = m_pool_mem_size;
cfg_header->ram_size = m_ram_size;
return true;
}
bool Memory::LoadMemoryHeaderData(ConfigHeaderStruct *cfg_header)
{
m_memory_alignment = cfg_header->mem_alignment;
m_pool_mem_start = cfg_header->pool_start_addr;
m_pool_mem_size = cfg_header->pool_size;
m_ram_size = cfg_header->ram_size;
return true;
}
void Memory::OnChangePoolStart()
{
CEdit *pEdit = (CEdit*)GetDlgItem(IDC_POOL_START);
char temp_buf_arr[80];
char *end_ptr;
unsigned int o_pool_mem_start = m_pool_mem_start;
if(pEdit != NULL)
{
pEdit->GetWindowText(temp_buf_arr,sizeof(temp_buf_arr));
m_pool_mem_start= strtol(temp_buf_arr,&end_ptr,10);
}
(o_pool_mem_start != m_pool_mem_start) ? g_save = true : 0;
}
void Memory::OnChangePoolMemSize()
{
CEdit *pEdit = (CEdit*)GetDlgItem(IDC_POOL_MEM_SIZE);
char temp_buf_arr[80];
char *end_ptr;
int o_pool_mem_size = m_pool_mem_size;
if(pEdit != NULL)
{
pEdit->GetWindowText(temp_buf_arr,sizeof(temp_buf_arr));
m_pool_mem_size= strtol(temp_buf_arr,&end_ptr,10);
}
(o_pool_mem_size != m_pool_mem_size) ? g_save = true : 0;
}
void Memory::OnSelchangeMemAlign()
{
CComboBox *pComboBox = (CComboBox*)GetDlgItem(IDC_MEM_ALIGN);
char tbuf[80];
int value;
int o_memory_alignment = m_memory_alignment;
if(pComboBox != NULL)
{
pComboBox->GetLBText(pComboBox->GetCurSel(),tbuf);
value = atoi(tbuf);
if (value <=4) m_memory_alignment = value;
}
(o_memory_alignment != m_memory_alignment) ? g_save = true : 0;
}
void Memory::OnCancel()
{
CPropertyPage::OnCancel();
}
void Memory::OnChangeRamSize()
{
CEdit *pEdit = (CEdit*)GetDlgItem(IDC_RAM_SIZE);
char temp_buf_arr[80];
char *end_ptr;
int o_ram_size = m_ram_size;
if(pEdit != NULL)
{
pEdit->GetWindowText(temp_buf_arr,sizeof(temp_buf_arr));
m_ram_size= strtol(temp_buf_arr,&end_ptr,10);
}
(o_ram_size != m_ram_size) ? g_save = true : 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -