sim,kern: support FUTEX_WAIT_BITSET and FUTEX_WAKE_BITSET ops
authorTuan Ta <qtt2@cornell.edu>
Mon, 2 Apr 2018 20:21:09 +0000 (16:21 -0400)
committerTuan Ta <qtt2@cornell.edu>
Fri, 8 Feb 2019 15:18:22 +0000 (15:18 +0000)
commitcf45f22369f85397f113918a4f773b2613f0e19b
tree6f5fb74061101f7be22edeaef7d81a95f35f6ae6
parente5415671bd8871b99e754b5db75714a6492c0917
sim,kern: support FUTEX_WAIT_BITSET and FUTEX_WAKE_BITSET ops

This patch adds support for two operations in futex system call:
FUTEX_WAIT_BITSET and FUTEX_WAKE_BITSET. The two operations are used to
selectively wake up a certain thread waiting on a futex variable.

Basically each thread waiting on a futex variable is associated with a
bitset that is checked when another thread tries to wake up all threads
waiting on the futex variable.

Change-Id: I2300e53b144d8fae226423fa2efb0238c1d93ef9
Reviewed-on: https://gem5-review.googlesource.com/c/9621
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Maintainer: Brandon Potter <Brandon.Potter@amd.com>
src/kern/linux/linux.hh
src/sim/futex_map.hh
src/sim/syscall_emul.hh