home *** CD-ROM | disk | FTP | other *** search
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
- /* |_o_o|\\ Copyright (c) 1987 The Software Distillery. All Rights Reserved */
- /* |. o.| || This program may not be distributed without the permission of */
- /* | . | || the authors: BBS: */
- /* | o | || John Toebes Dave Baker */
- /* | . |// */
- /* ====== */
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
- /* Volume Manipulation */
- /* ActCurentVol ActRenameDisk ActDiskInfo ActInfo */
-
- #include "handler.h"
-
- void ActCurentVol(global, pkt)
- GLOBAL global;
- struct DosPacket *pkt; /* a pointer to the dos packet sent */
- {
- BUG(("ActCurentVol\n"));
- pkt->dp_Res1 = MKBADDR(global->volume);
- }
-
- void ActRenameDisk(global, pkt)
- GLOBAL global;
- struct DosPacket *pkt; /* a pointer to the dos packet sent */
- {
- char *name;
-
- BUG(("ActRenameDisk\n"));
-
- name = (char *)pkt->dp_Arg1;
-
- pkt->dp_Res1 = RenameDisk(global, name);
- }
-
- void ActDiskInfo(global, pkt)
- GLOBAL global;
- struct DosPacket *pkt; /* a pointer to the dos packet sent */
- {
- struct InfoData *info;
-
- BUG(("ActDiskInfo\n"));
-
- info = (struct InfoData *)pkt->dp_Arg1;
-
- GetVolInfo(global, info);
-
- pkt->dp_Res1 = DOS_TRUE;
- }
-
- void ActInfo(global, pkt)
- GLOBAL global;
- struct DosPacket *pkt; /* a pointer to the dos packet sent */
- {
- struct FileLock *lock;
- struct InfoData *info;
-
- BUG(("ActInfo\n"));
-
- lock = (struct FileLock *)pkt->dp_Arg1;
- info = (struct InfoData *)pkt->dp_Arg2;
-
- if (lock == NULL ||
- lock->fl_Volume != MKBADDR(global->volume))
- info->id_DiskType = global->diskstatus;
- else
- GetVolInfo(global, info);
-
- pkt->dp_Res1 = DOS_TRUE;
- }
-
- void GetVolInfo(global, info)
- GLOBAL global;
- register struct InfoData *info;
- {
- register struct DirBlock *block;
-
- if (global->volume == NULL)
- {
- info->id_DiskType = global->diskstatus;
- }
- else
- {
- /* get the block associated with the key */
- block = (struct DirBlock*)GetBlock(global,global->Root);
-
- if (block == NULL)
- info->id_DiskType = global->diskstatus;
-
- else
- {
- /* Now copy over what they wanted */
- info->id_NumSoftErrors = 0; /* what a lie... */
- info->id_UnitNumber = global->unitnum;
- info->id_DiskState = global->diskstate;
- info->id_NumBlocks = ((global->dskenv.de_numblks)-
- (global->dskenv.de_reservedblks));
- info->id_NumBlocksUsed = CountBlocks(global);
- info->id_DiskType = global->volume->dl_DiskType;
- info->id_VolumeNode = MKBADDR(global->volume);
- info->id_InUse = 0;
- }
- }
- }
-