This looks fine other than the fact that you didn't put comments in
there like the existing flags. Those are for doxygen, I think. The
mapping happens in the openFunc on these lines:
// translate open flags
for (int i = 0; i < OS::NUM_OPEN_FLAGS; i++) {
if (tgtFlags & OS::openFlagTable[i].tgtFlag) {
tgtFlags &= ~OS::openFlagTable[i].tgtFlag;
hostFlags |= OS::openFlagTable[i].hostFlag;
}
}
That's referencing the mapping set up in, for example,
src/arch/x86/linux/linux.cc.
Gabe
Vince Weaver wrote:
> Some of the benchmarks complain that flag 0x8000 (which is O_LARGEFILE)
> isn't set. This might help things, though I couldn't follow exactly
> where the target->host mapping happened.
>
>
> diff -r 9dec5da94241 src/arch/x86/linux/linux.hh
> --- a/src/arch/x86/linux/linux.hh Mon Sep 21 23:37:22 2009 -0400
> +++ b/src/arch/x86/linux/linux.hh Mon Sep 21 23:39:02 2009 -0400
> @@ -169,11 +169,13 @@
> static const int TGT_O_EXCL = 00000200; //!< O_EXCL
> static const int TGT_O_NOCTTY = 00000400; //!< O_NOCTTY
> static const int TGT_O_SYNC = 00010000; //!< O_SYNC
> -// static const int TGT_O_DRD = 0x00010000; //!< O_DRD
> -// static const int TGT_O_DIRECTIO = 0x00020000; //!< O_DIRECTIO
> -// static const int TGT_O_CACHE = 0x00002000; //!< O_CACHE
> -// static const int TGT_O_DSYNC = 0x00008000; //!< O_DSYNC
> -// static const int TGT_O_RSYNC = 0x00040000; //!< O_RSYNC
> + static const int TGT_O_ASYNC = 00020000;
> + static const int TGT_O_DIRECT = 00040000; //!< O_DIRECTIO
> + static const int TGT_O_LARGEFILE = 00100000;
> + static const int TGT_O_DIRECTORY = 00200000;
> + static const int TGT_O_NOFOLLOW = 00400000;
> + static const int TGT_O_NOATIME = 01000000;
> + static const int TGT_O_CLOEXEC = 02000000;
>
> static const int NUM_OPEN_FLAGS;
>
> _______________________________________________
> m5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/m5-dev
>
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev