Changes in / [8426912a:08abd81] in mainline
- Files:
-
- 100 deleted
- 27 edited
Legend:
- Unmodified
- Added
- Removed
-
HelenOS.config
r8426912a r08abd81 547 547 548 548 % Launch (devman) test drivers 549 ! [CONFIG_DEBUG=y] CONFIG_TEST_DRIVERS ( n/y)550 549 ! [CONFIG_DEBUG=y] CONFIG_TEST_DRIVERS (y/n) 550 -
Makefile
r8426912a r08abd81 92 92 $(MAKE) -C uspace clean 93 93 $(MAKE) -C boot clean 94 95 -include Makefile.local -
boot/Makefile.common
r8426912a r08abd81 139 139 $(USPACE_PATH)/app/ping/ping \ 140 140 $(USPACE_PATH)/app/stats/stats \ 141 $(USPACE_PATH)/app/sysinfo/sysinfo \142 141 $(USPACE_PATH)/app/tasks/tasks \ 143 142 $(USPACE_PATH)/app/top/top \ 144 $(USPACE_PATH)/app/usbinfo/usbinfo \ 145 $(USPACE_PATH)/app/virtusbkbd/vuk \ 143 $(USPACE_PATH)/app/sysinfo/sysinfo \ 146 144 $(USPACE_PATH)/app/websrv/websrv 147 145 -
boot/arch/amd64/Makefile.inc
r8426912a r08abd81 42 42 pciintel \ 43 43 isa \ 44 ns8250 \ 45 uhci \ 46 usbhub \ 47 usbkbd \ 48 vhc 44 ns8250 49 45 50 46 RD_DRV_CFG += \ -
uspace/Makefile
r8426912a r08abd81 51 51 app/trace \ 52 52 app/top \ 53 app/usbinfo \54 app/virtusbkbd \55 53 app/netecho \ 56 54 app/nettest1 \ … … 116 114 drv/ns8250 \ 117 115 srv/hw/irc/apic \ 118 srv/hw/irc/i8259 \ 119 drv/uhci \ 120 drv/usbhub \ 121 drv/usbkbd \ 122 drv/vhc 116 srv/hw/irc/i8259 123 117 endif 124 118 … … 130 124 drv/ns8250 \ 131 125 srv/hw/irc/apic \ 132 srv/hw/irc/i8259 \ 133 drv/uhci \ 134 drv/usbhub \ 135 drv/usbkbd \ 136 drv/vhc 126 srv/hw/irc/i8259 137 127 endif 138 128 … … 160 150 lib/packet \ 161 151 lib/net 162 163 ifeq ($(UARCH),amd64)164 LIBS += lib/usb165 LIBS += lib/usbvirt166 endif167 168 ifeq ($(UARCH),ia32)169 LIBS += lib/usb170 LIBS += lib/usbvirt171 endif172 152 173 153 LIBC_BUILD = $(addsuffix .build,$(LIBC)) -
uspace/Makefile.common
r8426912a r08abd81 86 86 LIBCLUI_PREFIX = $(LIB_PREFIX)/clui 87 87 88 89 LIBUSB_PREFIX = $(LIB_PREFIX)/usb90 LIBUSBVIRT_PREFIX = $(LIB_PREFIX)/usbvirt91 88 LIBDRV_PREFIX = $(LIB_PREFIX)/drv 92 89 LIBPACKET_PREFIX = $(LIB_PREFIX)/packet -
uspace/app/init/init.c
r8426912a r08abd81 314 314 getterm("term/vc5", "/app/bdsh", false); 315 315 getterm("term/vc6", "/app/klog", false); 316 getterm("term/vc7", "/srv/devman", false);317 316 318 317 return 0; -
uspace/app/tester/Makefile
r8426912a r08abd81 31 31 BINARY = tester 32 32 33 LIBS += $(LIBUSB_PREFIX)/libusb.a34 EXTRA_CFLAGS += -I$(LIBUSB_PREFIX)/include35 36 33 SOURCES = \ 37 34 tester.c \ 38 adt/usbaddrkeep.c \39 35 thread/thread1.c \ 40 36 print/print1.c \ -
uspace/app/tester/tester.c
r8426912a r08abd81 63 63 #include "mm/malloc1.def" 64 64 #include "hw/serial/serial1.def" 65 #include "adt/usbaddrkeep.def"66 65 #include "hw/misc/virtchar1.def" 67 66 {NULL, NULL, NULL, false} -
uspace/app/tester/tester.h
r8426912a r08abd81 80 80 extern const char *test_malloc1(void); 81 81 extern const char *test_serial1(void); 82 extern const char *test_usbaddrkeep(void);83 82 extern const char *test_virtchar1(void); 84 83 -
uspace/doc/doxygroups.h
r8426912a r08abd81 150 150 * @endcond 151 151 */ 152 152 153 153 /** 154 154 * @defgroup emul Emulation Libraries … … 165 165 * @ingroup emul 166 166 */ 167 168 /**169 * @defgroup usb USB170 * @ingroup uspace171 * @brief USB support for HelenOS.172 */173 /**174 * @defgroup libusb USB library175 * @ingroup usb176 * @brief Library for creating USB devices drivers.177 */ -
uspace/drv/root/root.c
r8426912a r08abd81 88 88 89 89 int res = child_device_register_wrapper(parent, VIRTUAL_DEVICE_NAME, 90 VIRTUAL_DEVICE_MATCH_ID, VIRTUAL_DEVICE_MATCH_SCORE, 91 NULL); 90 VIRTUAL_DEVICE_MATCH_ID, VIRTUAL_DEVICE_MATCH_SCORE); 92 91 93 92 return res; … … 137 136 138 137 res = child_device_register_wrapper(parent, PLATFORM_DEVICE_NAME, 139 match_id, PLATFORM_DEVICE_MATCH_SCORE , NULL);138 match_id, PLATFORM_DEVICE_MATCH_SCORE); 140 139 141 140 return res; -
uspace/drv/rootvirt/devices.def
r8426912a r08abd81 22 22 }, 23 23 #endif 24 /* Virtual USB host controller. */25 {26 .name = "usbhc",27 .match_id = "usb&hc=vhc"28 }, -
uspace/drv/rootvirt/rootvirt.c
r8426912a r08abd81 84 84 85 85 int rc = child_device_register_wrapper(parent, virt_dev->name, 86 virt_dev->match_id, 10 , NULL);86 virt_dev->match_id, 10); 87 87 88 88 if (rc == EOK) { -
uspace/drv/test1/test1.c
r8426912a r08abd81 62 62 63 63 int rc = child_device_register_wrapper(parent, name, 64 match_id, match_score , NULL);64 match_id, match_score); 65 65 66 66 if (rc == EOK) { -
uspace/drv/test2/test2.c
r8426912a r08abd81 64 64 65 65 int rc = child_device_register_wrapper(parent, name, 66 match_id, match_score , NULL);66 match_id, match_score); 67 67 68 68 if (rc == EOK) { -
uspace/lib/c/include/assert.h
r8426912a r08abd81 57 57 printf("Assertion failed (%s) at file '%s', " \ 58 58 "line %d.\n", #expr, __FILE__, __LINE__); \ 59 stacktrace_print(); \60 core(); \61 59 abort(); \ 62 60 } \ -
uspace/lib/c/include/ipc/dev_iface.h
r8426912a r08abd81 38 38 HW_RES_DEV_IFACE = 0, 39 39 CHAR_DEV_IFACE, 40 41 /** Interface provided by any USB device. */42 USB_DEV_IFACE,43 /** Interface provided by USB host controller. */44 USBHC_DEV_IFACE,45 46 40 DEV_IFACE_MAX 47 41 } dev_inferface_idx_t; … … 55 49 DEV_IFACE_ID(DEV_FIRST_CUSTOM_METHOD_IDX) 56 50 57 /*58 * The first argument is actually method (as the "real" method is used59 * for indexing into interfaces.60 */61 62 #define DEV_IPC_GET_ARG1(call) IPC_GET_ARG2((call))63 #define DEV_IPC_GET_ARG2(call) IPC_GET_ARG3((call))64 #define DEV_IPC_GET_ARG3(call) IPC_GET_ARG4((call))65 #define DEV_IPC_GET_ARG4(call) IPC_GET_ARG5((call))66 67 51 68 52 #endif -
uspace/lib/c/include/ipc/kbd.h
r8426912a r08abd81 39 39 40 40 #include <ipc/ipc.h> 41 #include <ipc/dev_iface.h>42 41 43 42 typedef enum { 44 KBD_YIELD = DEV_FIRST_CUSTOM_METHOD,43 KBD_YIELD = IPC_FIRST_USER_METHOD, 45 44 KBD_RECLAIM 46 45 } kbd_request_t; -
uspace/lib/drv/Makefile
r8426912a r08abd81 29 29 30 30 USPACE_PREFIX = ../.. 31 EXTRA_CFLAGS = -Iinclude -I$(LIBUSB_PREFIX)/include31 EXTRA_CFLAGS = -Iinclude 32 32 LIBRARY = libdrv 33 33 … … 35 35 generic/driver.c \ 36 36 generic/dev_iface.c \ 37 generic/remote_char_dev.c \38 37 generic/remote_hw_res.c \ 39 generic/remote_usb.c \ 40 generic/remote_usbhc.c 38 generic/remote_char_dev.c 41 39 42 40 include $(USPACE_PREFIX)/Makefile.common -
uspace/lib/drv/generic/dev_iface.c
r8426912a r08abd81 41 41 #include "remote_hw_res.h" 42 42 #include "remote_char_dev.h" 43 #include "remote_usb.h"44 #include "remote_usbhc.h"45 43 46 44 static iface_dipatch_table_t remote_ifaces = { 47 45 .ifaces = { 48 46 &remote_hw_res_iface, 49 &remote_char_dev_iface, 50 &remote_usb_iface, 51 &remote_usbhc_iface 47 &remote_char_dev_iface 52 48 } 53 49 }; -
uspace/lib/drv/generic/driver.c
r8426912a r08abd81 512 512 */ 513 513 int child_device_register_wrapper(device_t *parent, const char *child_name, 514 const char *child_match_id, int child_match_score, 515 devman_handle_t *child_handle) 514 const char *child_match_id, int child_match_score) 516 515 { 517 516 device_t *child = NULL; … … 540 539 if (rc != EOK) 541 540 goto failure; 542 543 if (child_handle != NULL) { 544 *child_handle = child->handle; 545 } 546 541 547 542 return EOK; 548 543 -
uspace/lib/drv/include/driver.h
r8426912a r08abd81 146 146 extern int child_device_register(device_t *, device_t *); 147 147 extern int child_device_register_wrapper(device_t *, const char *, const char *, 148 int , devman_handle_t *);148 int); 149 149 150 150 /* -
uspace/srv/devman/devman.c
r8426912a r08abd81 133 133 printf(NAME": the '%s' driver was added to the list of available " 134 134 "drivers.\n", drv->name); 135 136 printf(NAME ": match ids:");137 link_t *cur;138 for (cur = drv->match_ids.ids.next; cur != &drv->match_ids.ids; cur = cur->next) {139 match_id_t *match_id = list_get_instance(cur, match_id_t, link);140 printf(" %d:%s", match_id->score, match_id->id);141 }142 printf("\n");143 135 } 144 136 -
uspace/srv/devman/main.c
r8426912a r08abd81 458 458 459 459 if (driver == NULL) { 460 printf(NAME ": devman_forward error - the device %" PRIun \ 461 " (%s) is not in usable state.\n", 462 handle, dev->pathname); 460 printf(NAME ": devman_forward error - the device is not in %" PRIun 461 " usable state.\n", handle); 463 462 ipc_answer_0(iid, ENOENT); 464 463 return; -
uspace/srv/hid/console/console.c
r8426912a r08abd81 317 317 static void change_console(console_t *cons) 318 318 { 319 if (cons == active_console) {319 if (cons == active_console) 320 320 return; 321 }322 321 323 322 fb_pending_flush(); … … 459 458 if (IPC_GET_ARG1(call) == 1) { 460 459 int newcon = gcons_mouse_btn((bool) IPC_GET_ARG2(call)); 461 if (newcon != -1) {460 if (newcon != -1) 462 461 change_console(&consoles[newcon]); 463 }464 462 } 465 463 retval = 0; … … 712 710 } 713 711 714 static int connect_keyboard(char *path) 715 { 716 int fd = open(path, O_RDONLY); 717 if (fd < 0) { 718 return fd; 719 } 720 721 int phone = fd_phone(fd); 722 if (phone < 0) { 712 static bool console_init(char *input) 713 { 714 /* Connect to input device */ 715 int input_fd = open(input, O_RDONLY); 716 if (input_fd < 0) { 717 printf(NAME ": Failed opening %s\n", input); 718 return false; 719 } 720 721 kbd_phone = fd_phone(input_fd); 722 if (kbd_phone < 0) { 723 723 printf(NAME ": Failed to connect to input device\n"); 724 return phone;724 return false; 725 725 } 726 726 727 727 /* NB: The callback connection is slotted for removal */ 728 728 sysarg_t phonehash; 729 int rc = async_req_3_5(phone, IPC_M_CONNECT_TO_ME, SERVICE_CONSOLE, 730 0, 0, NULL, NULL, NULL, NULL, &phonehash); 731 if (rc != EOK) { 729 if (ipc_connect_to_me(kbd_phone, SERVICE_CONSOLE, 0, 0, &phonehash) != 0) { 732 730 printf(NAME ": Failed to create callback from input device\n"); 733 return rc;731 return false; 734 732 } 735 733 736 734 async_new_connection(phonehash, 0, NULL, keyboard_events); 737 738 printf(NAME ": we got a hit (new keyboard \"%s\").\n", path); 739 740 return phone; 741 } 742 743 /** Try to connect to given keyboard, bypassing provided libc routines. 744 * 745 * @param devmap_path Path to keyboard without /dev prefix. 746 * @return Phone or error code. 747 */ 748 static int connect_keyboard_bypass(char *devmap_path) 749 { 750 int devmap_phone = async_connect_me_to_blocking(PHONE_NS, 751 SERVICE_DEVMAP, DEVMAP_CLIENT, 0); 752 if (devmap_phone < 0) { 753 return devmap_phone; 754 } 755 ipc_call_t answer; 756 aid_t req = async_send_2(devmap_phone, DEVMAP_DEVICE_GET_HANDLE, 757 0, 0, &answer); 758 759 sysarg_t retval = async_data_write_start(devmap_phone, 760 devmap_path, str_size(devmap_path)); 761 if (retval != EOK) { 762 async_wait_for(req, NULL); 763 ipc_hangup(devmap_phone); 764 return retval; 765 } 766 767 async_wait_for(req, &retval); 768 769 if (retval != EOK) { 770 ipc_hangup(devmap_phone); 771 return retval; 772 } 773 774 devmap_handle_t handle = (devmap_handle_t) IPC_GET_ARG1(answer); 775 776 ipc_hangup(devmap_phone); 777 778 int phone = async_connect_me_to(PHONE_NS, 779 SERVICE_DEVMAP, DEVMAP_CONNECT_TO_DEVICE, handle); 780 if (phone < 0) { 781 return phone; 782 } 783 784 /* NB: The callback connection is slotted for removal */ 785 sysarg_t phonehash; 786 int rc = async_req_3_5(phone, IPC_M_CONNECT_TO_ME, SERVICE_CONSOLE, 787 0, 0, NULL, NULL, NULL, NULL, &phonehash); 788 if (rc != EOK) { 789 printf(NAME ": Failed to create callback from input device\n"); 790 return rc; 791 } 792 793 async_new_connection(phonehash, 0, NULL, keyboard_events); 794 795 printf(NAME ": we got a hit (new keyboard \"/dev/%s\").\n", 796 devmap_path); 797 798 return phone; 799 } 800 801 802 static int check_new_keyboards(void *arg) 803 { 804 char *class_name = (char *) arg; 805 806 int index = 1; 807 808 while (true) { 809 async_usleep(1 * 500 * 1000); 810 char *path; 811 int rc = asprintf(&path, "class/%s\\%d", class_name, index); 812 if (rc < 0) { 813 continue; 814 } 815 rc = 0; 816 rc = connect_keyboard_bypass(path); 817 if (rc > 0) { 818 /* We do not allow unplug. */ 819 index++; 820 } 821 822 free(path); 823 } 824 825 return EOK; 826 } 827 828 829 /** Start a fibril monitoring hot-plugged keyboards. 830 */ 831 static void check_new_keyboards_in_background() 832 { 833 fid_t fid = fibril_create(check_new_keyboards, (void *)"keyboard"); 834 if (!fid) { 835 printf(NAME ": failed to create hot-plug-watch fibril.\n"); 836 return; 837 } 838 fibril_add_ready(fid); 839 } 840 841 static bool console_init(char *input) 842 { 843 /* Connect to input device */ 844 kbd_phone = connect_keyboard(input); 845 if (kbd_phone < 0) { 846 return false; 847 } 848 735 849 736 /* Connect to mouse device */ 850 737 mouse_phone = -1; … … 862 749 } 863 750 864 sysarg_t phonehash;865 751 if (ipc_connect_to_me(mouse_phone, SERVICE_CONSOLE, 0, 0, &phonehash) != 0) { 866 752 printf(NAME ": Failed to create callback from mouse device\n"); … … 954 840 async_set_interrupt_received(interrupt_received); 955 841 956 /* Start fibril for checking on hot-plugged keyboards. */957 check_new_keyboards_in_background();958 959 842 return true; 960 843 } … … 976 859 if (!console_init(argv[1])) 977 860 return -1; 978 861 979 862 printf(NAME ": Accepting connections\n"); 980 863 async_manager(); -
uspace/srv/net/tl/udp/udp.c
r8426912a r08abd81 742 742 int socket_id; 743 743 size_t addrlen; 744 size_t size = 0;744 size_t size; 745 745 ipc_call_t answer; 746 746 size_t answer_count;
Note:
See TracChangeset
for help on using the changeset viewer.