int err;
const char *errstr;
} wake_ops[] = {
- { 0x00000000, "{FUTEX_OP_SET, 0, FUTEX_OP_CMP_EQ, 0}" },
- { 0x00fff000, "{FUTEX_OP_SET, 4095, FUTEX_OP_CMP_EQ, 0}" },
- { 0x00000fff, "{FUTEX_OP_SET, 0, FUTEX_OP_CMP_EQ, 4095}" },
- { 0x00ffffff, "{FUTEX_OP_SET, 4095, FUTEX_OP_CMP_EQ, 4095}" },
- { 0x10000000, "{FUTEX_OP_ADD, 0, FUTEX_OP_CMP_EQ, 0}" },
- { 0x20000000, "{FUTEX_OP_OR, 0, FUTEX_OP_CMP_EQ, 0}" },
- { 0x30000000, "{FUTEX_OP_ANDN, 0, FUTEX_OP_CMP_EQ, 0}" },
- { 0x40000000, "{FUTEX_OP_XOR, 0, FUTEX_OP_CMP_EQ, 0}" },
- { 0x50000000, "{0x5 /* FUTEX_OP_??? */, 0, FUTEX_OP_CMP_EQ, 0}",
+ { 0x00000000, "FUTEX_OP_SET<<28|0<<12|FUTEX_OP_CMP_EQ<<24|0" },
+ { 0x00fff000, "FUTEX_OP_SET<<28|0xfff<<12|FUTEX_OP_CMP_EQ<<24|"
+ "0" },
+ { 0x00000fff, "FUTEX_OP_SET<<28|0<<12|FUTEX_OP_CMP_EQ<<24|"
+ "0xfff" },
+ { 0x00ffffff, "FUTEX_OP_SET<<28|0xfff<<12|FUTEX_OP_CMP_EQ<<24|"
+ "0xfff" },
+ { 0x10000000, "FUTEX_OP_ADD<<28|0<<12|FUTEX_OP_CMP_EQ<<24|0" },
+ { 0x20000000, "FUTEX_OP_OR<<28|0<<12|FUTEX_OP_CMP_EQ<<24|0" },
+ { 0x30000000, "FUTEX_OP_ANDN<<28|0<<12|FUTEX_OP_CMP_EQ<<24|0" },
+ { 0x40000000, "FUTEX_OP_XOR<<28|0<<12|FUTEX_OP_CMP_EQ<<24|0" },
+ { 0x50000000, "0x5<<28 /* FUTEX_OP_??? */|0<<12|"
+ "FUTEX_OP_CMP_EQ<<24|0", ENOSYS, "ENOSYS" },
+ { 0x70000000, "0x7<<28 /* FUTEX_OP_??? */|0<<12|"
+ "FUTEX_OP_CMP_EQ<<24|0", ENOSYS, "ENOSYS" },
+ { 0x80000000, "FUTEX_OP_OPARG_SHIFT<<28|FUTEX_OP_SET<<28|0<<12|"
+ "FUTEX_OP_CMP_EQ<<24|0" },
+ { 0xa0caffee, "FUTEX_OP_OPARG_SHIFT<<28|FUTEX_OP_OR<<28|"
+ "0xcaf<<12|FUTEX_OP_CMP_EQ<<24|0xfee" },
+ { 0x01000000, "FUTEX_OP_SET<<28|0<<12|FUTEX_OP_CMP_NE<<24|0" },
+ { 0x01234567, "FUTEX_OP_SET<<28|0x234<<12|FUTEX_OP_CMP_NE<<24|"
+ "0x567" },
+ { 0x02000000, "FUTEX_OP_SET<<28|0<<12|FUTEX_OP_CMP_LT<<24|0" },
+ { 0x03000000, "FUTEX_OP_SET<<28|0<<12|FUTEX_OP_CMP_LE<<24|0" },
+ { 0x04000000, "FUTEX_OP_SET<<28|0<<12|FUTEX_OP_CMP_GT<<24|0" },
+ { 0x05000000, "FUTEX_OP_SET<<28|0<<12|FUTEX_OP_CMP_GE<<24|0" },
+ { 0x06000000, "FUTEX_OP_SET<<28|0<<12|"
+ "0x6<<24 /* FUTEX_OP_CMP_??? */|0", ENOSYS, "ENOSYS" },
+ { 0x07000000, "FUTEX_OP_SET<<28|0<<12|"
+ "0x7<<24 /* FUTEX_OP_CMP_??? */|0", ENOSYS, "ENOSYS" },
+ { 0x08000000, "FUTEX_OP_SET<<28|0<<12|"
+ "0x8<<24 /* FUTEX_OP_CMP_??? */|0", ENOSYS, "ENOSYS" },
+ { 0x0f000000, "FUTEX_OP_SET<<28|0<<12|"
+ "0xf<<24 /* FUTEX_OP_CMP_??? */|0", ENOSYS, "ENOSYS" },
+ { 0xbadfaced, "FUTEX_OP_OPARG_SHIFT<<28|FUTEX_OP_ANDN<<28|"
+ "0xdfa<<12|0xa<<24 /* FUTEX_OP_CMP_??? */|0xced",
ENOSYS, "ENOSYS" },
- { 0x70000000, "{0x7 /* FUTEX_OP_??? */, 0, FUTEX_OP_CMP_EQ, 0}",
+ { 0xffffffff, "FUTEX_OP_OPARG_SHIFT<<28|"
+ "0x7<<28 /* FUTEX_OP_??? */|0xfff<<12|"
+ "0xf<<24 /* FUTEX_OP_CMP_??? */|0xfff",
ENOSYS, "ENOSYS" },
- { 0x80000000, "{FUTEX_OP_OPARG_SHIFT|FUTEX_OP_SET, 0, "
- "FUTEX_OP_CMP_EQ, 0}" },
- { 0xa0caffee, "{FUTEX_OP_OPARG_SHIFT|FUTEX_OP_OR, 3247, "
- "FUTEX_OP_CMP_EQ, 4078}" },
- { 0x01000000, "{FUTEX_OP_SET, 0, FUTEX_OP_CMP_NE, 0}" },
- { 0x01234567, "{FUTEX_OP_SET, 564, FUTEX_OP_CMP_NE, 1383}" },
- { 0x02000000, "{FUTEX_OP_SET, 0, FUTEX_OP_CMP_LT, 0}" },
- { 0x03000000, "{FUTEX_OP_SET, 0, FUTEX_OP_CMP_LE, 0}" },
- { 0x04000000, "{FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 0}" },
- { 0x05000000, "{FUTEX_OP_SET, 0, FUTEX_OP_CMP_GE, 0}" },
- { 0x06000000, "{FUTEX_OP_SET, 0, 0x6 /* FUTEX_OP_CMP_??? */, "
- "0}", ENOSYS, "ENOSYS" },
- { 0x07000000, "{FUTEX_OP_SET, 0, 0x7 /* FUTEX_OP_CMP_??? */, "
- "0}", ENOSYS, "ENOSYS" },
- { 0x08000000, "{FUTEX_OP_SET, 0, 0x8 /* FUTEX_OP_CMP_??? */, "
- "0}", ENOSYS, "ENOSYS" },
- { 0x0f000000, "{FUTEX_OP_SET, 0, 0xf /* FUTEX_OP_CMP_??? */, "
- "0}", ENOSYS, "ENOSYS" },
- { 0xbadfaced, "{FUTEX_OP_OPARG_SHIFT|FUTEX_OP_ANDN, "
- "3578, 0xa /* FUTEX_OP_CMP_??? */, 3309}", ENOSYS,
- "ENOSYS" },
- { 0xffffffff, "{FUTEX_OP_OPARG_SHIFT|0x7 /* FUTEX_OP_??? */, "
- "4095, 0xf /* FUTEX_OP_CMP_??? */, 4095}", ENOSYS,
- "ENOSYS" },
};
for (i = 0; i < ARRAY_SIZE(wake_ops); i++) {
CHECK_INVALID_CLOCKRT(FUTEX_WAKE_OP, ARG3 | ARG4 | ARG5 | ARG6,
"%u", "%u", "%#lx",
/* Decoding of the 0xdeadbee4 value */
- "{FUTEX_OP_OPARG_SHIFT|0x5 /* FUTEX_OP_??? */, 2779, "
- "0xe /* FUTEX_OP_CMP_??? */, 3812}");
+ "FUTEX_OP_OPARG_SHIFT<<28|0x5<<28 /* FUTEX_OP_??? */|0xadb<<12|"
+ "0xe<<24 /* FUTEX_OP_CMP_??? */|0xee4");
/* FUTEX_LOCK_PI - slow path for mutex lock with process inheritance
* support. Expect that futex has 0 in unlocked case and