2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
5 #include <proto/exec.h>
7 #include "dos_intern.h"
9 /*****************************************************************************
12 #include <proto/dos.h>
14 AROS_LH2(LONG
, Inhibit
,
17 AROS_LHA(CONST_STRPTR
, name
, D1
),
18 AROS_LHA(LONG
, onoff
, D2
),
21 struct DosLibrary
*, DOSBase
, 121, Dos
)
25 Stop a filesystem from being used.
29 name -- Name of the device to inhibit (including a ':')
30 onoff -- Specify whether to inhinit (DOSTRUE) or uninhibit (DOSFALSE)
35 A boolean telling whether the action was carried out.
39 After uninhibiting a device anything might have happened like the disk
40 in the drive was removed.
50 *****************************************************************************/
54 struct IOFileSys iofs
;
58 InitIOFS(&iofs
, FSA_INHIBIT
, DOSBase
);
59 iofs
.io_Union
.io_INHIBIT
.io_Inhibit
= onoff
== DOSTRUE
? TRUE
: FALSE
;
62 if ((dvp
= GetDeviceProc(name
, NULL
)) == NULL
)
65 /* we're only interested in real devices */
66 if (dvp
->dvp_DevNode
->dol_Type
!= DLT_DEVICE
) {
68 SetIoErr(ERROR_DEVICE_NOT_MOUNTED
);
72 err
= DoIOFS(&iofs
, dvp
, NULL
, DOSBase
);
76 return err
== 0 ? DOSTRUE
: DOSFALSE
;