Category : Recently Uploaded Files
Archive   : EXT2TOOL.ZIP
Filename : LDISK.C
* ldisk.c - Routines for handling logical disks
*
* Copyright (C) 1995 Claus Tondering, [email protected]
* This file may be redistributed under the terms of the GNU Public License.
***************************************************************************/
#include
#include
#include
#include "e2err.h"
#include "part.h"
#include "diskio.h"
#include "ldisk.h"
#include "ext2_fs.h"
ino_t cwdino;
/****************************************************************************
* nametodisk() converts a disk identification in the E2CWD environment to a
* BIOS disk number and an offset and a length (both in blocks of 512 bytes).
*
* Returns an error code
****************************************************************************/
int
nametodisk(int *disk, long *offset, long *length)
{
int err, fstype, subdisk;
struct part_desc pl[16];
char env[80], *envp, *pos1, *pos2, *cp;
/* Decode E2CWD environment */
envp=getenv("E2CWD");
if (!envp)
return E2E_NOCWD;
strcpy(env,envp); /* We are going to modify it, so we make a copy */
pos1=strchr(env,':');
if (!pos1)
return E2E_BADCWD;
pos2=strchr(pos1+1,':');
*pos1 = 0;
pos1++;
for (cp=env; *cp; cp++)
if (!isdigit(*cp))
return E2E_BADCWD;
*disk = atoi(env);
if (pos2) {
*pos2 = 0;
pos2++;
}
for (cp=pos1; *cp; cp++)
if (!isdigit(*cp))
return E2E_BADCWD;
subdisk = atoi(pos1)-1;
if (pos2) {
for (cp=pos2; *cp; cp++)
if (!isdigit(*cp))
return E2E_BADCWD;
cwdino = atoi(pos2);
}
else
cwdino = EXT2_ROOT_INO;
/* Check that disk contains an ext2 file system */
if (!(*disk & 0x80)) {
/* Floppy disk */
*offset = 0;
*length = 1440*2; /* TBD */
fstype=getfstype(*disk, 0, 0);
if (fstype<0)
return -fstype;
if (fstype!=EXT2FS)
return E2E_BADFS;
return 0;
}
err=get_part(*disk, pl);
if (err)
return err;
if (pl[subdisk].is_extended)
return E2E_BADFS;
fstype=getfstype(*disk, pl[subdisk].parttype, pl[subdisk].start);
if (fstype<0)
return -fstype;
if (fstype!=EXT2FS)
return E2E_BADFS;
*offset = pl[subdisk].start;
*length = pl[subdisk].length;
return 0;
}
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/