[PATCH] doc: add a note regarding truncation of id_* fields

Nayan Deshmukh nayan26deshmukh at gmail.com
Sun Aug 4 11:58:56 UTC 2019


The id_* fields are 16 bits in linux/input.h and we mirror
the kernel API here. Even though we accept an int for this
fields in ABI the value is truncated at 16 bits.

Signed-off-by: Nayan Deshmukh <nayan26deshmukh at gmail.com>
---
 libevdev/libevdev.h | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/libevdev/libevdev.h b/libevdev/libevdev.h
index 32a4317..8fd8a5b 100644
--- a/libevdev/libevdev.h
+++ b/libevdev/libevdev.h
@@ -1272,7 +1272,9 @@ int libevdev_get_id_product(const struct libevdev *dev);
  * @param product_id The product ID to assign to this device
  *
  * @note This function may be called before libevdev_set_fd(). A call to
- * libevdev_set_fd() will overwrite any previously set value.
+ * libevdev_set_fd() will overwrite any previously set value. Even though
+ * the function accepts an int for product_id the value is truncated at 16
+ * bits.
  */
 void libevdev_set_id_product(struct libevdev *dev, int product_id);
 
@@ -1294,7 +1296,9 @@ int libevdev_get_id_vendor(const struct libevdev *dev);
  * @param vendor_id The vendor ID to assign to this device
  *
  * @note This function may be called before libevdev_set_fd(). A call to
- * libevdev_set_fd() will overwrite any previously set value.
+ * libevdev_set_fd() will overwrite any previously set value. Even though
+ * the function accepts an int for vendor_id the value is truncated at 16
+ * bits.
  */
 void libevdev_set_id_vendor(struct libevdev *dev, int vendor_id);
 
@@ -1316,7 +1320,9 @@ int libevdev_get_id_bustype(const struct libevdev *dev);
  * @param bustype The bustype to assign to this device
  *
  * @note This function may be called before libevdev_set_fd(). A call to
- * libevdev_set_fd() will overwrite any previously set value.
+ * libevdev_set_fd() will overwrite any previously set value. Even though
+ * the function accepts an int for bustype the value is truncated at 16
+ * bits.
  */
 void libevdev_set_id_bustype(struct libevdev *dev, int bustype);
 
@@ -1338,7 +1344,9 @@ int libevdev_get_id_version(const struct libevdev *dev);
  * @param version The version to assign to this device
  *
  * @note This function may be called before libevdev_set_fd(). A call to
- * libevdev_set_fd() will overwrite any previously set value.
+ * libevdev_set_fd() will overwrite any previously set value. Even though
+ * the function accepts an int for version the value is truncated at 16
+ * bits.
  */
 void libevdev_set_id_version(struct libevdev *dev, int version);
 
-- 
2.21.0



More information about the Input-tools mailing list