📄 dmi_sn.bak
字号:
i=0;
if (strcmpi((char *)parm_leading,"//") != 0)
{
strcpy ((char *)argv_buffer+i,(char *)parm_leading);
i += (strlen((char *)parm_leading));
}
strcpy ((char *)argv_buffer+i,(char *)parm_counter);
i += (strlen((char *)parm_counter));
if (strcmpi((char *)parm_adm,"//") != 0)
{
strcpy ((char *)argv_buffer+i,(char *)parm_adm);
i += (strlen((char *)parm_adm));
}
argv_buffer[i+1] = NULL;
/*;;;;; if (strcmpi((char *)temp_offset,(char *)argv_buffer) == 0)
{
printf ("This Mothbord serial number = counter number.\n");
printf ("Are you sure write to flash Rom <y> <n>:");
i = getchar();
if (!(i == 0x59 || i == 0x79)) return;
} */
/*-----------------------------*/
}
else
{
strcpy((char *)file_check,"*DMI*");
strcpy ((char *)parm_leading,(char *)argv_leading);
strupr ((char *)parm_leading);
strcpy ((char *)parm_start,(char *)argv_start);
strupr ((char *)parm_start);
strcpy ((char *)parm_end,(char *)argv_end);
strupr ((char *)parm_end);
strcpy ((char *)parm_adm,(char *)argv_adm);
strupr ((char *)parm_adm);
strcpy ((char *)parm_counter,(char *)parm_start);
strcpy ((char *)num_temp,(char *)argv_num);
strupr ((char *)parm_adm);
}
}
else if (Now_Write == 1)
{
strcpy ((char *)parm_leading,(char *)argv_leading);
strupr ((char *)parm_leading);
strcpy ((char *)parm_counter,(char *)argv_start);
strupr ((char *)parm_counter);
strcpy ((char *)parm_adm,(char *)argv_adm);
strupr ((char *)parm_adm);
}
else Print_Help_Func();
}
/*-----------------------*/
/*-----------------------------------------------*/
/*-----------------------------------------------*/
else
{
if(system_flag)
temp_offset = (char *)Type3_DMIStrucBuffer + *((char *)Type3_DMIStrucBuffer + 1);
else
temp_offset = (char *)Type1_DMIStrucBuffer + *((char *)Type1_DMIStrucBuffer + 1);
for (i=0;i<3;i++)
{
strcpy ((char *)Temp_str,(char *)temp_offset);
temp_offset += (strlen((char *)Temp_str)+1);
}
if (strcmpi((char *)temp_offset,"NULL") == 0)
printf ("DMI serial number = %s\n\n","NULL");
else
printf ("DMI serial number = %s\n\n",temp_offset);
if (file_flag == 1)
{
strcpy ((char *)parm_counter_next,(char *)parm_counter);
end_len=strlen((char *)parm_end);
counter_len=strlen((char *)parm_counter_next);
if (strcmpi((char *)num_temp,"/H") == 0)
{
for (i=counter_len;i>0;i--)
{
counter=parm_counter_next[i-1];
if (!((counter >= 0x30 && counter <= 0x3a) || (counter >=0x41 && counter <= 0x46)))
{
printf ("Counting select ERROR.\n");
return;
}
counter ++;
if (counter == 0x3a)
counter=0x41;
if (counter < 0x47)
{
parm_counter_next[i-1]=counter;
break;
}
if (i == 1)
{
memmove(&parm_counter_next[i],&parm_counter_next[i-1],counter_len+1);
parm_counter_next[i]='0';
parm_counter_next[i-1]='1';
break;
}
parm_counter_next[i-1]='0';
}
}
else if (strcmpi((char *)num_temp,"/A") == 0)
{
for (i=counter_len;i>0;i--)
{
counter=parm_counter_next[i-1];
counter ++;
if (counter == 0x3a)
counter=0x41;
if (counter < 0x5b)
{
parm_counter_next[i-1]=counter;
break;
}
if (i == 1)
{
memmove(&parm_counter_next[i],&parm_counter_next[i-1],counter_len+1);
parm_counter_next[i]='0';
parm_counter_next[i-1]='1';
break;
}
parm_counter_next[i-1]='0';
}
}
else
{
for (i=counter_len;i>0;i--)
{
counter=parm_counter_next[i-1];
if (!((counter >= 0x30) || (counter <= 0x3a)))
{
printf ("Counting select ERROR.\n");
return;
}
counter ++;
if (counter < 0x3a)
{
parm_counter_next[i-1]=counter;
break;
}
if (i == 1)
{
if (counter_len >= 64)
{
printf("WARRING:serial number overflow.");
fclose(dmi_sn);
return;
}
memmove(&parm_counter_next[i],&parm_counter_next[i-1],counter_len+1);
parm_counter_next[i]='0';
parm_counter_next[i-1]='1';
break;
}
parm_counter_next[i-1]='0';
}
}
if (strcmpi((char *)parm_leading,"//") == 0)
{
if (strcmpi((char *)parm_adm,"//") == 0)
{
printf ("Start DMI serial number = %s\n",parm_start);
printf ("Next DMI serial number = %s\n",parm_counter_next);
printf ("Last DMI serial number = %s\n",parm_end);
}
else
{
printf ("Start DMI serial number = %s%s\n",parm_start,parm_adm);
printf ("Next DMI serial number = %s%s\n",parm_counter_next,parm_adm);
printf ("Last DMI serial number = %s%s\n",parm_end,parm_adm);
}
}
else
{
if (strcmpi((char *)parm_adm,"//") == 0)
{
printf ("Start DMI serial number = %s%s\n",parm_leading,parm_start);
printf ("Next DMI serial number = %s%s\n",parm_leading,parm_counter_next);
printf ("Last DMI serial number = %s%s\n",parm_leading,parm_end);
}
else
{
printf ("Start DMI serial number = %s%s%s\n",parm_leading,parm_start,parm_adm);
printf ("Next DMI serial number = %s%s%s\n",parm_leading,parm_counter_next,parm_adm);
printf ("Last DMI serial number = %s%s%s\n",parm_leading,parm_end,parm_adm);
}
}
}
else
{
printf ("Start DMI serial number = No steup number\n");
printf ("Next DMI serial number = No steup number\n");
printf ("Last DMI serial number = No steup number\n");
}
return;
}
/*-------------------------------------------------------------------*/
if (Now_Write == 0)
{
end_len=strlen((char *)parm_end);
counter_len=strlen((char *)parm_counter);
if (hex_flag == 1)
{
for (i=counter_len-1;i>=0;i--)
{
counter=parm_counter[i];
if (!((counter >= 0x30 && counter <= 0x3a) || (counter >=0x41 && counter <= 0x46)))
{
printf ("Counting select ERROR.\n");
return;
}
if (cmp_flag == 1)
{
counter ++;
if (counter == 0x3a)
counter=0x41;
if (counter < 0x47)
{
parm_counter[i]=counter;
break;
}
if (i == 0)
{
printf("WARRING:serial number overflow.\n");
return;
}
parm_counter[i]='0';
}
}
}
else if (all_flag == 1)
{
for (i=counter_len-1;i>0;i--)
{
counter=parm_counter[i];
if (cmp_flag == 1)
{
counter ++;
if (counter == 0x3a)
counter=0x41;
if (counter < 0x5b)
{
parm_counter[i]=counter;
break;
}
if (i == 0)
{
printf("WARRING:serial number overflow.\n");
return;
}
parm_counter[i]='0';
}
}
}
else
{
for (i=counter_len-1;i>0;i--)
{
counter=parm_counter[i];
if (!((counter >= 0x30) && (counter <= 0x3a)))
{
printf ("Counting select ERROR.\n");
return;
}
if (cmp_flag == 1)
{
counter ++;
if (counter < 0x3a)
{
parm_counter[i]=counter;
break;
}
if (i == 0)
{
printf("WARRING:serial number overflow.\n");
return;
}
parm_counter[i]='0';
}
}
}
if(over_flag == 0)
{
for (i=0;i<end_len;i++)
{
if (parm_end[i] > parm_counter[i]) break;
if (parm_end[i] < parm_counter[i])
{
printf("WARRING:serial number overflow.");
fclose(dmi_sn);
return;
}
}
}
}
/*------------------ Set DMI Struct ------------------------------start*/
if (Clear_flag == 0)
{
if (strcmpi((char *)parm_leading,"//") != 0)
{
strcpy ((char *)Temp_Str_Point,(char *)parm_leading);
Temp_Str_Point += (strlen((char *)parm_leading));
}
strcpy ((char *)Temp_Str_Point,(char *)parm_counter);
Temp_Str_Point += (strlen((char *)parm_counter));
if (strcmpi((char *)parm_adm,"//") != 0)
{
strcpy ((char *)Temp_Str_Point,(char *)parm_adm);
Temp_Str_Point += (strlen((char *)parm_adm));
if (strcmpi((char *)parm_leading,"//") == 0)
Set_DMIStrucBuffer->data_length = (+strlen((char *)parm_counter)+strlen((char *)parm_adm)+1);
else
Set_DMIStrucBuffer->data_length = (strlen((char *)parm_leading)+strlen((char *)parm_counter)+strlen((char *)parm_adm)+1);
}
else
{
if (strcmpi((char *)parm_leading,"//") == 0)
Set_DMIStrucBuffer->data_length = (strlen((char *)parm_counter)+1);
else
Set_DMIStrucBuffer->data_length = (strlen((char *)parm_leading)+strlen((char *)parm_counter)+1);
}
*(Temp_Str_Point+1) = NULL;
Set_DMIStrucBuffer->command = 5;
Set_DMIStrucBuffer->change_mask = 0x00;
Set_DMIStrucBuffer->change_value = 0;
Set_DMIStrucBuffer->field_ofs = 7;
if (Now_Write == 0)
{
if (strcmpi((char *)parm_leading,"//") != 0)
{
if (strcmpi((char *)parm_adm,"//") != 0)
{
printf("DMI serial number=%s%s%s\n\n",parm_leading,parm_counter,parm_adm);
printf("Last DMI serial number=%s%s%s\n\n",parm_leading,parm_end,parm_adm);
}
else
{
printf("DMI serial number=%s%s\n\n",parm_leading,parm_counter);
printf("Last DMI serial number=%s%s\n\n",parm_leading,parm_end);
}
}
else
{
if (strcmpi((char *)parm_adm,"//") != 0)
{
printf("DMI serial number=%s%s\n\n",parm_counter,parm_adm);
printf("Last DMI serial number=%s%s\n\n",parm_end,parm_adm);
}
else
{
printf("DMI serial number=%s\n\n",parm_counter);
printf("Last DMI serial number=%s\n\n",parm_end);
}
}
}
if (prompt_flag == 0)
{
printf("Are you sure write to flash Rom <y> <n>:");
i = getchar();
if (i == 0x59 || i == 0x79)
{
printf("*** Update DMI structure progressing ***\n");
printf(" === Please Wait a moment === \n");
stack_temp_byte=Set_DMI_Struct ();
DMI_Error_Code();
if (stack_temp_byte != 0) return;
}
}
else
{
printf("*** Update DMI structure progressing ***\n");
printf(" === Please Wait a moment === \n");
stack_temp_byte=Set_DMI_Struct ();
DMI_Error_Code();
if (stack_temp_byte != 0) return;
}
}
/*------------------ Set DMI Struct ------------------------------end*/
/*---------------------------------------------------------------------*/
/*---------------------------------------------------------------------*/
if (Now_Write == 0)
{
dmi_sn=fopen(DMI_SN_file, "w+t");
fseek (dmi_sn,0,SEEK_SET);
fprintf (dmi_sn,"%s",file_check);
fseek (dmi_sn,1,SEEK_CUR);
fprintf (dmi_sn,"%s",parm_leading);
fseek (dmi_sn,1,SEEK_CUR);
fprintf (dmi_sn,"%s",parm_start);
fseek (dmi_sn,1,SEEK_CUR);
fprintf (dmi_sn,"%s",parm_end);
fseek (dmi_sn,1,SEEK_CUR);
fprintf (dmi_sn,"%s",parm_adm);
fseek (dmi_sn,1,SEEK_CUR);
fprintf (dmi_sn,"%s",parm_counter);
fseek (dmi_sn,1,SEEK_CUR);
fprintf (dmi_sn,"%s",num_temp);
fclose (dmi_sn);
}
return;
}
void DMI_Error_Code(void)
{
char *show_func_Message[] = {
"=== UPDATE SUCCESS ===",
"=== DMI UNKNOWN FUNCTION ===",
"=== DMI FUNCTION NOT SUPPORTED ===",
"=== DMI INVALID HANDLE ===",
"=== DMI BAD PARAMETER ===",
"=== DMI INVALID SUBFUNCTION ===",
"=== DMI NO CHANGE ===",
"=== DMI ADD STRUCTURE FAILED ===",
"=== DMI READ ONLY ===",
"=== DMI LOCK NOT SUPPORTED ===",
"=== DMI CURRENTLY LOCKED ===",
"=== DMI INVALID LOCK ===",
};
stack_temp_byte = stack_temp_byte & 0x00ff;
switch(stack_temp_byte)
{
case ST_SUCCESS:
printf ("\n%s\n",show_func_Message[0]);
break;
case ST_UNKNOW_FUNC:
case ST_FUNC_NOT_SUPPORT:
case ST_INVALID_HANDLE:
case ST_BAD_PARA:
case ST_INVALID_SUBFUNC:
case ST_NO_CHANGE:
case ST_ADD_STRUC_FAIL:
printf ("\n%s\n",show_func_Message[stack_temp_byte-0x80]);
break;
case ST_READ_ONLY:
printf ("\n%s\n",show_func_Message[8]);
break;
case ST_LOCK_NOT_SUPPORT:
printf ("\n%s\n",show_func_Message[9]);
break;
case ST_CURRENT_LOCK:
printf ("\n%s\n",show_func_Message[10]);
break;
case ST_INVALID_LOCK:
printf ("\n%s\n",show_func_Message[11]);
break;
default:
break;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -