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 + -
显示快捷键?