|
|
1.1 ! root 1: /* ! 2: * ! 3: * Open Hack'Ware BIOS ADB mouse support, ported to OpenBIOS ! 4: * ! 5: * Copyright (c) 2005 Jocelyn Mayer ! 6: * Copyright (c) 2005 Stefan Reinauer ! 7: * ! 8: * This program is free software; you can redistribute it and/or ! 9: * modify it under the terms of the GNU General Public License V2 ! 10: * as published by the Free Software Foundation ! 11: * ! 12: * This program is distributed in the hope that it will be useful, ! 13: * but WITHOUT ANY WARRANTY; without even the implied warranty of ! 14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 15: * GNU General Public License for more details. ! 16: * ! 17: * You should have received a copy of the GNU General Public License ! 18: * along with this program; if not, write to the Free Software ! 19: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA ! 20: */ ! 21: ! 22: #include "config.h" ! 23: #include "libopenbios/bindings.h" ! 24: #include "libc/byteorder.h" ! 25: #include "libc/vsprintf.h" ! 26: ! 27: #include "adb_bus.h" ! 28: #include "adb_mouse.h" ! 29: ! 30: DECLARE_UNNAMED_NODE( mouse, INSTALL_OPEN, sizeof(int)); ! 31: ! 32: static void ! 33: mouse_open(int *idx) ! 34: { ! 35: RET(-1); ! 36: } ! 37: ! 38: static void ! 39: mouse_close(int *idx) ! 40: { ! 41: } ! 42: ! 43: NODE_METHODS( mouse ) = { ! 44: { "open", mouse_open }, ! 45: { "close", mouse_close }, ! 46: }; ! 47: ! 48: void adb_mouse_new (char *path, void *private) ! 49: { ! 50: char buf[64]; ! 51: int props[1]; ! 52: phandle_t ph, aliases; ! 53: adb_dev_t *dev = private; ! 54: ! 55: snprintf(buf, sizeof(buf), "%s/mouse", path); ! 56: REGISTER_NAMED_NODE( mouse, buf); ! 57: ! 58: ph = find_dev(buf); ! 59: ! 60: set_property(ph, "device_type", "mouse", 6); ! 61: props[0] = __cpu_to_be32(dev->addr); ! 62: set_property(ph, "reg", (char *)&props, sizeof(props)); ! 63: set_int_property(ph, "#buttons", 3); ! 64: ! 65: aliases = find_dev("/aliases"); ! 66: set_property(aliases, "adb-mouse", buf, strlen(buf) + 1); ! 67: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.