All of lore.kernel.org
 help / color / mirror / Atom feed
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.