-PSMOUSE_DEFINE_ATTR(sensitivity);
-PSMOUSE_DEFINE_ATTR(speed);
-PSMOUSE_DEFINE_ATTR(inertia);
-PSMOUSE_DEFINE_ATTR(reach);
-PSMOUSE_DEFINE_ATTR(draghys);
-PSMOUSE_DEFINE_ATTR(mindrag);
-PSMOUSE_DEFINE_ATTR(thresh);
-PSMOUSE_DEFINE_ATTR(upthresh);
-PSMOUSE_DEFINE_ATTR(ztime);
-PSMOUSE_DEFINE_ATTR(jenks);
-PSMOUSE_DEFINE_ATTR(press_to_select);
-PSMOUSE_DEFINE_ATTR(skipback);
-PSMOUSE_DEFINE_ATTR(ext_dev);
-
-#define MAKE_ATTR_READ(_item) \
- static ssize_t psmouse_attr_show_##_item(struct psmouse *psmouse, char *buf) \
- { \
- struct trackpoint_data *tp = psmouse->private; \
- return sprintf(buf, "%lu\n", (unsigned long)tp->_item); \
- }
-
-#define MAKE_ATTR_WRITE(_item, command) \
- static ssize_t psmouse_attr_set_##_item(struct psmouse *psmouse, const char *buf, size_t count) \
- { \
- char *rest; \
- unsigned long value; \
- struct trackpoint_data *tp = psmouse->private; \
- value = simple_strtoul(buf, &rest, 10); \
- if (*rest) \
- return -EINVAL; \
- tp->_item = value; \
- trackpoint_write(&psmouse->ps2dev, command, tp->_item); \
- return count; \
- }
-
-#define MAKE_ATTR_TOGGLE(_item, command, mask) \
- static ssize_t psmouse_attr_set_##_item(struct psmouse *psmouse, const char *buf, size_t count) \
- { \
- unsigned char toggle; \
- struct trackpoint_data *tp = psmouse->private; \
- toggle = (buf[0] == '1') ? 1 : 0; \
- if (toggle != tp->_item) { \
- tp->_item = toggle; \
- trackpoint_toggle_bit(&psmouse->ps2dev, command, mask); \
- } \
- return count; \
- }
-