• 大小: 31.95MB
    文件类型: .rar
    金币: 2
    下载: 2 次
    发布日期: 2023-07-28
  • 语言: 其他
  • 标签: 操作系统  

资源简介

ORANGE’S:一个操作系统的实现(高清晰版)附带光盘文件

资源截图

代码片段和文件信息

/*************************************************************************//**
 *****************************************************************************
 * @file   disklog.c
 * @brief  
 * @author Forrest Y. Yu
 * @date   Thu Nov 20 16:22:45 2008
 *****************************************************************************
 *****************************************************************************/

#include “type.h“
#include “config.h“
#include “stdio.h“
#include “const.h“
#include “protect.h“
#include “string.h“
#include “fs.h“
#include “proc.h“
#include “tty.h“
#include “console.h“
#include “global.h“
#include “keyboard.h“
#include “proto.h“
#include “hd.h“
#include “fs.h“

#define DISKLOG_RD_SECT(devsect_nr) rw_sector(DEV_READ \
       dev \
       (sect_nr) * SECTOR_SIZE \
       SECTOR_SIZE /* read one sector */ \
       getpid() \
       logdiskbuf);
#define DISKLOG_WR_SECT(devsect_nr) rw_sector(DEV_WRITE \
       dev \
       (sect_nr) * SECTOR_SIZE \
       SECTOR_SIZE /* write one sector */ \
       getpid() \
       logdiskbuf);


/* /\***************************************************************************** */
/*  *                                do_disklog */
/*  *****************************************************************************\/ */
/* /\** */
/*  * Perform syslog() system call . */
/*  * */
/*  * @return  */
/*  *****************************************************************************\/ */
/* PUBLIC int do_disklog() */
/* { */
/*  char buf[STR_DEFAULT_LEN]; */

/*  /\* get parameters from the message *\/ */
/*  int str_len = fs_msg.CNT; /\* length of filename *\/ */
/*  int src = fs_msg.source; /\* caller proc nr. *\/ */
/*  assert(str_len < STR_DEFAULT_LEN); */
/*  phys_copy((void*)va2la(TASK_FS buf)    /\* to   *\/ */
/*    (void*)va2la(src fs_msg.BUF) /\* from *\/ */
/*    str_len); */
/*  buf[str_len] = 0; /\* terminate the string *\/ */

/*  return disklog(buf); */
/* } */

/*****************************************************************************
 *                                disklog
 *****************************************************************************/
/**
 *  Write log string directly into disk.
 * 
 * @param p  Ptr to the MESSAGE.
 *****************************************************************************/
PUBLIC int disklog(char * logstr)
{
int device = root_inode->i_dev;
struct super_block * sb = get_super_block(device);
int nr_log_blk0_nr = sb->nr_sects - NR_SECTS_FOR_LOG; /* 0x9D41-0x800=0x9541 */

static int pos = 0;
if (!pos) { /* first time invoking this routine */

#ifdef SET_LOG_SECT_SMAP_AT_STARTUP
/*
 * set sector-map so that other files cannot use the log sectors
 */

int bits_per_sect = SECTOR_SIZE * 8; /* 4096 */

int smap_blk0_nr = 1 + 1 + sb->nr_imap_sects; /* 3 */
int sect_nr  = smap_blk0_nr + nr_log_blk0_nr / bits_per_sect; /* 3+9=12 */
int byte_off = (nr_log

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        512  2017-04-10 01:34  Oranges\file\boot.bin

     文件   28806744  2017-04-11 09:26  Oranges\ORANGE’S:一个操作系统的实现(高清晰版)1.pdf

     文件    1474560  2009-03-30 16:16  Oranges\光盘文件\chapter1\a\a.img

     文件        661  2009-03-30 16:16  Oranges\光盘文件\chapter1\a\bochsrc

     文件        563  2009-03-30 16:16  Oranges\光盘文件\chapter1\a\boot.asm

     文件    1474560  2009-03-30 16:16  Oranges\光盘文件\chapter1\b\a.img

     文件        661  2009-03-30 16:16  Oranges\光盘文件\chapter1\b\bochsrc

     文件        821  2009-03-30 16:16  Oranges\光盘文件\chapter1\b\boot.asm

     文件      81567  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\80m.img.gz

     文件    1474560  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\a.img

     文件       1000  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\bochsrc

     文件      10018  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\boot\boot.asm

     文件       2222  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\boot\include\fat12hdr.inc

     文件       1552  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\boot\include\load.inc

     文件      13873  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\boot\include\pm.inc

     文件      29754  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\boot\loader.asm

     文件      25149  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\fs\disklog.c

     文件       6075  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\fs\link.c

     文件      16086  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\fs\main.c

     文件       3923  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\fs\misc.c

     文件      11610  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\fs\open.c

     文件       3777  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\fs\read_write.c

     文件       2897  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\include\stdio.h

     文件        979  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\include\string.h

     文件        931  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\include\sys\config.h

     文件        913  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\include\sys\console.h

     文件       8289  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\include\sys\const.h

     文件       4370  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\include\sys\fs.h

     文件       1725  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\include\sys\global.h

     文件      11657  2009-03-30 16:17  Oranges\光盘文件\chapter10\a\include\sys\hd.h

............此处省略2752个文件信息

评论

共有 条评论