diff for duplicates of <1520635631.2907.16.camel@wdc.com>
diff --git a/a/1.txt b/N1/1.txt
index 103af59..08f6578 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,15 +1,20 @@
-T24gRnJpLCAyMDE4LTAzLTA5IGF0IDIzOjMzICswMTAwLCBTdGVwaGVuIEtpdHQgd3JvdGU6DQo+
-ICsvKg0KPiArICogU0NTSSBjb21tYW5kIHNpemVzIGFyZSBhcyBmb2xsb3dzLCBpbiBieXRlcywg
-Zm9yIGZpeGVkIHNpemUgY29tbWFuZHMsIHBlcg0KPiArICogZ3JvdXA6IDYsIDEwLCAxMCwgMTIs
-IDE2LCAxMiwgMTAsIDEwLiBUaGUgdG9wIHRocmVlIGJpdHMgb2YgYW4gb3Bjb2RlDQo+ICsgKiBk
-ZXRlcm1pbmUgaXRzIGdyb3VwLg0KPiArICogVGhlIHNpemUgdGFibGUgaXMgZW5jb2RlZCBpbnRv
-IGEgMzItYml0IHZhbHVlIGJ5IHN1YnRyYWN0aW5nIGVhY2ggdmFsdWUNCj4gKyAqIGZyb20gMTYs
-IHJlc3VsdGluZyBpbiBhIHZhbHVlIG9mIDE3MTU0ODgzNjINCj4gKyAqICg2IDw8IDI4ICsgNiA8
-PCAyNCArIDQgPDwgMjAgKyAwIDw8IDE2ICsgNCA8PCAxMiArIDYgPDwgOCArIDYgPDwgNCArIDEw
-KS4NCj4gKyAqIENvbW1hbmQgZ3JvdXAgMyBpcyByZXNlcnZlZCBhbmQgc2hvdWxkIG5ldmVyIGJl
-IHVzZWQuDQo+ICsgKi8NCj4gKyNkZWZpbmUgQ09NTUFORF9TSVpFKG9wY29kZSkgXA0KPiArCSgx
-NiAtICgxNSAmICgxNzE1NDg4MzYyID4+ICg0ICogKCgob3Bjb2RlKSA+PiA1KSAmIDcpKSkpKQ0K
-DQpUbyBtZSB0aGlzIHNlZW1zIGhhcmQgdG8gcmVhZCBhbmQgaGFyZCB0byB2ZXJpZnkuIENvdWxk
-IHRoaXMgaGF2ZSBiZWVuIHdyaXR0ZW4NCmFzIGEgY29tYmluYXRpb24gb2YgdGVybmFyeSBleHBy
-ZXNzaW9ucywgZS5nLiB1c2luZyBhIGdjYyBzdGF0ZW1lbnQgZXhwcmVzc2lvbg0KdG8gZW5zdXJl
-IHRoYXQgb3Bjb2RlIGlzIGV2YWx1YXRlZCBvbmNlPw0KDQpUaGFua3MsDQoNCkJhcnQuDQoNCg0K
\ No newline at end of file
+On Fri, 2018-03-09 at 23:33 +0100, Stephen Kitt wrote:
+> +/*
+> + * SCSI command sizes are as follows, in bytes, for fixed size commands, per
+> + * group: 6, 10, 10, 12, 16, 12, 10, 10. The top three bits of an opcode
+> + * determine its group.
+> + * The size table is encoded into a 32-bit value by subtracting each value
+> + * from 16, resulting in a value of 1715488362
+> + * (6 << 28 + 6 << 24 + 4 << 20 + 0 << 16 + 4 << 12 + 6 << 8 + 6 << 4 + 10).
+> + * Command group 3 is reserved and should never be used.
+> + */
+> +#define COMMAND_SIZE(opcode) \
+> + (16 - (15 & (1715488362 >> (4 * (((opcode) >> 5) & 7)))))
+
+To me this seems hard to read and hard to verify. Could this have been written
+as a combination of ternary expressions, e.g. using a gcc statement expression
+to ensure that opcode is evaluated once?
+
+Thanks,
+
+Bart.
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index 16c84cc..307c9f1 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -33,21 +33,26 @@
"b\0"
]
[
- "T24gRnJpLCAyMDE4LTAzLTA5IGF0IDIzOjMzICswMTAwLCBTdGVwaGVuIEtpdHQgd3JvdGU6DQo+\n",
- "ICsvKg0KPiArICogU0NTSSBjb21tYW5kIHNpemVzIGFyZSBhcyBmb2xsb3dzLCBpbiBieXRlcywg\n",
- "Zm9yIGZpeGVkIHNpemUgY29tbWFuZHMsIHBlcg0KPiArICogZ3JvdXA6IDYsIDEwLCAxMCwgMTIs\n",
- "IDE2LCAxMiwgMTAsIDEwLiBUaGUgdG9wIHRocmVlIGJpdHMgb2YgYW4gb3Bjb2RlDQo+ICsgKiBk\n",
- "ZXRlcm1pbmUgaXRzIGdyb3VwLg0KPiArICogVGhlIHNpemUgdGFibGUgaXMgZW5jb2RlZCBpbnRv\n",
- "IGEgMzItYml0IHZhbHVlIGJ5IHN1YnRyYWN0aW5nIGVhY2ggdmFsdWUNCj4gKyAqIGZyb20gMTYs\n",
- "IHJlc3VsdGluZyBpbiBhIHZhbHVlIG9mIDE3MTU0ODgzNjINCj4gKyAqICg2IDw8IDI4ICsgNiA8\n",
- "PCAyNCArIDQgPDwgMjAgKyAwIDw8IDE2ICsgNCA8PCAxMiArIDYgPDwgOCArIDYgPDwgNCArIDEw\n",
- "KS4NCj4gKyAqIENvbW1hbmQgZ3JvdXAgMyBpcyByZXNlcnZlZCBhbmQgc2hvdWxkIG5ldmVyIGJl\n",
- "IHVzZWQuDQo+ICsgKi8NCj4gKyNkZWZpbmUgQ09NTUFORF9TSVpFKG9wY29kZSkgXA0KPiArCSgx\n",
- "NiAtICgxNSAmICgxNzE1NDg4MzYyID4+ICg0ICogKCgob3Bjb2RlKSA+PiA1KSAmIDcpKSkpKQ0K\n",
- "DQpUbyBtZSB0aGlzIHNlZW1zIGhhcmQgdG8gcmVhZCBhbmQgaGFyZCB0byB2ZXJpZnkuIENvdWxk\n",
- "IHRoaXMgaGF2ZSBiZWVuIHdyaXR0ZW4NCmFzIGEgY29tYmluYXRpb24gb2YgdGVybmFyeSBleHBy\n",
- "ZXNzaW9ucywgZS5nLiB1c2luZyBhIGdjYyBzdGF0ZW1lbnQgZXhwcmVzc2lvbg0KdG8gZW5zdXJl\n",
- "IHRoYXQgb3Bjb2RlIGlzIGV2YWx1YXRlZCBvbmNlPw0KDQpUaGFua3MsDQoNCkJhcnQuDQoNCg0K"
+ "On Fri, 2018-03-09 at 23:33 +0100, Stephen Kitt wrote:\n",
+ "> +/*\n",
+ "> + * SCSI command sizes are as follows, in bytes, for fixed size commands, per\n",
+ "> + * group: 6, 10, 10, 12, 16, 12, 10, 10. The top three bits of an opcode\n",
+ "> + * determine its group.\n",
+ "> + * The size table is encoded into a 32-bit value by subtracting each value\n",
+ "> + * from 16, resulting in a value of 1715488362\n",
+ "> + * (6 << 28 + 6 << 24 + 4 << 20 + 0 << 16 + 4 << 12 + 6 << 8 + 6 << 4 + 10).\n",
+ "> + * Command group 3 is reserved and should never be used.\n",
+ "> + */\n",
+ "> +#define COMMAND_SIZE(opcode) \\\n",
+ "> +\t(16 - (15 & (1715488362 >> (4 * (((opcode) >> 5) & 7)))))\n",
+ "\n",
+ "To me this seems hard to read and hard to verify. Could this have been written\n",
+ "as a combination of ternary expressions, e.g. using a gcc statement expression\n",
+ "to ensure that opcode is evaluated once?\n",
+ "\n",
+ "Thanks,\n",
+ "\n",
+ "Bart."
]
-4a208448b61024a928cb15c18588c3df41a5bf06e03fab56bb990b4143e9d048
+ac169996b154d520a59aeeedcd2e3e353aa456b42df93fd946f625032dcaec77
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.