mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-05-01 10:26:12 +03:00
License statement text corrected; compiler warnings caused by Bison 2.41 disabled for MSVC; a few other compiler warnings on 54-bit Windows eliminated by appropriate type cast Wrong license statements corrected in several files. Copyright and license statements added in XSD and GLSL files. Copyright year updated in some files. Obsolete documentation files removed from DrawResources.
531 lines
14 KiB
C++
531 lines
14 KiB
C++
// Copyright (c) 1998-1999 Matra Datavision
|
|
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
|
//
|
|
// This file is part of Open CASCADE Technology software library.
|
|
//
|
|
// This library is free software; you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License version 2.1 as published
|
|
// by the Free Software Foundation, with special exception defined in the file
|
|
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
// distribution for complete text of the license and disclaimer of any warranty.
|
|
//
|
|
// Alternatively, this file may be used under the terms of Open CASCADE
|
|
// commercial license or contractual agreement.
|
|
|
|
#ifndef WNT
|
|
|
|
#include <OSD_WhoAmI.hxx>
|
|
#include <OSD_Protection.ixx>
|
|
|
|
#include <sys/stat.h>
|
|
// Ci-joint le tableau de gestion des protection (Ajout et Retrait). Les
|
|
// tableaux sont des tableaux a deux dimensions, indices par l'enumeration
|
|
// OSD_SingleProtection. Il y a en tout 16 possibilites dans l enumeration.
|
|
// Voir JPT pour tous renseignements....
|
|
static OSD_SingleProtection TabProtAdd [16][16] =
|
|
{
|
|
{OSD_None,OSD_R,OSD_W,OSD_RW,OSD_X,OSD_RX,OSD_WX,OSD_RWX,OSD_D,OSD_RD,OSD_WD,OSD_RWD,OSD_XD,OSD_RXD,OSD_WXD,OSD_RWXD},
|
|
|
|
{OSD_R,OSD_R,OSD_RW,OSD_RW,OSD_RX,OSD_RX,OSD_RWX,OSD_RWX,OSD_RD,OSD_RD,OSD_RWD,OSD_RWD,OSD_RXD,OSD_RXD,OSD_RWXD,OSD_RWXD},
|
|
|
|
{OSD_W,OSD_RW,OSD_W,OSD_RW,OSD_WX,OSD_RWX,OSD_WX,OSD_RWX,OSD_WD,OSD_RWD,OSD_WD,OSD_RWD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD},
|
|
|
|
{OSD_RW,OSD_RW,OSD_RW,OSD_RW,OSD_RWX,OSD_RWX,OSD_RWX,OSD_RWX,OSD_RWD,OSD_RWD,OSD_RWD,OSD_RWD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD},
|
|
|
|
{OSD_X,OSD_RX,OSD_WX,OSD_RWX,OSD_X,OSD_RX,OSD_WX,OSD_RWX,OSD_XD,OSD_RXD,OSD_WXD,OSD_RWXD,OSD_XD,OSD_RXD,OSD_WXD,OSD_RWXD},
|
|
|
|
{OSD_RX,OSD_RX,OSD_RWX,OSD_RWX,OSD_RX,OSD_RX,OSD_RWX,OSD_RWX,OSD_RXD,OSD_RXD,OSD_RWXD,OSD_RWXD,OSD_RXD,OSD_RXD,OSD_RWXD,OSD_RWXD},
|
|
|
|
{OSD_WX,OSD_RWX,OSD_RWX,OSD_RWX,OSD_WX,OSD_RWX,OSD_WX,OSD_RWX,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD},
|
|
|
|
{OSD_RWX,OSD_RWX,OSD_RWX,OSD_RWX,OSD_RWX,OSD_RWX,OSD_RWX,OSD_RWX,OSD_RWX,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD},
|
|
|
|
{OSD_D,OSD_RD,OSD_WD,OSD_RWD,OSD_XD,OSD_RXD,OSD_WXD,OSD_RWXD,OSD_D,OSD_RD,OSD_WD,OSD_RWD,OSD_XD,OSD_RXD,OSD_WXD,OSD_RWXD},
|
|
|
|
{OSD_RD,OSD_RD,OSD_RWD,OSD_RWD,OSD_RXD,OSD_RXD,OSD_RWXD,OSD_RWXD,OSD_RD,OSD_RD,OSD_RWD,OSD_RWD,OSD_RXD,OSD_RXD,OSD_RWXD,OSD_RWXD},
|
|
|
|
{OSD_WD,OSD_RWD,OSD_WD,OSD_RWD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD,OSD_WD,OSD_RWD,OSD_WD,OSD_RWD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD},
|
|
|
|
{OSD_RWD,OSD_RWD,OSD_RWD,OSD_RWD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWD,OSD_RWD,OSD_RWD,OSD_RWD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD},
|
|
|
|
{OSD_XD,OSD_RXD,OSD_WXD,OSD_RWXD,OSD_XD,OSD_RXD,OSD_WXD,OSD_RWXD,OSD_XD,OSD_RXD,OSD_WXD,OSD_RWXD,OSD_XD,OSD_RXD,OSD_WXD,OSD_RWXD},
|
|
|
|
{OSD_RXD,OSD_RXD,OSD_RWXD,OSD_RWXD,OSD_RXD,OSD_RXD,OSD_RWXD,OSD_RWXD,OSD_RXD,OSD_RXD,OSD_RWXD,OSD_RWXD,OSD_RXD,OSD_RXD,OSD_RWXD,OSD_RWXD},
|
|
|
|
{OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD,OSD_WXD,OSD_RWXD},
|
|
|
|
{OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD,OSD_RWXD}
|
|
|
|
};
|
|
|
|
// -----------------------
|
|
|
|
static OSD_SingleProtection TabProtSub [16][16] =
|
|
{
|
|
{OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None},
|
|
|
|
{OSD_R,OSD_None,OSD_R,OSD_None,OSD_R,OSD_None,OSD_R,OSD_None,OSD_R,OSD_None,OSD_R,OSD_None,OSD_R,OSD_None,OSD_R,OSD_None},
|
|
|
|
{OSD_W,OSD_W,OSD_None,OSD_None,OSD_W,OSD_W,OSD_None,OSD_None,OSD_W,OSD_W,OSD_None,OSD_None,OSD_W,OSD_W,OSD_None,OSD_None},
|
|
|
|
{OSD_RW,OSD_W,OSD_R,OSD_None,OSD_RW,OSD_W,OSD_R,OSD_None,OSD_RW,OSD_W,OSD_R,OSD_None,OSD_RW,OSD_W,OSD_R,OSD_None},
|
|
|
|
{OSD_X,OSD_X,OSD_X,OSD_None,OSD_None,OSD_None,OSD_None,OSD_X,OSD_X,OSD_X,OSD_X,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None},
|
|
|
|
{OSD_RX,OSD_X,OSD_RX,OSD_X,OSD_R,OSD_None,OSD_R,OSD_None,OSD_RX,OSD_X,OSD_RX,OSD_X,OSD_R,OSD_None,OSD_R,OSD_None},
|
|
|
|
{OSD_WX,OSD_WX,OSD_X,OSD_X,OSD_W,OSD_W,OSD_None,OSD_None,OSD_WX,OSD_WX,OSD_X,OSD_X,OSD_W,OSD_W,OSD_None,OSD_None},
|
|
|
|
{OSD_RWX,OSD_WX,OSD_RX,OSD_X,OSD_RW,OSD_W,OSD_R,OSD_None,OSD_RWX,OSD_WX,OSD_RX,OSD_X,OSD_RW,OSD_W,OSD_R,OSD_None},
|
|
|
|
{OSD_D,OSD_D,OSD_D,OSD_D,OSD_D,OSD_D,OSD_D,OSD_D,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None,OSD_None},
|
|
|
|
{OSD_RD,OSD_D,OSD_RD,OSD_D,OSD_RD,OSD_D,OSD_RD,OSD_D,OSD_R,OSD_None,OSD_R,OSD_None,OSD_R,OSD_None,OSD_R,OSD_None},
|
|
|
|
{OSD_WD,OSD_WD,OSD_D,OSD_D,OSD_WD,OSD_WD,OSD_D,OSD_D,OSD_W,OSD_W,OSD_None,OSD_None,OSD_W,OSD_W,OSD_None,OSD_None},
|
|
|
|
{OSD_RWD,OSD_WD,OSD_RD,OSD_D,OSD_RWD,OSD_WD,OSD_RD,OSD_D,OSD_RW,OSD_W,OSD_R,OSD_None,OSD_RW,OSD_W,OSD_R,OSD_None},
|
|
|
|
{OSD_XD,OSD_XD,OSD_XD,OSD_XD,OSD_D,OSD_D,OSD_D,OSD_D,OSD_X,OSD_X,OSD_X,OSD_X,OSD_None,OSD_None,OSD_None,OSD_None},
|
|
|
|
{OSD_RXD,OSD_XD,OSD_RXD,OSD_XD,OSD_RD,OSD_D,OSD_RD,OSD_D,OSD_RX,OSD_X,OSD_RX,OSD_X,OSD_R,OSD_None,OSD_R,OSD_None},
|
|
|
|
{OSD_WXD,OSD_WXD,OSD_XD,OSD_XD,OSD_WD,OSD_WD,OSD_D,OSD_D,OSD_WX,OSD_WX,OSD_X,OSD_X,OSD_W,OSD_W,OSD_None,OSD_None},
|
|
|
|
{OSD_RWXD,OSD_WXD,OSD_RXD,OSD_XD,OSD_RWD,OSD_WD,OSD_RD,OSD_D,OSD_RWX,OSD_WX,OSD_RX,OSD_X,OSD_RW,OSD_W,OSD_R,OSD_None}
|
|
|
|
};
|
|
//const OSD_WhoAmI Iam = OSD_WProtection;
|
|
|
|
|
|
// Initialize System, Group, World for read only and User for read & write
|
|
|
|
OSD_Protection::OSD_Protection(){
|
|
s = OSD_R;
|
|
u = OSD_RWD;
|
|
g = OSD_R;
|
|
w = OSD_R;
|
|
}
|
|
|
|
OSD_Protection::OSD_Protection(const OSD_SingleProtection System,
|
|
const OSD_SingleProtection User,
|
|
const OSD_SingleProtection Group,
|
|
const OSD_SingleProtection World){
|
|
|
|
s = System;
|
|
u = User;
|
|
g = Group;
|
|
w = World;
|
|
}
|
|
|
|
void OSD_Protection::Values(OSD_SingleProtection& System,
|
|
OSD_SingleProtection& User,
|
|
OSD_SingleProtection& Group,
|
|
OSD_SingleProtection& World){
|
|
System = s;
|
|
User = u;
|
|
Group = g;
|
|
World = w;
|
|
}
|
|
|
|
|
|
void OSD_Protection::SetValues(const OSD_SingleProtection System,
|
|
const OSD_SingleProtection User,
|
|
const OSD_SingleProtection Group,
|
|
const OSD_SingleProtection World){
|
|
|
|
s = System;
|
|
u = User;
|
|
g = Group;
|
|
w = World;
|
|
}
|
|
|
|
|
|
void OSD_Protection::SetSystem (const OSD_SingleProtection priv){
|
|
s = priv;
|
|
}
|
|
|
|
void OSD_Protection::SetUser (const OSD_SingleProtection priv){
|
|
u = priv;
|
|
}
|
|
|
|
void OSD_Protection::SetGroup (const OSD_SingleProtection priv){
|
|
g = priv;
|
|
}
|
|
|
|
void OSD_Protection::SetWorld (const OSD_SingleProtection priv){
|
|
w = priv;
|
|
}
|
|
|
|
|
|
OSD_SingleProtection OSD_Protection::System()const{
|
|
return(s);
|
|
}
|
|
|
|
OSD_SingleProtection OSD_Protection::User()const{
|
|
return(u);
|
|
}
|
|
|
|
OSD_SingleProtection OSD_Protection::Group()const{
|
|
return(g);
|
|
}
|
|
|
|
OSD_SingleProtection OSD_Protection::World()const{
|
|
return(w);
|
|
}
|
|
|
|
|
|
void OSD_Protection::Add(OSD_SingleProtection& aProtection,
|
|
const OSD_SingleProtection aRight){
|
|
aProtection = TabProtAdd[aProtection][aRight];
|
|
}
|
|
|
|
|
|
void OSD_Protection::Sub(OSD_SingleProtection& aProtection,
|
|
const OSD_SingleProtection aRight){
|
|
aProtection = TabProtSub[aProtection][aRight];
|
|
}
|
|
|
|
|
|
/* Get internal UNIX's access rights for user, group and other */
|
|
|
|
Standard_Integer OSD_Protection::Internal()const{
|
|
|
|
Standard_Integer internal_prot = 0;
|
|
|
|
if (u & OSD_R) internal_prot |= S_IRUSR;
|
|
if (u & OSD_W) internal_prot |= S_IWUSR;
|
|
if (u & OSD_D) internal_prot |= S_IWUSR;
|
|
if (u & OSD_X) internal_prot |= S_IXUSR;
|
|
|
|
if (g & OSD_R) internal_prot |= S_IRGRP;
|
|
if (g & OSD_W) internal_prot |= S_IWGRP;
|
|
if (g & OSD_D) internal_prot |= S_IWGRP;
|
|
if (g & OSD_X) internal_prot |= S_IXGRP;
|
|
|
|
if (w & OSD_R) internal_prot |= S_IROTH;
|
|
if (w & OSD_W) internal_prot |= S_IWOTH;
|
|
if (w & OSD_D) internal_prot |= S_IWOTH;
|
|
if (w & OSD_X) internal_prot |= S_IXOTH;
|
|
|
|
if (s & OSD_R) internal_prot |= S_IROTH;
|
|
if (s & OSD_W) internal_prot |= S_IWOTH;
|
|
if (s & OSD_D) internal_prot |= S_IWOTH;
|
|
if (s & OSD_X) internal_prot |= S_IXOTH;
|
|
|
|
return ( internal_prot );
|
|
}
|
|
|
|
|
|
#else
|
|
|
|
//------------------------------------------------------------------------
|
|
//------------------- WNT Sources of OSD_Protection ---------------------
|
|
//------------------------------------------------------------------------
|
|
|
|
#include <OSD_Protection.hxx>
|
|
|
|
#define FLAG_READ 0x00000001
|
|
#define FLAG_WRITE 0x00000002
|
|
#define FLAG_EXECUTE 0x00000004
|
|
#define FLAG_DELETE 0x00000008
|
|
|
|
static Standard_Integer __fastcall _get_mask ( OSD_SingleProtection );
|
|
static OSD_SingleProtection __fastcall _get_prot ( Standard_Integer );
|
|
|
|
OSD_Protection :: OSD_Protection () {
|
|
|
|
s = OSD_RWXD;
|
|
u = OSD_RWXD;
|
|
g = OSD_RX;
|
|
w = OSD_RX;
|
|
|
|
} // end constructor ( 1 )
|
|
|
|
OSD_Protection :: OSD_Protection (
|
|
const OSD_SingleProtection System,
|
|
const OSD_SingleProtection User,
|
|
const OSD_SingleProtection Group,
|
|
const OSD_SingleProtection World
|
|
) {
|
|
|
|
SetValues ( System, User, Group, World );
|
|
|
|
} // end constructor ( 2 )
|
|
|
|
void OSD_Protection :: Values (
|
|
OSD_SingleProtection& System,
|
|
OSD_SingleProtection& User,
|
|
OSD_SingleProtection& Group,
|
|
OSD_SingleProtection& World
|
|
) {
|
|
System = s;
|
|
User = u;
|
|
Group = g;
|
|
World = w;
|
|
|
|
} // end OSD_Protection :: Values
|
|
|
|
void OSD_Protection :: SetValues (
|
|
const OSD_SingleProtection System,
|
|
const OSD_SingleProtection User,
|
|
const OSD_SingleProtection Group,
|
|
const OSD_SingleProtection World
|
|
) {
|
|
|
|
s = System;
|
|
u = User;
|
|
g = Group;
|
|
w = World;
|
|
|
|
} // end OSD_Protection :: SetValues
|
|
|
|
void OSD_Protection :: SetSystem ( const OSD_SingleProtection priv ) {
|
|
|
|
s = priv;
|
|
|
|
} // end OSD_Protection :: SetSystem
|
|
|
|
void OSD_Protection :: SetUser ( const OSD_SingleProtection priv ) {
|
|
|
|
u = priv;
|
|
|
|
} // end OSD_Protection :: SetUser
|
|
|
|
void OSD_Protection :: SetGroup ( const OSD_SingleProtection priv ) {
|
|
|
|
g = priv;
|
|
|
|
} // end OSD_Protection :: SetGroup
|
|
|
|
void OSD_Protection :: SetWorld ( const OSD_SingleProtection priv ) {
|
|
|
|
w = priv;
|
|
|
|
} // end OSD_Protection :: SetWorld
|
|
|
|
OSD_SingleProtection OSD_Protection :: System () const {
|
|
|
|
return s;
|
|
|
|
} // end OSD_Protection :: System
|
|
|
|
OSD_SingleProtection OSD_Protection :: User () const {
|
|
|
|
return u;
|
|
|
|
} // end OSD_Protection :: User
|
|
|
|
OSD_SingleProtection OSD_Protection :: Group () const {
|
|
|
|
return g;
|
|
|
|
} // end OSD_Protection :: Group
|
|
|
|
OSD_SingleProtection OSD_Protection :: World () const {
|
|
|
|
return w;
|
|
|
|
} // end OSD_Protection :: World
|
|
|
|
void OSD_Protection :: Add (
|
|
OSD_SingleProtection& aProt,
|
|
const OSD_SingleProtection aRight
|
|
) {
|
|
|
|
Standard_Integer pMask = 0;
|
|
Standard_Integer rMask = 0;
|
|
Standard_Integer sMask = 0;
|
|
|
|
pMask = _get_mask ( aProt );
|
|
rMask = _get_mask ( aRight );
|
|
|
|
if ( ( rMask & FLAG_READ && !( pMask & FLAG_READ ) ) || pMask & FLAG_READ )
|
|
|
|
sMask |= FLAG_READ;
|
|
|
|
if ( ( rMask & FLAG_WRITE && !( pMask & FLAG_WRITE ) ) || pMask & FLAG_WRITE )
|
|
|
|
sMask |= FLAG_WRITE;
|
|
|
|
if ( ( rMask & FLAG_EXECUTE && !( pMask & FLAG_EXECUTE ) ) || pMask & FLAG_EXECUTE )
|
|
|
|
sMask |= FLAG_EXECUTE;
|
|
|
|
if ( ( rMask & FLAG_DELETE && !( pMask & FLAG_DELETE ) ) || pMask & FLAG_DELETE )
|
|
|
|
sMask |= FLAG_DELETE;
|
|
|
|
aProt = _get_prot ( sMask );
|
|
|
|
} // end OSD_Protection :: Add
|
|
|
|
void OSD_Protection :: Sub (
|
|
OSD_SingleProtection& aProt,
|
|
const OSD_SingleProtection aRight
|
|
) {
|
|
|
|
Standard_Integer pMask = 0;
|
|
Standard_Integer rMask = 0;
|
|
|
|
pMask = _get_mask ( aProt );
|
|
rMask = _get_mask ( aRight );
|
|
|
|
if ( rMask & FLAG_READ )
|
|
|
|
pMask &= ~FLAG_READ;
|
|
|
|
if ( rMask & FLAG_WRITE )
|
|
|
|
pMask &= ~FLAG_WRITE;
|
|
|
|
if ( rMask & FLAG_EXECUTE )
|
|
|
|
pMask &= ~FLAG_EXECUTE;
|
|
|
|
if ( rMask & FLAG_DELETE )
|
|
|
|
pMask &= ~FLAG_DELETE;
|
|
|
|
aProt = _get_prot ( pMask );
|
|
|
|
} // end OSD_Protection :: Sub
|
|
|
|
Standard_Integer OSD_Protection :: Internal () const {
|
|
|
|
return 0;
|
|
|
|
} // end OSD_Protection :: Internal
|
|
|
|
static Standard_Integer __fastcall _get_mask ( OSD_SingleProtection p ) {
|
|
|
|
Standard_Integer retVal = 0;
|
|
|
|
if ( p == OSD_R || p == OSD_RW || p == OSD_RX || p == OSD_RWX ||
|
|
p == OSD_RXD || p == OSD_RWXD || p == OSD_RD || p == OSD_RWD
|
|
) retVal |= FLAG_READ;
|
|
|
|
if ( p == OSD_W || p == OSD_RW || p == OSD_WX || p == OSD_RWX ||
|
|
p == OSD_WXD || p == OSD_RWXD || p == OSD_WD || p == OSD_RWD
|
|
) retVal |= FLAG_WRITE;
|
|
|
|
if ( p == OSD_X || p == OSD_RX || p == OSD_WX || p == OSD_RWX ||
|
|
p == OSD_XD || p == OSD_RXD || p == OSD_WXD || p == OSD_RWXD
|
|
) retVal |= FLAG_EXECUTE;
|
|
|
|
if ( p == OSD_D || p == OSD_RD || p == OSD_WD || p == OSD_RWD ||
|
|
p == OSD_XD || p == OSD_RXD || p == OSD_WXD || p == OSD_RWXD
|
|
) retVal |= FLAG_DELETE;
|
|
|
|
return retVal;
|
|
|
|
} // end _get_mask
|
|
|
|
static OSD_SingleProtection __fastcall _get_prot ( Standard_Integer m ) {
|
|
|
|
OSD_SingleProtection retVal;
|
|
|
|
switch ( m ) {
|
|
|
|
case FLAG_READ:
|
|
|
|
retVal = OSD_R;
|
|
|
|
break;
|
|
|
|
case FLAG_WRITE:
|
|
|
|
retVal = OSD_W;
|
|
|
|
break;
|
|
|
|
case FLAG_READ | FLAG_WRITE:
|
|
|
|
retVal = OSD_RW;
|
|
|
|
break;
|
|
|
|
case FLAG_EXECUTE:
|
|
|
|
retVal = OSD_X;
|
|
|
|
break;
|
|
|
|
case FLAG_READ | FLAG_EXECUTE:
|
|
|
|
retVal = OSD_RX;
|
|
|
|
break;
|
|
|
|
case FLAG_WRITE | FLAG_EXECUTE:
|
|
|
|
retVal = OSD_WX;
|
|
|
|
break;
|
|
|
|
case FLAG_READ | FLAG_WRITE | FLAG_EXECUTE:
|
|
|
|
retVal = OSD_RWX;
|
|
|
|
break;
|
|
|
|
case FLAG_DELETE:
|
|
|
|
retVal = OSD_D;
|
|
|
|
break;
|
|
|
|
case FLAG_READ | FLAG_DELETE:
|
|
|
|
retVal = OSD_RD;
|
|
|
|
break;
|
|
|
|
case FLAG_WRITE | FLAG_DELETE:
|
|
|
|
retVal = OSD_WD;
|
|
|
|
break;
|
|
|
|
case FLAG_READ | FLAG_WRITE | FLAG_DELETE:
|
|
|
|
retVal = OSD_RWD;
|
|
|
|
break;
|
|
|
|
case FLAG_EXECUTE | FLAG_DELETE:
|
|
|
|
retVal = OSD_XD;
|
|
|
|
break;
|
|
|
|
case FLAG_READ | FLAG_EXECUTE | FLAG_DELETE:
|
|
|
|
retVal = OSD_RXD;
|
|
|
|
break;
|
|
|
|
case FLAG_WRITE | FLAG_EXECUTE | FLAG_DELETE:
|
|
|
|
retVal = OSD_WXD;
|
|
|
|
break;
|
|
|
|
case FLAG_READ | FLAG_WRITE | FLAG_EXECUTE | FLAG_DELETE:
|
|
|
|
retVal = OSD_RWXD;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
retVal = OSD_None;
|
|
|
|
} // end switch
|
|
|
|
return retVal;
|
|
|
|
} // end _get_prot
|
|
|
|
#endif
|