sim-se, kern: Add flags parameter to unlinkat

The unlinkat syscall expects a "third" flags parameter [1].

It is using it to implement a sort of rmdirat (in case the parameter
includes the AT_REMOVEDIR flag)

[1]: https://man7.org/linux/man-pages/man2/unlink.2.html

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Change-Id: I38dd9268ae4de0f289abe779c4da03e969248065
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/51548
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Giacomo Travaglini
2021-10-13 13:28:46 +01:00
parent 65ef21a308
commit 54d48c0244
4 changed files with 49 additions and 5 deletions

View File

@@ -1,4 +1,16 @@
/*
* Copyright (c) 2021 Arm Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
* not be construed as granting a license to any other intellectual
* property including but not limited to intellectual property relating
* to a hardware implementation of the functionality of the software
* licensed hereunder. You may use the software subject to the license
* terms below provided that you ensure that this notice is replicated
* unmodified and in its entirety in all distributions of the software,
* modified or unmodified, in source code or in binary form.
*
* Copyright (c) 2004-2009 The Regents of The University of Michigan
* All rights reserved.
*
@@ -283,7 +295,8 @@ class Linux : public OperatingSystem
static const unsigned TGT_FUTEX_OP_CMP_GE = 5;
// for *at syscalls
static const int TGT_AT_FDCWD = -100;
static const int TGT_AT_FDCWD = -100;
static const int TGT_AT_REMOVEDIR = 0x200;
// for MREMAP
static const unsigned TGT_MREMAP_MAYMOVE = 0x1;