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

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

?? kernel.c.texi

?? grub4dos-0.4.4-2008- 08-src.zip
?? TEXI
字號:
/* @r{kernel.c - the C part of the kernel} *//* @r{Copyright (C) 1999  Free Software Foundation, Inc.      This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.      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 General Public License for more details.      You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.} */#include <multiboot.h>/* @r{Macros.} *//* @r{Check if the bit BIT in FLAGS is set.} */#define CHECK_FLAG(flags,bit)   ((flags) & (1 << (bit)))/* @r{Some screen stuff.} *//* @r{The number of columns.} */#define COLUMNS                 80/* @r{The number of lines.} */#define LINES                   24/* @r{The attribute of an character.} */#define ATTRIBUTE               7/* @r{The video memory address.} */#define VIDEO                   0xB8000/* @r{Variables.} *//* @r{Save the X position.} */static int xpos;/* @r{Save the Y position.} */static int ypos;/* @r{Point to the video memory.} */static volatile unsigned char *video;/* @r{Forward declarations.} */void cmain (unsigned long magic, unsigned long addr);static void cls (void);static void itoa (char *buf, int base, int d);static void putchar (int c);void printf (const char *format, ...);/* @r{Check if MAGIC is valid and print the Multiboot information structure   pointed by ADDR.} */voidcmain (unsigned long magic, unsigned long addr)@{  multiboot_info_t *mbi;    /* @r{Clear the screen.} */  cls ();  /* @r{Am I booted by a Multiboot-compliant boot loader?} */  if (magic != MULTIBOOT_BOOTLOADER_MAGIC)    @{      printf ("Invalid magic number: 0x%x\n", (unsigned) magic);      return;    @}  /* @r{Set MBI to the address of the Multiboot information structure.} */  mbi = (multiboot_info_t *) addr;  /* @r{Print out the flags.} */  printf ("flags = 0x%x\n", (unsigned) mbi->flags);  /* @r{Are mem_* valid?} */  if (CHECK_FLAG (mbi->flags, 0))    printf ("mem_lower = %uKB, mem_upper = %uKB\n",            (unsigned) mbi->mem_lower, (unsigned) mbi->mem_upper);  /* @r{Is boot_device valid?} */  if (CHECK_FLAG (mbi->flags, 1))    printf ("boot_device = 0x%x\n", (unsigned) mbi->boot_device);    /* @r{Is the command line passed?} */  if (CHECK_FLAG (mbi->flags, 2))    printf ("cmdline = %s\n", (char *) mbi->cmdline);  /* @r{Are mods_* valid?} */  if (CHECK_FLAG (mbi->flags, 3))    @{      module_t *mod;      int i;            printf ("mods_count = %d, mods_addr = 0x%x\n",              (int) mbi->mods_count, (int) mbi->mods_addr);      for (i = 0, mod = (module_t *) mbi->mods_addr;           i < mbi->mods_count;           i++, mod++)        printf (" mod_start = 0x%x, mod_end = 0x%x, string = %s\n",                (unsigned) mod->mod_start,                (unsigned) mod->mod_end,                (char *) mod->string);    @}  /* @r{Bits 4 and 5 are mutually exclusive!} */  if (CHECK_FLAG (mbi->flags, 4) && CHECK_FLAG (mbi->flags, 5))    @{      printf ("Both bits 4 and 5 are set.\n");      return;    @}  /* @r{Is the symbol table of a.out valid?} */  if (CHECK_FLAG (mbi->flags, 4))    @{      aout_symbol_table_t *aout_sym = &(mbi->u.aout_sym);            printf ("aout_symbol_table: tabsize = 0x%0x, "              "strsize = 0x%x, addr = 0x%x\n",              (unsigned) aout_sym->tabsize,              (unsigned) aout_sym->strsize,              (unsigned) aout_sym->addr);    @}  /* @r{Is the section header table of ELF valid?} */  if (CHECK_FLAG (mbi->flags, 5))    @{      elf_section_header_table_t *elf_sec = &(mbi->u.elf_sec);      printf ("elf_sec: num = %u, size = 0x%x,"              " addr = 0x%x, shndx = 0x%x\n",              (unsigned) elf_sec->num, (unsigned) elf_sec->size,              (unsigned) elf_sec->addr, (unsigned) elf_sec->shndx);    @}  /* @r{Are mmap_* valid?} */  if (CHECK_FLAG (mbi->flags, 6))    @{      memory_map_t *mmap;            printf ("mmap_addr = 0x%x, mmap_length = 0x%x\n",              (unsigned) mbi->mmap_addr, (unsigned) mbi->mmap_length);      for (mmap = (memory_map_t *) mbi->mmap_addr;           (unsigned long) mmap < mbi->mmap_addr + mbi->mmap_length;           mmap = (memory_map_t *) ((unsigned long) mmap                                    + mmap->size + sizeof (mmap->size)))        printf (" size = 0x%x, base_addr = 0x%x%x,"                " length = 0x%x%x, type = 0x%x\n",                (unsigned) mmap->size,                (unsigned) mmap->base_addr_high,                (unsigned) mmap->base_addr_low,                (unsigned) mmap->length_high,                (unsigned) mmap->length_low,                (unsigned) mmap->type);    @}@}    /* @r{Clear the screen and initialize VIDEO, XPOS and YPOS.} */static voidcls (void)@{  int i;  video = (unsigned char *) VIDEO;    for (i = 0; i < COLUMNS * LINES * 2; i++)    *(video + i) = 0;  xpos = 0;  ypos = 0;@}/* @r{Convert the integer D to a string and save the string in BUF. If   BASE is equal to 'd', interpret that D is decimal, and if BASE is   equal to 'x', interpret that D is hexadecimal.} */static voiditoa (char *buf, int base, int d)@{  char *p = buf;  char *p1, *p2;  unsigned long ud = d;  int divisor = 10;    /* @r{If %d is specified and D is minus, put `-' in the head.} */  if (base == 'd' && d < 0)    @{      *p++ = '-';      buf++;      ud = -d;    @}  else if (base == 'x')    divisor = 16;  /* @r{Divide UD by DIVISOR until UD == 0.} */  do    @{      int remainder = ud % divisor;            *p++ = (remainder < 10) ? remainder + '0' : remainder + 'a' - 10;    @}  while (ud /= divisor);  /* @r{Terminate BUF.} */  *p = 0;    /* @r{Reverse BUF.} */  p1 = buf;  p2 = p - 1;  while (p1 < p2)    @{      char tmp = *p1;      *p1 = *p2;      *p2 = tmp;      p1++;      p2--;    @}@}/* @r{Put the character C on the screen.} */static voidputchar (int c)@{  if (c == '\n' || c == '\r')    @{    newline:      xpos = 0;      ypos++;      if (ypos >= LINES)        ypos = 0;      return;    @}  *(video + (xpos + ypos * COLUMNS) * 2) = c & 0xFF;  *(video + (xpos + ypos * COLUMNS) * 2 + 1) = ATTRIBUTE;  xpos++;  if (xpos >= COLUMNS)    goto newline;@}/* @r{Format a string and print it on the screen, just like the libc   function printf.} */voidprintf (const char *format, ...)@{  char **arg = (char **) &format;  int c;  char buf[20];  arg++;    while ((c = *format++) != 0)    @{      if (c != '%')        putchar (c);      else        @{          char *p;                    c = *format++;          switch (c)            @{            case 'd':            case 'u':            case 'x':              itoa (buf, c, *((int *) arg++));              p = buf;              goto string;              break;            case 's':              p = *arg++;              if (! p)                p = "(null)";            string:              while (*p)                putchar (*p++);              break;            default:              putchar (*((int *) arg++));              break;            @}        @}    @}@}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人av网| 欧美精品久久久久久久久老牛影院| 久久一夜天堂av一区二区三区| 欧美精品一区二区蜜臀亚洲| 一个色综合av| 91蝌蚪国产九色| 久久久久国产免费免费| 奇米影视在线99精品| 免费成人小视频| 欧美三级在线播放| 一区二区三区四区高清精品免费观看 | 91精品国产综合久久香蕉麻豆| 9191久久久久久久久久久| 国产精品欧美一级免费| 中文一区在线播放| 亚洲另类春色校园小说| 国产精品久久久久久户外露出| 精品国产伦一区二区三区免费| 国产区在线观看成人精品 | 亚洲品质自拍视频网站| 欧美人xxxx| 国产日韩欧美激情| 久久久久久久久久美女| 亚洲精品你懂的| 国产精品亚洲一区二区三区妖精| 国产在线不卡视频| 91在线码无精品| 久久综合色综合88| 亚洲素人一区二区| 国产麻豆精品一区二区| 欧美吻胸吃奶大尺度电影| 日韩一级二级三级精品视频| 午夜影院久久久| 欧美日韩国产不卡| 精油按摩中文字幕久久| 久久午夜色播影院免费高清| 精东粉嫩av免费一区二区三区 | 亚洲欧美日韩国产综合在线| 国产91色综合久久免费分享| 中文字幕一区二区在线观看| av电影天堂一区二区在线| 亚洲曰韩产成在线| 6080日韩午夜伦伦午夜伦| 国产一区二区三区最好精华液| 中文字幕欧美日韩一区| 91久久线看在观草草青青| 国产精品一二三在| 亚洲成人免费观看| 在线精品视频免费观看| 国产自产2019最新不卡| 国模一区二区三区白浆| 国产精品羞羞答答xxdd| 国产老肥熟一区二区三区| 国产精品综合一区二区三区| 国产一区二区三区免费看| 国产精品自拍网站| 欧美国产精品中文字幕| 欧美伦理电影网| 91蜜桃网址入口| 床上的激情91.| 99久久免费视频.com| 99免费精品在线观看| 99在线热播精品免费| 色综合久久综合| 91玉足脚交白嫩脚丫在线播放| 国产成人精品一区二区三区网站观看| 韩国av一区二区三区四区 | 亚洲欧洲韩国日本视频| 久久久久久黄色| 国产女人18毛片水真多成人如厕 | 亚洲视频在线一区二区| 一级做a爱片久久| 午夜精品免费在线| 精品亚洲国产成人av制服丝袜| 91亚洲男人天堂| 国产日韩欧美一区二区三区综合| 欧美偷拍一区二区| 国产精品精品国产色婷婷| 国产精品123| 亚洲国产成人一区二区三区| 韩国欧美国产1区| 日韩精品一区在线观看| 日韩av成人高清| 2023国产精品自拍| 国产主播一区二区| 国产日韩欧美不卡在线| 国产91精品精华液一区二区三区| 久久亚洲精品小早川怜子| 麻豆国产精品官网| 国产人久久人人人人爽| zzijzzij亚洲日本少妇熟睡| 亚洲精品亚洲人成人网在线播放| 91国偷自产一区二区三区成为亚洲经典 | 国内精品自线一区二区三区视频| 欧美精品v日韩精品v韩国精品v| 日韩影院精彩在线| 久久综合久久99| 91啪九色porn原创视频在线观看| 日韩美女视频在线| 天堂影院一区二区| 日韩一区二区在线观看| 免费观看在线综合色| 日韩美女一区二区三区| 国产老女人精品毛片久久| 国产日韩精品一区二区三区| 99久久er热在这里只有精品66| 亚洲狠狠丁香婷婷综合久久久| 91丨porny丨户外露出| 亚洲妇女屁股眼交7| 在线播放中文字幕一区| 国产一区美女在线| 亚洲综合成人在线视频| 日韩欧美专区在线| 色婷婷综合久久久中文一区二区| 一区二区三区波多野结衣在线观看| 在线观看成人免费视频| 久久国产精品99久久人人澡| 欧美激情综合五月色丁香| 欧美美女一区二区| 精品久久久久久久人人人人传媒| 亚洲视频一区在线观看| 久久久久久久性| 日韩欧美国产wwwww| 欧美一卡二卡三卡四卡| 欧美亚一区二区| 欧美精品亚洲二区| 欧美性生活大片视频| 色屁屁一区二区| 五月激情综合色| 亚洲精品视频一区| 国产精品乱码一区二三区小蝌蚪| 国产欧美日韩另类一区| 精品美女被调教视频大全网站| 国产乱子伦视频一区二区三区 | 在线免费精品视频| 麻豆一区二区99久久久久| 久久精品一区二区三区四区| 色综合色综合色综合 | 国产亚洲精久久久久久| 欧美日韩国产小视频在线观看| 精品一区二区久久久| 午夜在线电影亚洲一区| 中文字幕佐山爱一区二区免费| 在线不卡免费欧美| 欧美性色黄大片手机版| 一道本成人在线| www.亚洲精品| 顶级嫩模精品视频在线看| 久久99精品国产.久久久久| 秋霞午夜av一区二区三区| 一区二区三区在线不卡| 亚洲高清一区二区三区| 亚洲国产视频在线| 亚洲国产一区二区视频| 亚洲国产精品一区二区久久| 亚洲va欧美va人人爽| 亚洲成人第一页| 久久疯狂做爰流白浆xx| 久久91精品久久久久久秒播 | 精品久久久久久久久久久久久久久 | av在线不卡电影| 韩国欧美国产1区| 国产99久久精品| 91福利资源站| 精品国产污污免费网站入口| 欧美国产成人在线| 亚洲综合在线免费观看| 午夜精品久久久久久久| 奇米色777欧美一区二区| 国产乱子轮精品视频| 成人精品鲁一区一区二区| 91久久久免费一区二区| 日韩精品一区二| 一区二区三区免费网站| 黄一区二区三区| 精品日韩99亚洲| 日韩和的一区二区| 成人av先锋影音| 久久久不卡影院| 另类综合日韩欧美亚洲| 欧美在线三级电影| 中文av一区特黄| 成人手机电影网| 久久久精品日韩欧美| 国模大尺度一区二区三区| 欧美片网站yy| 午夜精品福利一区二区三区av| 高清视频一区二区| 国产午夜精品美女毛片视频| 精品一区二区三区欧美| 日韩精品一区二区在线观看| 日本成人在线网站| 日韩欧美中文字幕一区| 日韩精品一卡二卡三卡四卡无卡| 欧美日本乱大交xxxxx| 日韩极品在线观看| 欧美疯狂做受xxxx富婆| 韩国欧美一区二区| 国产精品网站在线播放| 欧美亚一区二区|