fm_test.c
来自「这是一个基于S3C2440 的VGA 驱动程序, 其中fc.c 是驱动程序,fc」· C语言 代码 · 共 2,284 行 · 第 1/5 页
C
2,284 行
Clean_Info(); Remove_Keyboard_DevFile(); for(i=0;i<8888;i++) fd=ret*i; printf("remove kd ok\n"); close(fd); sleep(1); Remove_FM_DevFile(); for(i=0;i<8888;i++) fd=ret*i; Remove_Keyboard_File(); for(i=0;i<8888;i++) fd=ret*i; Remove_FM_File(); for(i=0;i<8888;i++) fd=ret*i; Remove_Flag_File(); for(i=0;i<8888;i++) fd=ret*i; Remove_MLG_DevFile(); for(i=0;i<8888;i++) fd=ret*i; Remove_MLG_File(); pid_t pid; if((pid=vfork())<0)
{
perror("Vfork error in loading Editparameter"); return ;
exit(1);
}
else if (pid==0)
{
printf("Loading Editparameter file\n"); execl("/usr/kb/editparameter","editparameter","-qws","1",NULL); return ;
exit(1);
} else { while(1) { sleep(1); } do { do { fk=open("/var/flag.txt",O_RDONLY); if(fk<0) { printf("Erorr in open flag.txt\n"); close(fk); sleep(2); } }while(fk<0); printf("open____OK///////////////////////////////////%s\n",KBCbuf); KBCbuf[0]=0; KBCbuf[1]=0; KBCbuf[2]=0; read(fk,&KBCbuf,(size_t)3); close(fk); sleep(1); }while((KBCbuf[0]!=0x30)||(KBCbuf[1]!=0x30)||(KBCbuf[2]!=0x30)); printf("Waiting...\n"); if(wait(&status)!=pid) { printf("wait_error_fm_test!\n");// exit(0); } printf("wait_end_fm_test!\n"); printf("hello_again_fm_test!\n"); Reboot_system(); pi=0; inx=0; while((pi==0)&&(inx<10)) { Load_Keyboard_Driver(); for(i=0;i<8888888;i++) fd=ret*i; Make_Keyboard_DevFile(); for(i=0;i<8888888;i++) fd=ret*i; fk=open("/dev/Keyboard",O_RDWR); if(fk<0) { printf("Erorr in open Keyboard\n"); close(fk); Remove_Keyboard_DevFile(); for(i=0;i<8888;i++) fd=ret*i; Remove_Keyboard_File(); for(i=0;i<8888;i++) fd=ret*i; sleep(1); inx++; } else pi=1; } Load_FM_Driver(); for(i=0;i<8888888;i++) fd=ret*i; Make_FM_DevFile(); for(i=0;i<8888888;i++) fd=ret*i; fd=open("/dev/fm",O_WRONLY); if(fd<0) { printf("Erorr in open_FM\n"); //return -1; } KBCbuf[0]=0; ret=write(fd,KBCbuf,1); close(fd); for(i=0;i<888;i++) fmd=ret*i; fmd = open("/dev/fb0", O_RDWR); if(fmd<0) printf("Open error\n"); ioctl(fmd, FBIOGET_FSCREENINFO, &finfo);
ioctl(fmd, FBIOGET_VSCREENINFO, &vinfo); screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8; printf("x=%d''''y=%d\n",vinfo.xres,vinfo.yres); fbp=(char*)mmap(0,screensize,PROT_READ|PROT_WRITE,MAP_SHARED,fmd, 0); // memset (fbp, 0, screensize); sw=vinfo.xres; sh=vinfo.yres;// Paint_Ico(0,180,278); Paint_String(0,230,278); Run_Flag=1; Paint_Ico(6,ICON_X1,ICON_Y1); Paint_Info(0,INFO_X1,INFO_Y1); Clean_Info(); }}void Para_list(){ printf("parameters list\n"); int i,ret,pi,inx; int fd; int status; unsigned char KBCbuf[10]; printf("parameters setup\n"); close(fk); close(fmd); close(fl); Clean_Info(); Remove_Keyboard_DevFile(); for(i=0;i<8888;i++) fd=ret*i; printf("remove kd ok\n"); close(fd); sleep(1); Remove_FM_DevFile(); for(i=0;i<8888;i++) fd=ret*i; Remove_Keyboard_File(); for(i=0;i<8888;i++) fd=ret*i; Remove_FM_File(); for(i=0;i<8888;i++) fd=ret*i; Remove_Flag_File(); for(i=0;i<8888;i++) fd=ret*i; Remove_MLG_DevFile(); for(i=0;i<8888;i++) fd=ret*i; Remove_MLG_File(); pid_t pid; if((pid=vfork())<0)
{
perror("Vfork error in loading Editparameter"); return ;
exit(1);
}
else if (pid==0)
{
printf("Loading Editparameter file\n"); execl("/usr/kb/editparameter","editparameter","-qws",NULL); return ;
exit(1);
} else { while(1) { sleep(1); } }}void Login(){ printf("login_fm_test\n"); Run_Flag=0;}void Help(){ printf("Help\n");}void FS_machine(int k_code){ int inx,cscn; inx=k_code/10; inx=(inx-1)*7+k_code%10-1-inx/7; printf("k_code=%d......node=%d\n",k_code,Current_Node); //if(FSM[Current_Node].Key_List[inx].Func()==invalid) { Paint_Ico(0,180,278); Paint_String(0,230,278); Clean_Info(); cscn=Current_Node; FSM[Current_Node].Key_List[inx].Func(); } if(FSM[cscn].Key_List[inx].Subsequence>=0) Current_Node=FSM[Current_Node].Key_List[inx].Subsequence;}void invalid(){ Paint_Ico(1,180,278); Paint_String(1,230,278);}void warning_Fun1(){ Paint_Ico(2,180,278); Paint_String(2,230,278);}void Clean_Input_User(){ key_number=0; d_count=0; FullRectangle(230,100,430,130,0xffff);// PaintBitmap(sblank,260,278,STRWIDE,STRHIGH);}void Clean_Input_Password(){ key_number=0; d_count=0; FullRectangle(230,195,430,225,0xffff); // PaintBitmap(sblank,260,278,STRWIDE,STRHIGH);}void Clean_Input_All(){ FullRectangle(180,278,470,385,0x87ff);// Clean_Input_User();// Clean_Input_Password();// Paint_Ico(4,480,95);// Paint_Ico(5,480,190);// PaintBitmap(sblank,260,278,STRWIDE,STRHIGH);}void Get_Digit_User(){ if(k_digit(key_input)>=0) key_number=key_number*10+k_digit(key_input); else printf("Invalid Input---Get_Digit()!....key_input=%d\n",key_input); Display_a_number24(230,100,4,key_number,0xf800,0xffff);}void Get_Digit_Password(){ if(k_digit(key_input)>=0) key_number=key_number*10+k_digit(key_input); else printf("Invalid Input---Get_Digit()!....key_input=%d\n",key_input); Display_a_star24(230+d_count*16,195,0xf800,0xffff); d_count++;}void User_Handle(){ UserID=key_number;// Clean_Input_User(); key_number=0; Paint_Ico(0,180,278); Paint_String(0,230,278); Paint_Ico(5,480,95); Paint_Ico(4,480,190);}void Password_Handle(){ int fdd,rett; unsigned char sbuf[10]; Password=key_number; if(Password!=PASSWORD) { invalid_password(); Current_Node=15; } else { Clean_Input_User(); key_number=0; Paint_Ico(0,180,278); Paint_String(0,230,278); FullRectangle(230,100,430,130,0xffff); FullRectangle(230,195,430,225,0xffff); fdd=open("/usr/kb/xyuserid",O_RDONLY|O_CREAT|O_EXCL,MODE600); if(fdd<0) { printf("File Exited_xyuserid!!!!\n"); close(fdd); } else { printf("File Create_xyuserid!!!!\n"); close(fdd); } fdd=open("/usr/kb/xyuserid",O_WRONLY|O_SYNC); if(fdd<0) { printf("Erorr in open1_xyuserid\n"); } else { printf("Proc is opened_write1_xyuserid\n"); sprintf(sbuf,"%d",UserID); printf("User_ID=======%s\n",sbuf); rett=write(fdd,&sbuf,(size_t)10); close(fdd); } Run_Flag=0; Current_Node=13; }}void invalid_password(){ Paint_Ico(3,180,278); PaintBitmap(apassword,230,278,240,56);}int k_digit(int kin){ switch(kin) { case KEY_NUM0 : return 0; break; case KEY_NUM1 : return 1; break; case KEY_NUM2 : return 2; break; case KEY_NUM3 : return 3; break; case KEY_NUM4 : return 4; break; case KEY_NUM5 : return 5; break; case KEY_NUM6 : return 6; break; case KEY_NUM7 : return 7; break; case KEY_NUM8 : return 8; break; case KEY_NUM9 : return 9; break; default: return -1; }}//------------------------------------------------------// Remove Flag file//------------------------------------------------------unsigned char Remove_Flag_File(){ pid_t pid; if((pid=vfork())<0)
{
perror("Vfork error in FM remove"); return 0;
exit(1);
}
else if (pid==0)
{
printf("Remove flag file_fm_test\n"); execl("/bin/rm","rm","/var/flag.txt",NULL); return 1;
exit(1);
} return 1;}//------------------------------------------------------// Reboot System//------------------------------------------------------unsigned char Reboot_system(void){ pid_t pid; if((pid=vfork())<0)
{
perror("Vfork error in Reboot_sys"); return 0;
exit(1);
}
else if (pid==0)
{
printf("Reboot_sys file_fm_test\n"); execl("/bin/reboot","reboot",NULL); return 1;
exit(1);
} return 1;}//------------------------------------------------------// Reboot System//------------------------------------------------------unsigned char Free_memory(void){ pid_t pid; if((pid=vfork())<0)
{
perror("Vfork error in free_sys"); return 0;
exit(1);
}
else if (pid==0)
{
printf("free_sys file_fm_test\n"); execl("/bin/free","free",NULL); return 1;
exit(1);
} return 1;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?