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

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

?? ksym.c

?? linux下獲取一些環境信息的代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright 1998-2003 by Albert Cahalan; all rights reserved. * This file may be used subject to the terms and conditions of the * GNU Library General Public License Version 2, or any later version * at your option, as published by the Free Software Foundation. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <stdarg.h>#include <fcntl.h>#include <errno.h>#include <unistd.h>#include <sys/stat.h>#include <sys/mman.h>#include <sys/utsname.h>#include "procps.h"#include "version.h"#include "sysinfo.h" /* smp_num_cpus */#include "wchan.h"  // to verify prototypes#define KSYMS_FILENAME "/proc/ksyms"#if 0#undef KSYMS_FILENAME#define KSYMS_FILENAME  "/would/be/nice/to/have/this/file"#define SYSMAP_FILENAME "/home/albert/ps/45621/System.map-hacked"#define linux_version_code 131598 /* ? */#define smp_num_cpus 2#endif#if 0#undef KSYMS_FILENAME#define KSYMS_FILENAME  "/home/albert/ps/45621/ksyms-2.3.12"#define SYSMAP_FILENAME "/home/albert/ps/45621/System.map-2.3.12"#define linux_version_code 131852 /* 2.3.12 */#define smp_num_cpus 2#endif#if 0#undef KSYMS_FILENAME#define KSYMS_FILENAME  "/home/albert/ps/45621/ksyms-2.3.18ac8-MODVERS"#define SYSMAP_FILENAME "/home/albert/ps/45621/System.map-2.3.18ac8-MODVERS"#define linux_version_code 131858 /* 2.3.18ac8 */#define smp_num_cpus 2#endif#if 0#undef KSYMS_FILENAME#define KSYMS_FILENAME  "/home/albert/ps/45621/ksyms-2.3.18ac8-NOMODVERS"#define SYSMAP_FILENAME "/home/albert/ps/45621/System.map-2.3.18ac8-NOMODVERS"#define linux_version_code 131858 /* 2.3.18ac8 */#define smp_num_cpus 2#endif/* These are the symbol types, with relative popularity: *     ? w  machine type junk for Alpha -- odd syntax *     ? S  not for i386 *     4 W  not for i386 *    60 R *   100 A *   125 r *   363 s  not for i386 *   858 B *   905 g  generated by modutils? *   929 G  generated by modutils? *  1301 b *  2750 D *  4481 d * 11417 ? * 13666 t * 15442 T * * For i386, that is: "RArBbDd?tT" */#define SYMBOL_TYPE_CHARS "Tt?dDbBrARGgsWS"/* * '?' is a symbol type * '.' is part of a name (versioning?) * "\t[]" are for the module name in /proc/ksyms */#define LEGAL_SYSMAP_CHARS "0123456789_ ?.\n\t[]" \                     "abcdefghijklmnopqrstuvwxyz" \                     "ABCDEFGHIJKLMNOPQRSTUVWXYZ"/* System.map lines look like: * hex num, space, one of SYMBOL_TYPE_CHARS, space, LEGAL_SYSMAP_CHARS, \n * * Alpha systems can start with a few lines that have the address replaced * by space padding and a 'w' for the type. For those lines, the last space * is followed by something like: mikasa_primo_mv p2k_mv sable_gamma_mv * (just one of those, always with a "_mv", then the newline) * * The /proc/ksyms lines are like System.map lines w/o the symbol type char. * When odd features are used, the name part contains: * "(.*)_R(smp_|smp2gig_|2gig_)?[0-9a-fA-F]{8,}" * It is likely that more crap will be added... */typedef struct symb {  unsigned KLONG addr;  const char *name;} symb;/* These mostly rely on POSIX to make them zero. */static symb hashtable[256];static char       *sysmap_data;static unsigned    sysmap_room;static symb       *sysmap_index;static unsigned    sysmap_count;static char       *ksyms_data;static unsigned    ksyms_room     = 4096;static symb       *ksyms_index;static unsigned    ksyms_count;static unsigned    idx_room;/*********************************//* Kill this:  _R(smp_?|smp2gig_?|2gig_?)?[0-9a-f]{8,}$ * We kill:    (_R[^A-Z]*[0-9a-f]{8,})+$ * * The loop should almost never be taken, but it has to be there. * It gets rid of anything that _looks_ like a version code, even * if a real version code has already been found. This is because * the inability to perfectly recognize a version code may lead to * symbol mangling, which in turn leads to mismatches between the * /proc/ksyms and System.map data files. */#if 0static char *chop_version(char *arg){  char *cp;  cp = strchr(arg,'\t');  if(cp) *cp = '\0';  /* kill trailing module name first */  for(;;){    char *p;    int len = 0;    cp = strrchr(arg, 'R');    if(!cp || cp<=arg+1 || cp[-1]!='_') break;    for(p=cp; *++p; ){      switch(*p){      default:        goto out;      case '0' ... '9':      case 'a' ... 'f':        len++;        continue;      case 'g' ... 'z':      case '_':        len=0;        continue;      }    }    if(len<8) break;    cp[-1] = '\0';  }out:  if(*arg=='G'){    int len = strlen(arg);    while( len>8 && !memcmp(arg,"GPLONLY_",8) ){      arg += 8;      len -= 8;    }  }  return arg;}#endifstatic char *chop_version(char *arg){  char *cp;  cp = strchr(arg,'\t');  if(cp) *cp = '\0';  /* kill trailing module name first */  for(;;){    int len;    cp = strrchr(arg, 'R');    if(!cp || cp<=arg+1 || cp[-1]!='_') break;    len=strlen(cp);    if(len<9) break;    if(strpbrk(cp+1,"ABCDEFGHIJKLMNOPQRSTUVWXYZ")) break;    if(strspn(cp+len-8,"0123456789abcdef")!=8) break;    cp[-1] = '\0';  }  if(*arg=='G'){    int len = strlen(arg);    while( len>8 && !memcmp(arg,"GPLONLY_",8) ){      arg += 8;      len -= 8;    }  }  return arg;}/***********************************/static const symb *search(unsigned KLONG address, symb *idx, unsigned count){  unsigned left;  unsigned mid;  unsigned right;  if(!idx) return NULL;   /* maybe not allocated */  if(address < idx[0].addr) return NULL;  if(address >= idx[count-1].addr) return idx+count-1;  left  = 0;  right = count-1;  for(;;){    mid = (left + right) / 2;    if(address >= idx[mid].addr) left  = mid;    if(address <= idx[mid].addr) right = mid;    if(right-left <= 1) break;  }  if(address == idx[right].addr) return idx+right;  return idx+left;}/*********************************//* allocate if needed, read, and return buffer size */static void read_file(const char *restrict filename, char **bufp, unsigned *restrict roomp) {  int fd = 0;  ssize_t done;  char *buf = *bufp;  ssize_t total = 0;  unsigned room = *roomp;  if(!room) goto hell;     /* failed before */  if(!buf) buf = malloc(room);  if(!buf) goto hell;open_again:  fd = open(filename, O_RDONLY|O_NOCTTY|O_NONBLOCK);  if(fd<0){    switch(errno){    case EINTR:  goto open_again;    default:     _exit(101);    case EACCES:   /* somebody screwing around? */      /* FIXME: set a flag to disable symbol lookup? */    case ENOENT:;  /* no module support */    }    goto hell;  }  for(;;){    done = read(fd, buf+total, room-total-1);    if(done==0) break;  /* nothing left */    if(done==-1){      if(errno==EINTR) continue;  /* try again */      perror("");      goto hell;    }    if(done==(ssize_t)room-total-1){      char *tmp;      total += done;      /* more to go, but no room in buffer */      room *= 2;      tmp = realloc(buf, room);      if(!tmp) goto hell;      buf = tmp;      continue;    }    if(done>0 && done<(ssize_t)room-total-1){      total += done;       continue;   /* OK, we read some. Go do more. */    }    fprintf(stderr,"%ld can't happen\n", (long)done);    /* FIXME: memory leak */    _exit(42);  }  buf[total] = '\0';   // parse_ksyms() expects NUL-terminated file  *bufp = buf;  *roomp = room;  close(fd);  return;hell:  if(buf) free(buf);  *bufp = NULL;  *roomp = 0;   /* this function will never work again */  total = 0;  if(fd>0) close(fd);  return;}/*********************************/static int parse_ksyms(void) {  char *endp;  if(!ksyms_room || !ksyms_data) goto quiet_goodbye;  endp = ksyms_data;  ksyms_count = 0;  if(idx_room) goto bypass;  /* some space already allocated */  idx_room = 512;  for(;;){    void *vp;    idx_room *= 2;    vp = realloc(ksyms_index, sizeof(symb)*idx_room);    if(!vp) goto bad_alloc;    ksyms_index = vp;bypass:    for(;;){      char *saved;      if(!*endp) return 1;      saved = endp;      ksyms_index[ksyms_count].addr = STRTOUKL(endp, &endp, 16);      if(endp==saved || *endp != ' ') goto bad_parse;      endp++;      saved = endp;      endp = strchr(endp,'\n');      if(!endp) goto bad_parse;   /* no newline */      *endp = '\0';      ksyms_index[ksyms_count].name = chop_version(saved);      ++endp;      if(++ksyms_count >= idx_room) break;  /* need more space */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费不卡电影| 91视频国产观看| www.日本不卡| 欧美老女人第四色| 欧美国产一区在线| 国产精品理伦片| 男女视频一区二区| 美女脱光内衣内裤视频久久网站| 国产成都精品91一区二区三| 欧美视频一区二区三区四区| 久久综合一区二区| 一区二区在线观看av| 国产精品一区三区| 91麻豆精品91久久久久久清纯| 亚洲欧美日韩国产中文在线| 国内不卡的二区三区中文字幕 | 欧美精品一区二区在线观看| 亚洲视频一区二区在线| 国产 日韩 欧美大片| 日韩一级精品视频在线观看| 国产精品久久久久久久久免费桃花| 日本成人在线不卡视频| 在线精品亚洲一区二区不卡| 亚洲欧美另类图片小说| 国产精品一区二区在线看| 欧美xxxxx裸体时装秀| 亚洲成人三级小说| 欧美日韩一区二区三区高清| 日韩伦理av电影| 北岛玲一区二区三区四区| 精品乱人伦一区二区三区| 性做久久久久久| 69精品人人人人| 欧美最猛黑人xxxxx猛交| 国产精品一区二区在线播放 | 亚洲日本欧美天堂| 美国av一区二区| 欧美日韩精品欧美日韩精品一 | 成人午夜激情影院| 久久青草欧美一区二区三区| 丰满岳乱妇一区二区三区| 91国产成人在线| 国产精品视频一二三| 波多野结衣亚洲| 国产亚洲欧美色| 成人性生交大合| 国产无一区二区| 99精品视频中文字幕| 国产精品毛片大码女人| 91久久久免费一区二区| 成人免费在线观看入口| 成人av资源下载| 亚洲国产成人va在线观看天堂| 91在线你懂得| 久久无码av三级| 国产精品系列在线观看| 中文字幕欧美三区| 色激情天天射综合网| 视频一区在线视频| 精品日韩av一区二区| caoporn国产一区二区| 国产精品美女视频| 欧美日韩久久久一区| 日本午夜一本久久久综合| 久久久精品综合| 91麻豆国产在线观看| 亚洲国产成人高清精品| 精品卡一卡二卡三卡四在线| 韩国女主播一区| 国产精品美女一区二区在线观看| 色婷婷综合五月| 激情小说亚洲一区| 国产精品美女久久久久久 | 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产乱国产乱300精品| 一区二区视频在线| 91精品国产欧美一区二区| 波多野结衣的一区二区三区| 亚洲自拍偷拍九九九| 久久综合九色综合97婷婷女人 | 五月天激情综合网| 精品欧美乱码久久久久久1区2区| 91亚洲大成网污www| 免费精品视频在线| 亚洲国产中文字幕| 欧美国产在线观看| 精品va天堂亚洲国产| 91香蕉视频mp4| 国产精品一区二区无线| 亚洲国产三级在线| 国产精品欧美一区喷水| 91精品国产aⅴ一区二区| 97久久精品人人做人人爽| 日韩不卡免费视频| 亚洲一区二区三区四区不卡| www成人在线观看| 欧美一区二区在线不卡| 99久久精品国产导航| 国产成人av资源| 免费成人深夜小野草| 亚洲国产综合色| 国产精品久久精品日日| 久久美女高清视频| 91.xcao| 91免费在线播放| 国产成人小视频| 国产高清不卡一区二区| 麻豆91免费看| 美日韩黄色大片| 日韩影院免费视频| 五月天网站亚洲| 亚洲一区在线视频| 欧美国产精品一区| 久久久久亚洲综合| 亚洲精品一区二区三区99| 在线不卡的av| 欧美精品三级日韩久久| 在线视频中文字幕一区二区| 大陆成人av片| 色香蕉成人二区免费| 波多野结衣的一区二区三区| 91玉足脚交白嫩脚丫在线播放| 国产成人亚洲综合色影视| 成人av高清在线| 波多野结衣亚洲| 欧洲国内综合视频| 在线欧美一区二区| 欧美伦理影视网| 欧美日韩免费电影| 91精品国产品国语在线不卡| 69av一区二区三区| 精品少妇一区二区三区 | 欧美日本视频在线| 欧美日韩国产在线观看| 欧美成va人片在线观看| 精品国产一区二区在线观看| 中文字幕精品—区二区四季| 欧美国产综合色视频| 亚洲综合区在线| 爽爽淫人综合网网站| 国产老女人精品毛片久久| 韩国精品一区二区| 91在线porny国产在线看| 激情综合亚洲精品| 色综合久久六月婷婷中文字幕| 豆国产96在线|亚洲| 97精品电影院| 日韩免费在线观看| 中文字幕久久午夜不卡| 亚洲一区二区三区四区的| 免费在线观看日韩欧美| 岛国精品一区二区| 在线观看不卡视频| 国产欧美一区二区精品忘忧草 | 久久综合网色—综合色88| 国产精品少妇自拍| 亚洲一区二区三区视频在线| 久久精品72免费观看| 国产69精品久久99不卡| 欧美日韩国产成人在线免费| 精品国产在天天线2019| 亚洲在线视频免费观看| 美腿丝袜亚洲一区| 欧美撒尿777hd撒尿| 久久综合成人精品亚洲另类欧美 | 欧美大胆人体bbbb| 亚洲最大的成人av| 久久99日本精品| 欧美日韩国产美| 中文字幕不卡一区| 精品一区二区三区香蕉蜜桃| 国产盗摄精品一区二区三区在线| 欧美三级一区二区| 欧美体内she精高潮| 最新欧美精品一区二区三区| 亚洲一二三专区| 国产二区国产一区在线观看| 99精品视频一区| 久久久综合精品| 蜜桃传媒麻豆第一区在线观看| 99久久99精品久久久久久| 国产视频一区二区在线观看| 亚洲最快最全在线视频| 91蜜桃传媒精品久久久一区二区| 日韩一区二区三区在线视频| 亚洲乱码中文字幕综合| 国产在线视视频有精品| 欧美日韩精品一区二区在线播放| 中文字幕中文乱码欧美一区二区 | 成人毛片视频在线观看| 欧美挠脚心视频网站| 中文字幕在线不卡国产视频| 国产在线麻豆精品观看| 久久综合网色—综合色88| 日韩精品乱码av一区二区| 欧美高清性hdvideosex| 国产精品福利电影一区二区三区四区| 精品无码三级在线观看视频| 精品成人一区二区三区四区| 午夜精品久久久久久久久|