亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cmds.c

?? RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
?? C
字號:
/* * Author: Fernando RUIZ CASAS * *  Work: fernando.ruiz@ctv.es *  Home: correo@fernando-ruiz.com * * This file is inspired in rtems_monitor & Chris John MyRightBoot *  * But I want to make it more user friendly * A 'monitor' command is added to adapt the call rtems monitor commands * at my call procedure *  * TODO: A lot of improvements of course.  *      cp, mv, ... *      hexdump, *       *      More? Say me it, please... *       *      The BSP Specific are not welcome here. *       * C&S welcome... * *  $Id: cmds.c,v 1.5.6.2 2003/08/06 21:54:56 jennifer Exp $ */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <stdio.h>#include <termios.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include <dirent.h>#include <time.h>#include <fcntl.h>#include <unistd.h>#include <pwd.h>#include <grp.h>#include <errno.h>#include <sys/types.h>#include <stddef.h>#include <rtems.h>#include <rtems/monitor.h>#include <rtems/score/tod.h>#include <imfs.h>#include <rtems/shell.h>/* ----------------------------------------------- *  - str to int "0xaffe" "0b010010" "0123" "192939" * ----------------------------------------------- */int str2int(char * s) { int sign=1;	 int base=10; int value=0; int digit; if (!s) return 0; if (*s) {  if (*s=='-') {   sign=-1;   s++;   if (!*s) return 0;  };  if (*s=='0') {   s++;   switch(*s) {    case 'x':    case 'X':s++; 	     base=16;	     break;    case 'b':    case 'B':s++;	     base=2;	     break;    default :base=8;	     break;   }  };   while (*s) {   switch(*s) {    case '0':    case '1':    case '2':    case '3':    case '4':    case '5':    case '6':    case '7':    case '8':    case '9':digit=*s-'0'; 	     break;    case 'A':	       case 'B':	       case 'C':	       case 'D':	       case 'E':	       case 'F':digit=*s-'A'+10;	     break;    case 'a':	       case 'b':	       case 'c':	       case 'd':	       case 'e':	       case 'f':digit=*s-'a'+10;	     break;    default:return value*sign;	        };   if (digit>base) return value*sign;   value=value*base+digit;   s++;  }; }; return value*sign;	}/*----------------------------------------------------------------------------* * RAM MEMORY COMMANDS *----------------------------------------------------------------------------*/#define mdump_adr (current_shell_env->mdump_adr)  /* static value */int main_mdump(int argc,char * argv[]) { unsigned char n,m,max=0; int adr=mdump_adr; unsigned char * pb; if (argc>1) adr=str2int(argv[1]); if (argc>2) max=str2int(argv[2]); max/=16; if (!max) max=20; for (m=0;m<max;m++) {  printf("0x%08X ",adr);  pb=(unsigned char*) adr;  for (n=0;n<16;n++)   printf("%02X%c",pb[n],n==7?'-':' ');  for (n=0;n<16;n++) {   printf("%c",isprint(pb[n])?pb[n]:'.');  };  printf("\n");  adr+=16; }; mdump_adr=adr; return 0;}/*----------------------------------------------------------------------------*/int main_mwdump(int argc,char * argv[]) { unsigned char n,m,max=0; int adr=mdump_adr; unsigned short * pw; if (argc>1) adr=str2int(argv[1]); if (argc>2) max=str2int(argv[2]); max/=16; if (!max) max=20; for (m=0;m<max;m++) {  printf("0x%08X ",adr);  pw=(unsigned short*) adr;  for (n=0;n<8;n++)   printf("%02X %02X%c",pw[n]/0x100,pw[n]%0x100,n==3?'-':' ');  for (n=0;n<8;n++) {   printf("%c",isprint(pw[n]/0x100)?pw[n]/0x100:'.');   printf("%c",isprint(pw[n]%0x100)?pw[n]%0x100:'.');  };  printf("\n");  adr+=16; }; mdump_adr=adr; return 0;}/*----------------------------------------------------------------------------*/int main_medit(int argc,char * argv[]) { unsigned char * pb; int n,i; if (argc<3) {  printf("too few arguments\n");  return 0; }; pb=(unsigned char*)str2int(argv[1]); i=2; n=0; while (i<=argc) {  pb[n++]=str2int(argv[i++])%0x100; } mdump_adr=(int)pb; return main_mdump(0,NULL);}/*----------------------------------------------------------------------------*/int main_mfill(int argc,char * argv[]) { int  adr; int  size; unsigned char value; if (argc<4) {  printf("too few arguments\n");  return 0; }; adr  =str2int(argv[1]); size =str2int(argv[2]); value=str2int(argv[3])%0x100; memset((unsigned char*)adr,size,value); mdump_adr=adr; return main_mdump(0,NULL);}/*----------------------------------------------------------------------------*/int main_mmove(int argc,char * argv[]) { int  src; int  dst; int  size; if (argc<4) {  printf("too few arguments\n");  return 0; }; dst  =str2int(argv[1]); src  =str2int(argv[2]); size =str2int(argv[3]); memcpy((unsigned char*)dst,(unsigned char*)src,size); mdump_adr=dst; return main_mdump(0,NULL);}/*----------------------------------------------------------------------------*/#ifdef MALLOC_STATS  /* /rtems/s/src/lib/libc/malloc.c */int main_malloc_dump(int argc,char * argv[]) { void malloc_dump(void);  malloc_dump();	 return 0;}#endif/*---------------------------------------------------------------------------- * Reset. Assumes that the watchdog is present. *----------------------------------------------------------------------------*/int main_reset (int argc, char **argv){  rtems_interrupt_level level;  printf ("Waiting for watchdog ... ");  tcdrain(fileno(stdout));  rtems_interrupt_disable (level);  for (;;)       ;  return 0;}/*---------------------------------------------------------------------------- * Alias. make an alias *----------------------------------------------------------------------------*/int main_alias (int argc, char **argv){ if (argc<3) {  printf("too few arguments\n");  return 1; }; if (!shell_alias_cmd(argv[1],argv[2])) {  printf("unable to make an alias(%s,%s)\n",argv[1],argv[2]); }; return 0;}  /*-----------------------------------------------------------*  	 * Directory commands *-----------------------------------------------------------*/int main_ls(int argc, char *argv[]){   char * fname;   DIR                 *dirp;   struct dirent       *dp;   struct stat         stat_buf;   struct passwd     * pwd;   struct group      * grp;   char * user;   char * group;   char   sbuf[256];   char   nbuf[1024];   int  n,size;   fname=".";   if (argc>1) fname=argv[1];   if ((dirp = opendir(fname)) == NULL)   {      printf("%s: No such file or directory.\n", fname);      return errno;   }   n=0;   size=0;   while ((dp = readdir(dirp)) != NULL)   {      strcpy(nbuf,fname);      if (nbuf[strlen(nbuf)-1]!='/') strcat(nbuf,"/");      strcat(nbuf,dp->d_name); /* always the fullpathname. Avoid ftpd problem.*/      if (stat(nbuf, &stat_buf) == 0)      { /* AWFUL buts works...*/	 strftime(sbuf,sizeof(sbuf)-1,"%b %d %H:%M",gmtime(&stat_buf.st_mtime));     	 pwd=getpwuid(stat_buf.st_uid);	 user=pwd?pwd->pw_name:"nouser";	 grp=getgrgid(stat_buf.st_gid);	 group=grp?grp->gr_name:"nogrp";         printf("%c%c%c%c%c%c%c%c%c%c %3d %6.6s %6.6s %11d %s %s%c\n",                 (S_ISLNK(stat_buf.st_mode)?('l'):                    (S_ISDIR(stat_buf.st_mode)?('d'):('-'))),                 (stat_buf.st_mode & S_IRUSR)?('r'):('-'),                 (stat_buf.st_mode & S_IWUSR)?('w'):('-'),                 (stat_buf.st_mode & S_IXUSR)?('x'):('-'),                 (stat_buf.st_mode & S_IRGRP)?('r'):('-'),                 (stat_buf.st_mode & S_IWGRP)?('w'):('-'),                 (stat_buf.st_mode & S_IXGRP)?('x'):('-'),                 (stat_buf.st_mode & S_IROTH)?('r'):('-'),                 (stat_buf.st_mode & S_IWOTH)?('w'):('-'),                 (stat_buf.st_mode & S_IXOTH)?('x'):('-'),                 (int)stat_buf.st_nlink,	 	 user,group,                  (int)stat_buf.st_size,		 sbuf,                 dp->d_name,                 S_ISDIR(stat_buf.st_mode)?'/':' ');	 n++;	 size+=stat_buf.st_size;      }   }   printf("%d files %d bytes occupied\n",n,size);   closedir(dirp);   return 0;}/*-----------------------------------------------------------*/  	int main_pwd (int argc, char *argv[]) {   char dir[1024];   getcwd(dir,1024);   printf("%s\n",dir);   return 0;}/*-----------------------------------------------------------*/  	int main_chdir (int argc, char *argv[]) {   char *dir;   dir="/";   if (argc>1) dir=argv[1];   if (chdir(dir)) {    printf("chdir to '%s' failed:%s\n",dir,strerror(errno));    return errno;   };    return 0;}/*-----------------------------------------------------------*/  	int main_mkdir (int argc, char *argv[]) {   char *dir;   int n;   n=1;   while (n<argc) {    dir=argv[n++];    if (mkdir(dir,S_IRWXU|S_IRWXG|S_IRWXO)) {      printf("mkdir '%s' failed:%s\n",dir,strerror(errno));    };     };     return errno;}/*-----------------------------------------------------------*/  	int main_rmdir (int argc, char *argv[]){   char *dir;   int n;   n=1;   while (n<argc) {    dir=argv[n++];    if (rmdir(dir)) printf("rmdir '%s' failed:%s\n",dir,strerror(errno));   };   return errno;}/*-----------------------------------------------------------*/  	int main_chroot(int argc,char * argv[]) { char * new_root="/"; if (argc==2) new_root=argv[1]; if (chroot(new_root)<0) {  printf("error %s:chroot(%s);\n",strerror(errno),new_root);  return -1; }; return 0;}/*-----------------------------------------------------------*/  	int main_cat   (int argc, char *argv[]){   int n;   n=1;   while (n<argc) cat_file(stdout,argv[n++]);   return 0;}/*-----------------------------------------------------------*/  	int main_rm    (int argc, char *argv[]){   int n;   n=1;   while (n<argc) {    if (unlink(argv[n])) {     printf("error %s:rm %s\n",strerror(errno),argv[n]);     return -1;    };    n++;   };   return 0;}/*-----------------------------------------------------------*/  	/* date - print time and date */int main_date(int argc,char *argv[]) {  time_t t;  time(&t);  printf("%s", ctime(&t));  return 0;}/*-----------------------------------------------------------*/int main_logoff(int argc,char *argv[]) {  printf("logoff from the system...");	  current_shell_env->exit_shell=TRUE;	  return 0;}/*-----------------------------------------------------------*/int main_tty   (int argc,char *argv[]) {  printf("%s\n",ttyname(fileno(stdin)));  return 0;}/*-----------------------------------------------------------*/int main_whoami(int argc,char *argv[]) {   struct passwd     * pwd;   pwd=getpwuid(getuid());   printf("%s\n",pwd?pwd->pw_name:"nobody");   return 0;}/*-----------------------------------------------------------*/int main_id    (int argc,char *argv[]) {   struct passwd     * pwd;   struct group      * grp;   pwd=getpwuid(getuid());   grp=getgrgid(getgid());   printf("uid=%d(%s),gid=%d(%s),",		   getuid(),pwd?pwd->pw_name:"",		   getgid(),grp?grp->gr_name:"");   pwd=getpwuid(geteuid());   grp=getgrgid(getegid());   printf("euid=%d(%s),egid=%d(%s)\n",		   geteuid(),pwd?pwd->pw_name:"",		   getegid(),grp?grp->gr_name:"");   return 0;}/*-----------------------------------------------------------*/int main_umask(int argc,char *argv[]) {   mode_t msk=umask(0);   if (argc == 2) msk=str2int(argv[1]);   umask(msk);   msk=umask(0);   printf("0%o\n",msk);   umask(msk);   return 0;}/*-----------------------------------------------------------*/int main_chmod(int argc,char *argv[]) {   int n;   mode_t mode;   if (argc > 2){    mode=str2int(argv[1])&0777;    n=2;    while (n<argc) chmod(argv[n++],mode);   };   return 0;}/*-----------------------------------------------------------*  	 * with this you can call at all the rtems monitor commands. * Not all work fine but you can show the rtems status and more. *-----------------------------------------------------------*/  	int main_monitor(int argc,char * argv[]) { rtems_monitor_command_entry_t *command; extern rtems_monitor_command_entry_t rtems_monitor_commands[]; rtems_task_ident(RTEMS_SELF,0,&rtems_monitor_task_id); rtems_monitor_node = rtems_get_node(rtems_monitor_task_id); rtems_monitor_default_node = rtems_monitor_node; if ((command=rtems_monitor_command_lookup(rtems_monitor_commands,argc,argv)))  command->command_function(argc, argv, command->command_arg, 0); return 0;}/*-----------------------------------------------------------*/  	void register_cmds(void) {  rtems_monitor_command_entry_t *command;  extern rtems_monitor_command_entry_t rtems_monitor_commands[];  /* monitor topic */  command=rtems_monitor_commands;  while (command) {   if (strcmp("exit",command->command)) /*Exclude EXIT (alias quit)*/    shell_add_cmd(command->command,"monitor",                  command->usage  ,main_monitor);   command=command->next;  };  /* dir[ectories] topic */  shell_add_cmd  ("ls"    ,"dir","ls [dir]     # list files in the directory" ,main_ls   );  shell_add_cmd  ("chdir" ,"dir","chdir [dir]  # change the current directory",main_chdir);  shell_add_cmd  ("rmdir" ,"dir","rmdir  dir   # remove directory"            ,main_rmdir);  shell_add_cmd  ("mkdir" ,"dir","mkdir  dir   # make a directory"            ,main_mkdir);  shell_add_cmd  ("pwd"   ,"dir","pwd          # print work directory"        ,main_pwd  );  shell_add_cmd  ("chroot","dir","chroot [dir] # change the root directory"   ,main_chroot);  shell_add_cmd  ("cat"   ,"dir","cat n1 [n2 [n3...]]# show the ascii contents",main_cat );  shell_add_cmd  ("rm"    ,"dir","rm n1 [n2 [n3...]]# remove files"           ,main_rm   );  shell_add_cmd  ("chmod" ,"dir","chmod 0777 n1 n2... #change filemode"       ,main_chmod);  shell_alias_cmd("ls"    ,"dir");  shell_alias_cmd("chdir" ,"cd");  /* misc. topic */  shell_add_cmd  ("logoff","misc","logoff from the system"                    ,main_logoff);  shell_alias_cmd("logoff","exit");   shell_add_cmd  ("date" ,"misc","date"                                       ,main_date);  shell_add_cmd  ("reset","misc","reset the BSP"                              ,main_reset);  shell_add_cmd  ("alias","misc","alias old new"                              ,main_alias);  shell_add_cmd  ("tty"  ,"misc","show ttyname"                               ,main_tty  );  shell_add_cmd  ("whoami","misc","show current user"                         ,main_whoami);  shell_add_cmd  ("id"    ,"misc","show uid,gid,euid,egid"                    ,main_id    );  shell_add_cmd  ("umask" ,"misc","umask [new_umask]"                         ,main_umask );  /* memory topic */  shell_add_cmd  ("mdump","mem"  ,"mdump [adr [size]]"           ,main_mdump);  shell_add_cmd  ("wdump","mem"  ,"wdump [adr [size]]"           ,main_mwdump);  shell_add_cmd  ("medit","mem"  ,"medit adr value [value ...]"  ,main_medit);  shell_add_cmd  ("mfill","mem"  ,"mfill adr size value"         ,main_mfill);  shell_add_cmd  ("mmove","mem"  ,"mmove dst src size"           ,main_mmove);#ifdef MALLOC_STATS  /* /rtems/s/src/lib/libc/malloc.c */  shell_add_cmd  ("malloc","mem","mem  show memory malloc'ed"                 ,main_mem);#endif  }/*-----------------------------------------------------------*/  	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品精品一区| 欧美三级蜜桃2在线观看| 免费成人在线网站| 亚洲成av人片一区二区梦乃| 亚洲精品成人少妇| 亚洲综合免费观看高清完整版在线 | 狠狠色丁香久久婷婷综| 美日韩一区二区三区| 美日韩黄色大片| 国产自产2019最新不卡| 国产乱码精品一品二品| 丁香另类激情小说| 色噜噜狠狠成人中文综合| 欧美日韩视频在线观看一区二区三区 | 久久青草欧美一区二区三区| 精品国产亚洲在线| 国产欧美综合色| 亚洲免费av高清| 天堂一区二区在线| 国产麻豆一精品一av一免费 | 亚洲福利一区二区三区| 免费在线一区观看| 粉嫩在线一区二区三区视频| 一本大道av伊人久久综合| 欧美美女一区二区三区| 欧美成人video| 专区另类欧美日韩| 日韩av在线播放中文字幕| 国内精品视频一区二区三区八戒| 成人爽a毛片一区二区免费| 色偷偷久久一区二区三区| 日韩一级完整毛片| 国产精品久久久久影视| 日韩电影在线一区二区三区| 大尺度一区二区| 91精品国产综合久久小美女| 中文字幕 久热精品 视频在线| 亚洲黄色尤物视频| 久久精品99久久久| 日本精品一级二级| 中文字幕欧美区| 奇米色一区二区| 色www精品视频在线观看| 精品成人佐山爱一区二区| 亚洲综合丁香婷婷六月香| 国产福利精品一区二区| 91精品一区二区三区在线观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲丝袜制服诱惑| 国产在线一区观看| 69久久夜色精品国产69蝌蚪网| 中文字幕欧美激情一区| 久久91精品久久久久久秒播| 色哟哟精品一区| 久久精品免视看| 免费成人在线观看视频| 在线亚洲欧美专区二区| 国产精品入口麻豆九色| 国内不卡的二区三区中文字幕| 欧美日韩国产综合视频在线观看| 中文字幕在线观看不卡视频| 国产综合色视频| 欧美成人一区二区| 日本在线不卡视频| 欧美精品电影在线播放| 亚洲国产日韩a在线播放性色| 日韩丝袜情趣美女图片| 亚洲国产欧美日韩另类综合| 99久久精品国产导航| 国产精品蜜臀在线观看| 福利一区福利二区| 久久久精品国产免大香伊| 国产在线一区观看| 26uuu国产日韩综合| 久99久精品视频免费观看| 日韩一区二区免费电影| 免费成人你懂的| 精品成人佐山爱一区二区| 韩国三级电影一区二区| 2020日本不卡一区二区视频| 国产尤物一区二区| 久久精品人人做人人综合| 国产91精品在线观看| 国产精品乱码一区二三区小蝌蚪| 成人免费毛片片v| 中文字幕亚洲区| 在线看国产一区二区| 午夜精品久久久久久久久| 欧美一级在线观看| 国产一区二区三区四区在线观看| 久久人人97超碰com| 99热精品国产| 亚洲福利一区二区| 欧美精品一区二区三区四区| 成人一区在线观看| 亚洲精品综合在线| 日韩午夜在线影院| 成人免费电影视频| 一区二区三区在线播放| 日韩一区二区三区免费观看| 国产.欧美.日韩| 亚洲一区在线观看免费| 精品国产亚洲一区二区三区在线观看 | 欧美三级资源在线| 久久99久久精品| ●精品国产综合乱码久久久久| 欧美嫩在线观看| 成人网页在线观看| 日韩专区一卡二卡| 中文字幕一区av| 精品久久国产老人久久综合| 成人精品国产一区二区4080| 午夜视频一区在线观看| 中文字幕免费不卡在线| 欧美高清视频www夜色资源网| 国产一区二区精品久久91| 一区二区三区在线播| 2021久久国产精品不只是精品 | 一区二区三区欧美久久| 精品国产乱码久久久久久久| 色国产综合视频| 国产麻豆精品一区二区| 亚洲成人tv网| 亚洲黄色免费网站| 国产精品免费视频网站| 日韩精品中文字幕一区二区三区 | 欧美精品九九99久久| 成人激情午夜影院| 狠狠狠色丁香婷婷综合久久五月| 亚洲综合另类小说| 亚洲欧美综合色| 免费欧美在线视频| 亚洲一区在线看| 亚洲欧洲av一区二区三区久久| 久久综合色一综合色88| 91精品黄色片免费大全| 欧美日韩精品一区二区| 色久综合一二码| 91麻豆国产自产在线观看| 成人综合在线观看| 国产成人综合网| 国产精品中文字幕日韩精品 | 国产成人av福利| 久久99精品久久久久久动态图| 午夜一区二区三区在线观看| 亚洲精选视频免费看| 亚洲区小说区图片区qvod| 亚洲日本在线a| 亚洲精品免费看| 亚洲综合在线视频| 亚洲综合在线视频| 午夜成人免费电影| 日本中文一区二区三区| 日本美女视频一区二区| 午夜不卡av在线| 琪琪久久久久日韩精品| 麻豆91精品91久久久的内涵| 久久99热这里只有精品| 国产一区啦啦啦在线观看| 国产精品888| 成人黄色av电影| 色88888久久久久久影院野外| 在线中文字幕不卡| 欧美精品精品一区| 欧美www视频| 久久久蜜桃精品| 国产精品第13页| 亚洲综合区在线| 美女看a上一区| 国产iv一区二区三区| 99视频一区二区| 4438成人网| 久久久777精品电影网影网 | 欧美群妇大交群的观看方式| 欧美精品乱人伦久久久久久| 日韩一区二区在线播放| 2欧美一区二区三区在线观看视频| 国产欧美日韩三区| 亚洲综合色视频| 九色porny丨国产精品| 波多野结衣在线一区| 欧美日韩在线亚洲一区蜜芽| 精品成人免费观看| 亚洲免费视频中文字幕| 美女免费视频一区| 色香蕉成人二区免费| 欧美大片一区二区| 亚洲欧洲精品一区二区三区不卡| 视频一区二区不卡| heyzo一本久久综合| 欧美一区二区三区小说| 国产精品黄色在线观看| 蜜臀久久久久久久| 一本久久a久久免费精品不卡| 欧美一区二区私人影院日本| 亚洲欧洲在线观看av| 精品一区二区影视| 欧美日韩国产综合一区二区三区 | 亚洲国产精品传媒在线观看| 日韩国产精品久久|