msdos_smap01.c

来自「阿基米德操作系统的源代码」· C语言 代码 · 共 61 行

C
61
字号

/////////////////////////////////////////////////////////////////////
#include "general.h"

#include "hd_info_struct.h"
#include "dir_entry.h"
#include "msdos_dir_entry.h"
#include "d_inode.h"
#include "m_inode.h"
#include "buffer_head.h"
#include "fat_cache.h"
#include "file.h"
#include "hd_request_struct.h"
#include "super_block.h"

#include "common_head.h"
/////////////////////////////////////////////////////////////////////
void msdos_smap0(int dir_firstsector)
{
	if (!dir_firstsector)
	{
		root_dir_flag	= 1;
		current_sector0	= 0;
		current_sector	= 19 + current_sector0;
	}
	else
	{
		root_dir_flag	= 0;
		current_sector0	= dir_firstsector;
		current_sector	= 31 + current_sector0;
	}
	return;
}

int msdos_smap1(void)
{
	int	temp_sector;

	temp_sector	= current_sector;
	if (temp_sector)
	{
		if (root_dir_flag)
		{
			current_sector0++;
			current_sector = 19 + current_sector0;
			if (current_sector0 >= 14)
				current_sector	= 0;
		}
		else
		{
			current_sector0	= fat_access(current_sector0, -1);
			current_sector	= 31 + current_sector0;
			if (current_sector0 <= 0)
				current_sector = 0;
		}
	}

	return temp_sector;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?