diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md deleted file mode 100755 index f09d98dde9597de75ffcdb237c2b580b8fffa3f9..0000000000000000000000000000000000000000 --- a/.gitee/ISSUE_TEMPLATE.zh-CN.md +++ /dev/null @@ -1,13 +0,0 @@ -### 该问题是怎么引起的? - - - -### 重现步骤 - - - -### 报错信息 - - - - diff --git a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md deleted file mode 100755 index 33948fdcb51264545ce5ae797f5310a1c06f871d..0000000000000000000000000000000000000000 --- a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md +++ /dev/null @@ -1,15 +0,0 @@ -### 相关的Issue - - -### 原因(目的、解决的问题等) - - -### 描述(做了什么,变更了什么) - - -### 测试用例(新增、改动、可能影响的功能) - - - - - diff --git a/COPYRIGHT b/COPYRIGHT old mode 100755 new mode 100644 diff --git a/LOCKS b/LOCKS old mode 100755 new mode 100644 diff --git a/MAINTAINERS b/MAINTAINERS old mode 100755 new mode 100644 diff --git a/README b/README old mode 100755 new mode 100644 diff --git a/README.OpenSource b/README.OpenSource new file mode 100755 index 0000000000000000000000000000000000000000..d59af12c0ec8465ea582c13c8a46632f0a35121c --- /dev/null +++ b/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name" : "FreeBSD", + "License" : "BSD 2-Clause License", + "License File" : "COPYRIGHT", + "Version Number" : "11.4", + "Owner" : "tonghaoyang1@huawei.com", + "Upstream URL" : "http://www.freebsd.org/", + "Description" : "FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms." + } +] diff --git a/UPDATING b/UPDATING old mode 100755 new mode 100644 diff --git a/stand/usb/usb_busdma_loader.c b/stand/usb/usb_busdma_loader.c index 10d4c0397618cad2c9907751c882768bf220ce84..bb315fabedd67542ef80e17cbb240c7c71c3a6df 100755 --- a/stand/usb/usb_busdma_loader.c +++ b/stand/usb/usb_busdma_loader.c @@ -27,7 +27,6 @@ #include #include "los_vm_iomap.h" #include "los_vm_map.h" -#include #include #include "implementation/global_implementation.h" diff --git a/sys/arm/arm/in_cksum.c b/sys/arm/arm/in_cksum.c old mode 100755 new mode 100644 diff --git a/sys/arm/include/_bus.h b/sys/arm/include/_bus.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/asm/barrier.h b/sys/compat/linuxkpi/common/include/asm/barrier.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/asm/io.h b/sys/compat/linuxkpi/common/include/asm/io.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/asm/page.h b/sys/compat/linuxkpi/common/include/asm/page.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/compat.h b/sys/compat/linuxkpi/common/include/linux/compat.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/ctype.h b/sys/compat/linuxkpi/common/include/linux/ctype.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/fcntl.h b/sys/compat/linuxkpi/common/include/linux/fcntl.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/icmp.h b/sys/compat/linuxkpi/common/include/linux/icmp.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/interrupt.h b/sys/compat/linuxkpi/common/include/linux/interrupt.h index 2a575cbbc7ef2a3e8ca98c62a36d5ffee2aa5cf1..dd1e64434aa6ec5e562197a56df7e0f2dbf691ad 100755 --- a/sys/compat/linuxkpi/common/include/linux/interrupt.h +++ b/sys/compat/linuxkpi/common/include/linux/interrupt.h @@ -34,7 +34,6 @@ #include "linux/kernel.h" #include "los_base.h" #include "linux/workqueue.h" -#include "asm/hal_platform_ints.h" #ifdef __cplusplus #if __cplusplus diff --git a/sys/compat/linuxkpi/common/include/linux/moduleparam.h b/sys/compat/linuxkpi/common/include/linux/moduleparam.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/pagemap.h b/sys/compat/linuxkpi/common/include/linux/pagemap.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/rtc.h b/sys/compat/linuxkpi/common/include/linux/rtc.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/stat.h b/sys/compat/linuxkpi/common/include/linux/stat.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/string.h b/sys/compat/linuxkpi/common/include/linux/string.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/tzdst.h b/sys/compat/linuxkpi/common/include/linux/tzdst.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/tzdst_pri.h b/sys/compat/linuxkpi/common/include/linux/tzdst_pri.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/wakelock.h b/sys/compat/linuxkpi/common/include/linux/wakelock.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/include/linux/zutil.h b/sys/compat/linuxkpi/common/include/linux/zutil.h old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/src/adp.c b/sys/compat/linuxkpi/common/src/adp.c old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/src/linux_completion.c b/sys/compat/linuxkpi/common/src/linux_completion.c old mode 100755 new mode 100644 index 1f58ddb0aad8afe6dcfcbdd985ed55e457f50491..2a13ba615b052091d0dab3bd8524581a05ffe98e --- a/sys/compat/linuxkpi/common/src/linux_completion.c +++ b/sys/compat/linuxkpi/common/src/linux_completion.c @@ -32,6 +32,7 @@ #include "linux/completion.h" #include "limits.h" #include "los_task_pri.h" +#include "los_sched_pri.h" #include "los_mp.h" #include "los_exc.h" @@ -77,7 +78,8 @@ void linux_complete(struct completion *x) SCHEDULER_LOCK(intSave); if (!LOS_ListEmpty(&x->comList)) { resumedTask = OS_TCB_FROM_PENDLIST(LOS_DL_LIST_FIRST(&(x->comList))); - OsTaskWake(resumedTask); + OsTaskWakeClearPendMask(resumedTask); + OsSchedTaskWake(resumedTask); SCHEDULER_UNLOCK(intSave); CompletionSchedule(); return; @@ -128,7 +130,8 @@ void linux_wait_for_completion(struct completion *x) return; } - (void)OsTaskWait(&x->comList, LOS_WAIT_FOREVER, TRUE); + OsTaskWaitSetPendMask(OS_TASK_WAIT_COMPLETE, (UINTPTR)x, LOS_WAIT_FOREVER); + (void)OsSchedTaskWait(&x->comList, LOS_WAIT_FOREVER, TRUE); SCHEDULER_UNLOCK(intSave); return; } @@ -172,7 +175,8 @@ unsigned long linux_wait_for_completion_timeout(struct completion *x, unsigned l return timeout; } - ret = OsTaskWait(&x->comList, timeout, TRUE); + OsTaskWaitSetPendMask(OS_TASK_WAIT_COMPLETE, (UINTPTR)x, timeout); + ret = OsSchedTaskWait(&x->comList, timeout, TRUE); if (ret == LOS_ERRNO_TSK_TIMEOUT) { SCHEDULER_UNLOCK(intSave); return 0; @@ -204,7 +208,8 @@ void linux_complete_all(struct completion *x) while (!LOS_ListEmpty(&x->comList)) { resumedTask = OS_TCB_FROM_PENDLIST(LOS_DL_LIST_FIRST(&(x->comList))); - OsTaskWake(resumedTask); + OsTaskWakeClearPendMask(resumedTask); + OsSchedTaskWake(resumedTask); } SCHEDULER_UNLOCK(intSave); CompletionSchedule(); diff --git a/sys/compat/linuxkpi/common/src/linux_hrtimer.c b/sys/compat/linuxkpi/common/src/linux_hrtimer.c old mode 100755 new mode 100644 index cd309dd3a03051bd6229606731eb464a0503815b..4fd269c359927d5ac850f6c3ed2316fe46a06c7c --- a/sys/compat/linuxkpi/common/src/linux_hrtimer.c +++ b/sys/compat/linuxkpi/common/src/linux_hrtimer.c @@ -31,9 +31,8 @@ #include "linux/hrtimer.h" #include "los_task_pri.h" -#include "los_hwi.h" -#include "asm/hal_platform_ints.h" #include "los_spinlock.h" +#include "target_config.h" #ifdef __cplusplus #if __cplusplus diff --git a/sys/compat/linuxkpi/common/src/linux_interrupt.c b/sys/compat/linuxkpi/common/src/linux_interrupt.c old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/src/linux_sched.c b/sys/compat/linuxkpi/common/src/linux_sched.c old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/src/linux_semaphore.c b/sys/compat/linuxkpi/common/src/linux_semaphore.c old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/src/linux_timer.c b/sys/compat/linuxkpi/common/src/linux_timer.c old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/src/linux_wakelock.c b/sys/compat/linuxkpi/common/src/linux_wakelock.c old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/src/linux_workqueue.c b/sys/compat/linuxkpi/common/src/linux_workqueue.c old mode 100755 new mode 100644 index ca210dfa79f3e6340ed58d6d65dbae6632f06d51..22bdcfbe9422d22db0d4cdd5fca9167be2cb3c40 --- a/sys/compat/linuxkpi/common/src/linux_workqueue.c +++ b/sys/compat/linuxkpi/common/src/linux_workqueue.c @@ -364,38 +364,35 @@ STATIC VOID DelayedWorkTimerFunc(unsigned long data) STATIC BOOL OsPerCpuSortLinkSearch(SortLinkAttribute *swtmrSortLink, OsSortLinkCond checkFunc, VOID *arg) { - UINT32 i; - SWTMR_CTRL_S *curSwtmr = NULL; - SortLinkList *listSorted = NULL; - LOS_DL_LIST *listObject = NULL; - - for (i = 0; i < OS_TSK_SORTLINK_LEN; i++) { - listObject = swtmrSortLink->sortLink + i; - if (LOS_ListEmpty(listObject)) { - continue; + LOS_DL_LIST *listObject = &swtmrSortLink->sortLink; + LOS_DL_LIST *list = listObject->pstNext; + + while (list != listObject) { + SortLinkList *listSorted = LOS_DL_LIST_ENTRY(list, SortLinkList, sortLinkNode); + SWTMR_CTRL_S *curSwtmr = LOS_DL_LIST_ENTRY(listSorted, SWTMR_CTRL_S, stSortList); + if (checkFunc(curSwtmr, arg)) { + return TRUE; } - listSorted = LOS_DL_LIST_ENTRY((listObject)->pstNext, SortLinkList, sortLinkNode); - do { - curSwtmr = LOS_DL_LIST_ENTRY(listSorted, SWTMR_CTRL_S, stSortList); - if (checkFunc(curSwtmr, arg)) { - return TRUE; - } - listSorted = LOS_DL_LIST_ENTRY(listSorted->sortLinkNode.pstNext, SortLinkList, sortLinkNode); - } while (&listSorted->sortLinkNode != (listObject)); + list = list->pstNext; } + return FALSE; } BOOL OsSortLinkSearch(OsSortLinkCond checkFunc, VOID *arg) { + UINT32 intSave; UINT32 i; - SortLinkAttribute *swtmrSortLink = NULL; for (i = 0; i < LOSCFG_KERNEL_CORE_NUM; i++) { - swtmrSortLink = &OsPercpuGetByID(i)->swtmrSortLink; + Percpu *cpu = OsPercpuGetByID(i); + SortLinkAttribute *swtmrSortLink = &OsPercpuGetByID(i)->swtmrSortLink; + LOS_SpinLockSave(&cpu->swtmrSortLinkSpin, &intSave); if (OsPerCpuSortLinkSearch(swtmrSortLink, checkFunc, arg)) { + LOS_SpinUnlockRestore(&cpu->swtmrSortLinkSpin, intSave); return TRUE; } + LOS_SpinUnlockRestore(&cpu->swtmrSortLinkSpin, intSave); } return FALSE; } @@ -619,4 +616,4 @@ void linux_destroy_workqueue(struct workqueue_struct *wq) #if __cplusplus } #endif -#endif \ No newline at end of file +#endif diff --git a/sys/compat/linuxkpi/common/src/prctl.c b/sys/compat/linuxkpi/common/src/prctl.c old mode 100755 new mode 100644 diff --git a/sys/compat/linuxkpi/common/src/tzdst.c b/sys/compat/linuxkpi/common/src/tzdst.c index a222e9b34025120d8c7ee40f4f035088c47b3654..fd37de606b4eb7929e06181626c0b2ff3a28e92c 100755 --- a/sys/compat/linuxkpi/common/src/tzdst.c +++ b/sys/compat/linuxkpi/common/src/tzdst.c @@ -29,13 +29,13 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "los_typedef.h" -#include "los_printf.h" #include "tzdst.h" #include "tzdst_pri.h" #include "stdio.h" #include "stdlib.h" #include "unistd.h" +#include "los_printf.h" +#include "los_typedef.h" #include "securec.h" #ifdef __cplusplus diff --git a/sys/crypto/rijndael/rijndael-alg-fst.c b/sys/crypto/rijndael/rijndael-alg-fst.c old mode 100755 new mode 100644 diff --git a/sys/crypto/rijndael/rijndael-api-fst.h b/sys/crypto/rijndael/rijndael-api-fst.h old mode 100755 new mode 100644 diff --git a/sys/crypto/rijndael/rijndael.h b/sys/crypto/rijndael/rijndael.h old mode 100755 new mode 100644 diff --git a/sys/crypto/rijndael/rijndael_local.h b/sys/crypto/rijndael/rijndael_local.h old mode 100755 new mode 100644 diff --git a/sys/crypto/sha2/sha256.h b/sys/crypto/sha2/sha256.h old mode 100755 new mode 100644 diff --git a/sys/dev/evdev/input-event-codes.h b/sys/dev/evdev/input-event-codes.h new file mode 100755 index 0000000000000000000000000000000000000000..f571080ea5d8fd05104207b34c891876b5d6c761 --- /dev/null +++ b/sys/dev/evdev/input-event-codes.h @@ -0,0 +1,855 @@ +/*- + * Copyright (c) 2016 Oleksandr Tymoshenko + * Copyright (c) 2015-2016 Vladimir Kondratyev + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: releng/11.4/sys/dev/evdev/input-event-codes.h 337290 2018-08-04 12:40:59Z wulf $ + */ + +#ifndef _EVDEV_INPUT_EVENT_CODES_H +#define _EVDEV_INPUT_EVENT_CODES_H + +/* + * Device properties and quirks + */ + +#define INPUT_PROP_POINTER 0x00 /* needs a pointer */ +#define INPUT_PROP_DIRECT 0x01 /* direct input devices */ +#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ +#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ +#define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ +#define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ +#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ + +#define INPUT_PROP_MAX 0x1f +#define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) + +/* + * Event types + */ + +#define EV_SYN 0x00 +#define EV_KEY 0x01 +#define EV_REL 0x02 +#define EV_ABS 0x03 +#define EV_MSC 0x04 +#define EV_SW 0x05 +#define EV_LED 0x11 +#define EV_SND 0x12 +#define EV_REP 0x14 +#define EV_FF 0x15 +#define EV_PWR 0x16 +#define EV_FF_STATUS 0x17 +#define EV_MAX 0x1f +#define EV_CNT (EV_MAX+1) + +/* + * Synchronization events. + */ + +#define SYN_REPORT 0 +#define SYN_CONFIG 1 +#define SYN_MT_REPORT 2 +#define SYN_DROPPED 3 +#define SYN_MAX 0xf +#define SYN_CNT (SYN_MAX+1) + +/* + * Keys and buttons + */ + +/* + * Abbreviations in the comments: + * AC - Application Control + * AL - Application Launch Button + * SC - System Control + */ + +#define KEY_RESERVED 0 +#define KEY_ESC 1 +#define KEY_1 2 +#define KEY_2 3 +#define KEY_3 4 +#define KEY_4 5 +#define KEY_5 6 +#define KEY_6 7 +#define KEY_7 8 +#define KEY_8 9 +#define KEY_9 10 +#define KEY_0 11 +#define KEY_MINUS 12 +#define KEY_EQUAL 13 +#define KEY_BACKSPACE 14 +#define KEY_TAB 15 +#define KEY_Q 16 +#define KEY_W 17 +#define KEY_E 18 +#define KEY_R 19 +#define KEY_T 20 +#define KEY_Y 21 +#define KEY_U 22 +#define KEY_I 23 +#define KEY_O 24 +#define KEY_P 25 +#define KEY_LEFTBRACE 26 +#define KEY_RIGHTBRACE 27 +#define KEY_ENTER 28 +#define KEY_LEFTCTRL 29 +#define KEY_A 30 +#define KEY_S 31 +#define KEY_D 32 +#define KEY_F 33 +#define KEY_G 34 +#define KEY_H 35 +#define KEY_J 36 +#define KEY_K 37 +#define KEY_L 38 +#define KEY_SEMICOLON 39 +#define KEY_APOSTROPHE 40 +#define KEY_GRAVE 41 +#define KEY_LEFTSHIFT 42 +#define KEY_BACKSLASH 43 +#define KEY_Z 44 +#define KEY_X 45 +#define KEY_C 46 +#define KEY_V 47 +#define KEY_B 48 +#define KEY_N 49 +#define KEY_M 50 +#define KEY_COMMA 51 +#define KEY_DOT 52 +#define KEY_SLASH 53 +#define KEY_RIGHTSHIFT 54 +#define KEY_KPASTERISK 55 +#define KEY_LEFTALT 56 +#define KEY_SPACE 57 +#define KEY_CAPSLOCK 58 +#define KEY_F1 59 +#define KEY_F2 60 +#define KEY_F3 61 +#define KEY_F4 62 +#define KEY_F5 63 +#define KEY_F6 64 +#define KEY_F7 65 +#define KEY_F8 66 +#define KEY_F9 67 +#define KEY_F10 68 +#define KEY_NUMLOCK 69 +#define KEY_SCROLLLOCK 70 +#define KEY_KP7 71 +#define KEY_KP8 72 +#define KEY_KP9 73 +#define KEY_KPMINUS 74 +#define KEY_KP4 75 +#define KEY_KP5 76 +#define KEY_KP6 77 +#define KEY_KPPLUS 78 +#define KEY_KP1 79 +#define KEY_KP2 80 +#define KEY_KP3 81 +#define KEY_KP0 82 +#define KEY_KPDOT 83 + +#define KEY_ZENKAKUHANKAKU 85 +#define KEY_102ND 86 +#define KEY_F11 87 +#define KEY_F12 88 +#define KEY_RO 89 +#define KEY_KATAKANA 90 +#define KEY_HIRAGANA 91 +#define KEY_HENKAN 92 +#define KEY_KATAKANAHIRAGANA 93 +#define KEY_MUHENKAN 94 +#define KEY_KPJPCOMMA 95 +#define KEY_KPENTER 96 +#define KEY_RIGHTCTRL 97 +#define KEY_KPSLASH 98 +#define KEY_SYSRQ 99 +#define KEY_RIGHTALT 100 +#define KEY_LINEFEED 101 +#define KEY_HOME 102 +#define KEY_UP 103 +#define KEY_PAGEUP 104 +#define KEY_LEFT 105 +#define KEY_RIGHT 106 +#define KEY_END 107 +#define KEY_DOWN 108 +#define KEY_PAGEDOWN 109 +#define KEY_INSERT 110 +#define KEY_DELETE 111 +#define KEY_MACRO 112 +#define KEY_MUTE 113 +#define KEY_VOLUMEDOWN 114 +#define KEY_VOLUMEUP 115 +#define KEY_POWER 116 /* SC System Power Down */ +#define KEY_KPEQUAL 117 +#define KEY_KPPLUSMINUS 118 +#define KEY_PAUSE 119 +#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ + +#define KEY_KPCOMMA 121 +#define KEY_HANGEUL 122 +#define KEY_HANGUEL KEY_HANGEUL +#define KEY_HANJA 123 +#define KEY_YEN 124 +#define KEY_LEFTMETA 125 +#define KEY_RIGHTMETA 126 +#define KEY_COMPOSE 127 + +#define KEY_STOP 128 /* AC Stop */ +#define KEY_AGAIN 129 +#define KEY_PROPS 130 /* AC Properties */ +#define KEY_UNDO 131 /* AC Undo */ +#define KEY_FRONT 132 +#define KEY_COPY 133 /* AC Copy */ +#define KEY_OPEN 134 /* AC Open */ +#define KEY_PASTE 135 /* AC Paste */ +#define KEY_FIND 136 /* AC Search */ +#define KEY_CUT 137 /* AC Cut */ +#define KEY_HELP 138 /* AL Integrated Help Center */ +#define KEY_MENU 139 /* Menu (show menu) */ +#define KEY_CALC 140 /* AL Calculator */ +#define KEY_SETUP 141 +#define KEY_SLEEP 142 /* SC System Sleep */ +#define KEY_WAKEUP 143 /* System Wake Up */ +#define KEY_FILE 144 /* AL Local Machine Browser */ +#define KEY_SENDFILE 145 +#define KEY_DELETEFILE 146 +#define KEY_XFER 147 +#define KEY_PROG1 148 +#define KEY_PROG2 149 +#define KEY_WWW 150 /* AL Internet Browser */ +#define KEY_MSDOS 151 +#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ +#define KEY_SCREENLOCK KEY_COFFEE +#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */ +#define KEY_DIRECTION KEY_ROTATE_DISPLAY +#define KEY_CYCLEWINDOWS 154 +#define KEY_MAIL 155 +#define KEY_BOOKMARKS 156 /* AC Bookmarks */ +#define KEY_COMPUTER 157 +#define KEY_BACK 158 /* AC Back */ +#define KEY_FORWARD 159 /* AC Forward */ +#define KEY_CLOSECD 160 +#define KEY_EJECTCD 161 +#define KEY_EJECTCLOSECD 162 +#define KEY_NEXTSONG 163 +#define KEY_PLAYPAUSE 164 +#define KEY_PREVIOUSSONG 165 +#define KEY_STOPCD 166 +#define KEY_RECORD 167 +#define KEY_REWIND 168 +#define KEY_PHONE 169 /* Media Select Telephone */ +#define KEY_ISO 170 +#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ +#define KEY_HOMEPAGE 172 /* AC Home */ +#define KEY_REFRESH 173 /* AC Refresh */ +#define KEY_EXIT 174 /* AC Exit */ +#define KEY_MOVE 175 +#define KEY_EDIT 176 +#define KEY_SCROLLUP 177 +#define KEY_SCROLLDOWN 178 +#define KEY_KPLEFTPAREN 179 +#define KEY_KPRIGHTPAREN 180 +#define KEY_NEW 181 /* AC New */ +#define KEY_REDO 182 /* AC Redo/Repeat */ + +#define KEY_F13 183 +#define KEY_F14 184 +#define KEY_F15 185 +#define KEY_F16 186 +#define KEY_F17 187 +#define KEY_F18 188 +#define KEY_F19 189 +#define KEY_F20 190 +#define KEY_F21 191 +#define KEY_F22 192 +#define KEY_F23 193 +#define KEY_F24 194 + +#define KEY_PLAYCD 200 +#define KEY_PAUSECD 201 +#define KEY_PROG3 202 +#define KEY_PROG4 203 +#define KEY_DASHBOARD 204 /* AL Dashboard */ +#define KEY_SUSPEND 205 +#define KEY_CLOSE 206 /* AC Close */ +#define KEY_PLAY 207 +#define KEY_FASTFORWARD 208 +#define KEY_BASSBOOST 209 +#define KEY_PRINT 210 /* AC Print */ +#define KEY_HP 211 +#define KEY_CAMERA 212 +#define KEY_SOUND 213 +#define KEY_QUESTION 214 +#define KEY_EMAIL 215 +#define KEY_CHAT 216 +#define KEY_SEARCH 217 +#define KEY_CONNECT 218 +#define KEY_FINANCE 219 /* AL Checkbook/Finance */ +#define KEY_SPORT 220 +#define KEY_SHOP 221 +#define KEY_ALTERASE 222 +#define KEY_CANCEL 223 /* AC Cancel */ +#define KEY_BRIGHTNESSDOWN 224 +#define KEY_BRIGHTNESSUP 225 +#define KEY_MEDIA 226 + +#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video + outputs (Monitor/LCD/TV-out/etc) */ +#define KEY_KBDILLUMTOGGLE 228 +#define KEY_KBDILLUMDOWN 229 +#define KEY_KBDILLUMUP 230 + +#define KEY_SEND 231 /* AC Send */ +#define KEY_REPLY 232 /* AC Reply */ +#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ +#define KEY_SAVE 234 /* AC Save */ +#define KEY_DOCUMENTS 235 + +#define KEY_BATTERY 236 + +#define KEY_BLUETOOTH 237 +#define KEY_WLAN 238 +#define KEY_UWB 239 + +#define KEY_UNKNOWN 240 + +#define KEY_VIDEO_NEXT 241 /* drive next video source */ +#define KEY_VIDEO_PREV 242 /* drive previous video source */ +#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ +#define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual + brightness control is off, + rely on ambient */ +#define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO +#define KEY_DISPLAY_OFF 245 /* display device to off state */ + +#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ +#define KEY_WIMAX KEY_WWAN +#define KEY_RFKILL 247 /* Key that controls all radios */ + +#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ + +/* Code 255 is reserved for special needs of AT keyboard driver */ + +#define BTN_MISC 0x100 +#define BTN_0 0x100 +#define BTN_1 0x101 +#define BTN_2 0x102 +#define BTN_3 0x103 +#define BTN_4 0x104 +#define BTN_5 0x105 +#define BTN_6 0x106 +#define BTN_7 0x107 +#define BTN_8 0x108 +#define BTN_9 0x109 + +#define BTN_MOUSE 0x110 +#define BTN_LEFT 0x110 +#define BTN_RIGHT 0x111 +#define BTN_MIDDLE 0x112 +#define BTN_SIDE 0x113 +#define BTN_EXTRA 0x114 +#define BTN_FORWARD 0x115 +#define BTN_BACK 0x116 +#define BTN_TASK 0x117 + +#define BTN_JOYSTICK 0x120 +#define BTN_TRIGGER 0x120 +#define BTN_THUMB 0x121 +#define BTN_THUMB2 0x122 +#define BTN_TOP 0x123 +#define BTN_TOP2 0x124 +#define BTN_PINKIE 0x125 +#define BTN_BASE 0x126 +#define BTN_BASE2 0x127 +#define BTN_BASE3 0x128 +#define BTN_BASE4 0x129 +#define BTN_BASE5 0x12a +#define BTN_BASE6 0x12b +#define BTN_DEAD 0x12f + +#define BTN_GAMEPAD 0x130 +#define BTN_SOUTH 0x130 +#define BTN_A BTN_SOUTH +#define BTN_EAST 0x131 +#define BTN_B BTN_EAST +#define BTN_C 0x132 +#define BTN_NORTH 0x133 +#define BTN_X BTN_NORTH +#define BTN_WEST 0x134 +#define BTN_Y BTN_WEST +#define BTN_Z 0x135 +#define BTN_TL 0x136 +#define BTN_TR 0x137 +#define BTN_TL2 0x138 +#define BTN_TR2 0x139 +#define BTN_SELECT 0x13a +#define BTN_START 0x13b +#define BTN_MODE 0x13c +#define BTN_THUMBL 0x13d +#define BTN_THUMBR 0x13e + +#define BTN_DIGI 0x140 +#define BTN_TOOL_PEN 0x140 +#define BTN_TOOL_RUBBER 0x141 +#define BTN_TOOL_BRUSH 0x142 +#define BTN_TOOL_PENCIL 0x143 +#define BTN_TOOL_AIRBRUSH 0x144 +#define BTN_TOOL_FINGER 0x145 +#define BTN_TOOL_MOUSE 0x146 +#define BTN_TOOL_LENS 0x147 +#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ +#define BTN_STYLUS3 0x149 +#define BTN_TOUCH 0x14a +#define BTN_STYLUS 0x14b +#define BTN_STYLUS2 0x14c +#define BTN_TOOL_DOUBLETAP 0x14d +#define BTN_TOOL_TRIPLETAP 0x14e +#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ + +#define BTN_WHEEL 0x150 +#define BTN_GEAR_DOWN 0x150 +#define BTN_GEAR_UP 0x151 + +#define KEY_OK 0x160 +#define KEY_SELECT 0x161 +#define KEY_GOTO 0x162 +#define KEY_CLEAR 0x163 +#define KEY_POWER2 0x164 +#define KEY_OPTION 0x165 +#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ +#define KEY_TIME 0x167 +#define KEY_VENDOR 0x168 +#define KEY_ARCHIVE 0x169 +#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ +#define KEY_CHANNEL 0x16b +#define KEY_FAVORITES 0x16c +#define KEY_EPG 0x16d +#define KEY_PVR 0x16e /* Media Select Home */ +#define KEY_MHP 0x16f +#define KEY_LANGUAGE 0x170 +#define KEY_TITLE 0x171 +#define KEY_SUBTITLE 0x172 +#define KEY_ANGLE 0x173 +#define KEY_ZOOM 0x174 +#define KEY_MODE 0x175 +#define KEY_KEYBOARD 0x176 +#define KEY_SCREEN 0x177 +#define KEY_PC 0x178 /* Media Select Computer */ +#define KEY_TV 0x179 /* Media Select TV */ +#define KEY_TV2 0x17a /* Media Select Cable */ +#define KEY_VCR 0x17b /* Media Select VCR */ +#define KEY_VCR2 0x17c /* VCR Plus */ +#define KEY_SAT 0x17d /* Media Select Satellite */ +#define KEY_SAT2 0x17e +#define KEY_CD 0x17f /* Media Select CD */ +#define KEY_TAPE 0x180 /* Media Select Tape */ +#define KEY_RADIO 0x181 +#define KEY_TUNER 0x182 /* Media Select Tuner */ +#define KEY_PLAYER 0x183 +#define KEY_TEXT 0x184 +#define KEY_DVD 0x185 /* Media Select DVD */ +#define KEY_AUX 0x186 +#define KEY_MP3 0x187 +#define KEY_AUDIO 0x188 /* AL Audio Browser */ +#define KEY_VIDEO 0x189 /* AL Movie Browser */ +#define KEY_DIRECTORY 0x18a +#define KEY_LIST 0x18b +#define KEY_MEMO 0x18c /* Media Select Messages */ +#define KEY_CALENDAR 0x18d +#define KEY_RED 0x18e +#define KEY_GREEN 0x18f +#define KEY_YELLOW 0x190 +#define KEY_BLUE 0x191 +#define KEY_CHANNELUP 0x192 /* Channel Increment */ +#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ +#define KEY_FIRST 0x194 +#define KEY_LAST 0x195 /* Recall Last */ +#define KEY_AB 0x196 +#define KEY_NEXT 0x197 +#define KEY_RESTART 0x198 +#define KEY_SLOW 0x199 +#define KEY_SHUFFLE 0x19a +#define KEY_BREAK 0x19b +#define KEY_PREVIOUS 0x19c +#define KEY_DIGITS 0x19d +#define KEY_TEEN 0x19e +#define KEY_TWEN 0x19f +#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ +#define KEY_GAMES 0x1a1 /* Media Select Games */ +#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ +#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ +#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ +#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ +#define KEY_EDITOR 0x1a6 /* AL Text Editor */ +#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ +#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ +#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ +#define KEY_DATABASE 0x1aa /* AL Database App */ +#define KEY_NEWS 0x1ab /* AL Newsreader */ +#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ +#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ +#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ +#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ +#define KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE +#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ +#define KEY_LOGOFF 0x1b1 /* AL Logoff */ + +#define KEY_DOLLAR 0x1b2 +#define KEY_EURO 0x1b3 + +#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ +#define KEY_FRAMEFORWARD 0x1b5 +#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ +#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ +#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ +#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ +#define KEY_IMAGES 0x1ba /* AL Image Browser */ + +#define KEY_DEL_EOL 0x1c0 +#define KEY_DEL_EOS 0x1c1 +#define KEY_INS_LINE 0x1c2 +#define KEY_DEL_LINE 0x1c3 + +#define KEY_FN 0x1d0 +#define KEY_FN_ESC 0x1d1 +#define KEY_FN_F1 0x1d2 +#define KEY_FN_F2 0x1d3 +#define KEY_FN_F3 0x1d4 +#define KEY_FN_F4 0x1d5 +#define KEY_FN_F5 0x1d6 +#define KEY_FN_F6 0x1d7 +#define KEY_FN_F7 0x1d8 +#define KEY_FN_F8 0x1d9 +#define KEY_FN_F9 0x1da +#define KEY_FN_F10 0x1db +#define KEY_FN_F11 0x1dc +#define KEY_FN_F12 0x1dd +#define KEY_FN_1 0x1de +#define KEY_FN_2 0x1df +#define KEY_FN_D 0x1e0 +#define KEY_FN_E 0x1e1 +#define KEY_FN_F 0x1e2 +#define KEY_FN_S 0x1e3 +#define KEY_FN_B 0x1e4 + +#define KEY_BRL_DOT1 0x1f1 +#define KEY_BRL_DOT2 0x1f2 +#define KEY_BRL_DOT3 0x1f3 +#define KEY_BRL_DOT4 0x1f4 +#define KEY_BRL_DOT5 0x1f5 +#define KEY_BRL_DOT6 0x1f6 +#define KEY_BRL_DOT7 0x1f7 +#define KEY_BRL_DOT8 0x1f8 +#define KEY_BRL_DOT9 0x1f9 +#define KEY_BRL_DOT10 0x1fa + +#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ +#define KEY_NUMERIC_1 0x201 /* and other keypads */ +#define KEY_NUMERIC_2 0x202 +#define KEY_NUMERIC_3 0x203 +#define KEY_NUMERIC_4 0x204 +#define KEY_NUMERIC_5 0x205 +#define KEY_NUMERIC_6 0x206 +#define KEY_NUMERIC_7 0x207 +#define KEY_NUMERIC_8 0x208 +#define KEY_NUMERIC_9 0x209 +#define KEY_NUMERIC_STAR 0x20a +#define KEY_NUMERIC_POUND 0x20b +#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */ +#define KEY_NUMERIC_B 0x20d +#define KEY_NUMERIC_C 0x20e +#define KEY_NUMERIC_D 0x20f + +#define KEY_CAMERA_FOCUS 0x210 +#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ + +#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ +#define KEY_TOUCHPAD_ON 0x213 +#define KEY_TOUCHPAD_OFF 0x214 + +#define KEY_CAMERA_ZOOMIN 0x215 +#define KEY_CAMERA_ZOOMOUT 0x216 +#define KEY_CAMERA_UP 0x217 +#define KEY_CAMERA_DOWN 0x218 +#define KEY_CAMERA_LEFT 0x219 +#define KEY_CAMERA_RIGHT 0x21a + +#define KEY_ATTENDANT_ON 0x21b +#define KEY_ATTENDANT_OFF 0x21c +#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ +#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ + +#define BTN_DPAD_UP 0x220 +#define BTN_DPAD_DOWN 0x221 +#define BTN_DPAD_LEFT 0x222 +#define BTN_DPAD_RIGHT 0x223 + +#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ +#define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ + +#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ +#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ +#define KEY_JOURNAL 0x242 /* AL Log/Journal/Timecard */ +#define KEY_CONTROLPANEL 0x243 /* AL Control Panel */ +#define KEY_APPSELECT 0x244 /* AL Select Task/Application */ +#define KEY_SCREENSAVER 0x245 /* AL Screen Saver */ +#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ +#define KEY_ASSISTANT 0x247 /* AL Context-aware desktop assistant */ + +#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ +#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ + +#define KEY_KBDINPUTASSIST_PREV 0x260 +#define KEY_KBDINPUTASSIST_NEXT 0x261 +#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 +#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 +#define KEY_KBDINPUTASSIST_ACCEPT 0x264 +#define KEY_KBDINPUTASSIST_CANCEL 0x265 + +/* Diagonal movement keys */ +#define KEY_RIGHT_UP 0x266 +#define KEY_RIGHT_DOWN 0x267 +#define KEY_LEFT_UP 0x268 +#define KEY_LEFT_DOWN 0x269 + +#define KEY_ROOT_MENU 0x26a /* Show Device's Root Menu */ +/* Show Top Menu of the Media (e.g. DVD) */ +#define KEY_MEDIA_TOP_MENU 0x26b +#define KEY_NUMERIC_11 0x26c +#define KEY_NUMERIC_12 0x26d +/* + * Toggle Audio Description: refers to an audio service that helps blind and + * visually impaired consumers understand the action in a program. Note: in + * some countries this is referred to as "Video Description". + */ +#define KEY_AUDIO_DESC 0x26e +#define KEY_3D_MODE 0x26f +#define KEY_NEXT_FAVORITE 0x270 +#define KEY_STOP_RECORD 0x271 +#define KEY_PAUSE_RECORD 0x272 +#define KEY_VOD 0x273 /* Video on Demand */ +#define KEY_UNMUTE 0x274 +#define KEY_FASTREVERSE 0x275 +#define KEY_SLOWREVERSE 0x276 +/* + * Control a data application associated with the currently viewed channel, + * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.) + */ +#define KEY_DATA 0x277 +#define KEY_ONSCREEN_KEYBOARD 0x278 + +#define BTN_TRIGGER_HAPPY 0x2c0 +#define BTN_TRIGGER_HAPPY1 0x2c0 +#define BTN_TRIGGER_HAPPY2 0x2c1 +#define BTN_TRIGGER_HAPPY3 0x2c2 +#define BTN_TRIGGER_HAPPY4 0x2c3 +#define BTN_TRIGGER_HAPPY5 0x2c4 +#define BTN_TRIGGER_HAPPY6 0x2c5 +#define BTN_TRIGGER_HAPPY7 0x2c6 +#define BTN_TRIGGER_HAPPY8 0x2c7 +#define BTN_TRIGGER_HAPPY9 0x2c8 +#define BTN_TRIGGER_HAPPY10 0x2c9 +#define BTN_TRIGGER_HAPPY11 0x2ca +#define BTN_TRIGGER_HAPPY12 0x2cb +#define BTN_TRIGGER_HAPPY13 0x2cc +#define BTN_TRIGGER_HAPPY14 0x2cd +#define BTN_TRIGGER_HAPPY15 0x2ce +#define BTN_TRIGGER_HAPPY16 0x2cf +#define BTN_TRIGGER_HAPPY17 0x2d0 +#define BTN_TRIGGER_HAPPY18 0x2d1 +#define BTN_TRIGGER_HAPPY19 0x2d2 +#define BTN_TRIGGER_HAPPY20 0x2d3 +#define BTN_TRIGGER_HAPPY21 0x2d4 +#define BTN_TRIGGER_HAPPY22 0x2d5 +#define BTN_TRIGGER_HAPPY23 0x2d6 +#define BTN_TRIGGER_HAPPY24 0x2d7 +#define BTN_TRIGGER_HAPPY25 0x2d8 +#define BTN_TRIGGER_HAPPY26 0x2d9 +#define BTN_TRIGGER_HAPPY27 0x2da +#define BTN_TRIGGER_HAPPY28 0x2db +#define BTN_TRIGGER_HAPPY29 0x2dc +#define BTN_TRIGGER_HAPPY30 0x2dd +#define BTN_TRIGGER_HAPPY31 0x2de +#define BTN_TRIGGER_HAPPY32 0x2df +#define BTN_TRIGGER_HAPPY33 0x2e0 +#define BTN_TRIGGER_HAPPY34 0x2e1 +#define BTN_TRIGGER_HAPPY35 0x2e2 +#define BTN_TRIGGER_HAPPY36 0x2e3 +#define BTN_TRIGGER_HAPPY37 0x2e4 +#define BTN_TRIGGER_HAPPY38 0x2e5 +#define BTN_TRIGGER_HAPPY39 0x2e6 +#define BTN_TRIGGER_HAPPY40 0x2e7 + +/* We avoid low common keys in module aliases so they don't get huge. */ +#define KEY_MIN_INTERESTING KEY_MUTE +#define KEY_MAX 0x2ff +#define KEY_CNT (KEY_MAX+1) + +/* + * Relative axes + */ + +#define REL_X 0x00 +#define REL_Y 0x01 +#define REL_Z 0x02 +#define REL_RX 0x03 +#define REL_RY 0x04 +#define REL_RZ 0x05 +#define REL_HWHEEL 0x06 +#define REL_DIAL 0x07 +#define REL_WHEEL 0x08 +#define REL_MISC 0x09 +#define REL_MAX 0x0f +#define REL_CNT (REL_MAX+1) + +/* + * Absolute axes + */ + +#define ABS_X 0x00 +#define ABS_Y 0x01 +#define ABS_Z 0x02 +#define ABS_RX 0x03 +#define ABS_RY 0x04 +#define ABS_RZ 0x05 +#define ABS_THROTTLE 0x06 +#define ABS_RUDDER 0x07 +#define ABS_WHEEL 0x08 +#define ABS_GAS 0x09 +#define ABS_BRAKE 0x0a +#define ABS_HAT0X 0x10 +#define ABS_HAT0Y 0x11 +#define ABS_HAT1X 0x12 +#define ABS_HAT1Y 0x13 +#define ABS_HAT2X 0x14 +#define ABS_HAT2Y 0x15 +#define ABS_HAT3X 0x16 +#define ABS_HAT3Y 0x17 +#define ABS_PRESSURE 0x18 +#define ABS_DISTANCE 0x19 +#define ABS_TILT_X 0x1a +#define ABS_TILT_Y 0x1b +#define ABS_TOOL_WIDTH 0x1c + +#define ABS_VOLUME 0x20 + +#define ABS_MISC 0x28 + +#define ABS_MT_SLOT 0x2f /* MT slot being modified */ +#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ +#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ +#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ +#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ +#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ +#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ +#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ +#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ +#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ +#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ +#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ +#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */ +#define ABS_MT_TOOL_X 0x3c /* Center X tool position */ +#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ + +#define ABS_MAX 0x3f +#define ABS_CNT (ABS_MAX+1) + +/* + * Switch events + */ + +#define SW_LID 0x00 /* set = lid shut */ +#define SW_TABLET_MODE 0x01 /* set = tablet mode */ +#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ +#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" + set = radio enabled */ +#define SW_RADIO SW_RFKILL_ALL /* deprecated */ +#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ +#define SW_DOCK 0x05 /* set = plugged into dock */ +#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ +#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ +#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ +#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */ +#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */ +#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ +#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ +#define SW_LINEIN_INSERT 0x0d /* set = inserted */ +#define SW_MUTE_DEVICE 0x0e /* set = device disabled */ +#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ +#define SW_MAX 0x0f +#define SW_CNT (SW_MAX+1) + +/* + * Misc events + */ + +#define MSC_SERIAL 0x00 +#define MSC_PULSELED 0x01 +#define MSC_GESTURE 0x02 +#define MSC_RAW 0x03 +#define MSC_SCAN 0x04 +#define MSC_TIMESTAMP 0x05 +#define MSC_MAX 0x07 +#define MSC_CNT (MSC_MAX+1) + +/* + * LEDs + */ + +#define LED_NUML 0x00 +#define LED_CAPSL 0x01 +#define LED_SCROLLL 0x02 +#define LED_COMPOSE 0x03 +#define LED_KANA 0x04 +#define LED_SLEEP 0x05 +#define LED_SUSPEND 0x06 +#define LED_MUTE 0x07 +#define LED_MISC 0x08 +#define LED_MAIL 0x09 +#define LED_CHARGING 0x0a +#define LED_MAX 0x0f +#define LED_CNT (LED_MAX+1) + +/* + * Autorepeat values + */ + +#define REP_DELAY 0x00 +#define REP_PERIOD 0x01 +#define REP_MAX 0x01 +#define REP_CNT (REP_MAX+1) + +/* + * Sounds + */ + +#define SND_CLICK 0x00 +#define SND_BELL 0x01 +#define SND_TONE 0x02 +#define SND_MAX 0x07 +#define SND_CNT (SND_MAX+1) + +#endif /* _EVDEV_INPUT_EVENT_CODES_H */ diff --git a/sys/dev/random/hash.h b/sys/dev/random/hash.h old mode 100755 new mode 100644 diff --git a/sys/dev/random/randomdev.h b/sys/dev/random/randomdev.h old mode 100755 new mode 100644 diff --git a/sys/dev/random/uint128.h b/sys/dev/random/uint128.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/controller/ehci.c b/sys/dev/usb/controller/ehci.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/controller/ehci.h b/sys/dev/usb/controller/ehci.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/controller/usb_controller.c b/sys/dev/usb/controller/usb_controller.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/controller/xhci.c b/sys/dev/usb/controller/xhci.c old mode 100755 new mode 100644 index 6a8a6a9276a110871bc53819e833c51dd28fa000..aa423aef5799db6b1ca7876450474a3ae81bea81 --- a/sys/dev/usb/controller/xhci.c +++ b/sys/dev/usb/controller/xhci.c @@ -62,10 +62,14 @@ static int xhcictlstep = 0; #define xhcictlstep 0 #endif -#ifndef USB_DEBUG_VAR +#undef USB_DEBUG_VAR #define USB_DEBUG_VAR xhcidebug + +#ifdef LOSCFG_USB_DEBUG +static int xhcidebug = 0; #endif + #define XHCI_INTR_ENDPT 1 #define XHCI_DO_CMD_TIMEOUT 1000 diff --git a/sys/dev/usb/controller/xhci.h b/sys/dev/usb/controller/xhci.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/controller/xhci_pci.c b/sys/dev/usb/controller/xhci_pci.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/controller/xhcireg.h b/sys/dev/usb/controller/xhcireg.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/_macro_ref.h b/sys/dev/usb/implementation/_macro_ref.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/_thread_ref.h b/sys/dev/usb/implementation/_thread_ref.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/_types_ref.h b/sys/dev/usb/implementation/_types_ref.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/freebsd_sys.h b/sys/dev/usb/implementation/freebsd_sys.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/freebsd_usb.h b/sys/dev/usb/implementation/freebsd_usb.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/global_implementation.h b/sys/dev/usb/implementation/global_implementation.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/usb_api_pri.h b/sys/dev/usb/implementation/usb_api_pri.h index 9448d713a18b19b8a7128e4bd8f7e2f318a6d1d5..a6d459cb29c1c37a3d85d35e59ffd5441bc59a6a 100755 --- a/sys/dev/usb/implementation/usb_api_pri.h +++ b/sys/dev/usb/implementation/usb_api_pri.h @@ -84,7 +84,7 @@ extern struct driver_module_data umass_uhub_driver_mod; extern struct driver_module_data usb_linux_uhub_driver_mod; #endif -#ifdef LOSCFG_DRIVERS_USB_HID_CLASS +#if defined (LOSCFG_DRIVERS_USB_HID_CLASS) && defined (LOSCFG_DRIVERS_HDF_INPUT) extern struct driver_module_data uhid_uhub_driver_mod; #endif diff --git a/sys/dev/usb/implementation/usb_btree.c b/sys/dev/usb/implementation/usb_btree.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/usb_btree.h b/sys/dev/usb/implementation/usb_btree.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/usb_init.c b/sys/dev/usb/implementation/usb_init.c index f2c3dd42ecb65b397d363be0ebff447a9bc6b3f4..d738d81a3a5552bf91828580a9c3b1ff79bd561f 100755 --- a/sys/dev/usb/implementation/usb_init.c +++ b/sys/dev/usb/implementation/usb_init.c @@ -92,7 +92,7 @@ static struct driver_module_data* usb_driver_mode_list[] = { &usb_linux_uhub_driver_mod, #endif -#ifdef LOSCFG_DRIVERS_USB_HID_CLASS +#if defined (LOSCFG_DRIVERS_USB_HID_CLASS) && defined (LOSCFG_DRIVERS_HDF_INPUT) &uhid_uhub_driver_mod, #endif NULL diff --git a/sys/dev/usb/implementation/usb_init.h b/sys/dev/usb/implementation/usb_init.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/usb_version.c b/sys/dev/usb/implementation/usb_version.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/implementation/usbdevs.h b/sys/dev/usb/implementation/usbdevs.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/input/uhid.c b/sys/dev/usb/input/uhid.c index 2f64b916f1be3ef9206ee61adaa690595081c5f5..f268cbb90588ebe33e90009e110885b9880ba50e 100755 --- a/sys/dev/usb/input/uhid.c +++ b/sys/dev/usb/input/uhid.c @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD: releng/11.4/sys/dev/usb/input/uhid.c 331722 2018-03-29 02:50 #include "implementation/global_implementation.h" #include "input/usb_rdesc.h" #include "implementation/usbdevs.h" +#include "event_hub.h" #undef USB_DEBUG_VAR #define USB_DEBUG_VAR uhid_debug @@ -55,6 +56,11 @@ static int uhid_debug = 0; #define UHID_BSIZE 1024 /* bytes, buffer size */ #define UHID_FRAME_NUM 50 /* bytes, frame number */ +#define MOUSE_DATA_LEN 4 +#define BTN_LEFT_VALUE(v) ((v) & 0x01) +#define BTN_RIGHT_VALUE(v) (((v) & 0x02)>>1) +#define BTN_MIDDLE_VALUE(v) (((v) & 0x04)>>2) + enum { UHID_INTR_DT_WR, UHID_INTR_DT_RD, @@ -75,6 +81,8 @@ struct uhid_softc { uint32_t sc_osize; uint32_t sc_fsize; + InputDevice *input_dev; + uint16_t sc_repdesc_size; uint8_t sc_iface_no; @@ -151,6 +159,33 @@ tr_setup: } } +void report_event(InputDevice *input_dev, uint32_t type, uint32_t code, int32_t value) +{ + DPRINTF("%s type = %u, code = %u, value = %d\n", input_dev->devName, type, code, value); + if (type == EV_SYN || type == EV_KEY) { + PushOnePackage(input_dev, type, code, value); + } else if (value) { + PushOnePackage(input_dev, type, code, value); + } +} + +void mouse_report_events(InputDevice *input_dev, void *buffer, int len) +{ + if (len != MOUSE_DATA_LEN) { + DPRINTF("%s: invalid data len = %d\n", __func__, len); + return; + } + + const char *buf = buffer; + report_event(input_dev, EV_KEY, BTN_LEFT, BTN_LEFT_VALUE((unsigned char)buf[0])); + report_event(input_dev, EV_KEY, BTN_RIGHT, BTN_RIGHT_VALUE((unsigned char)buf[0])); + report_event(input_dev, EV_KEY, BTN_MIDDLE, BTN_MIDDLE_VALUE((unsigned char)buf[0])); + report_event(input_dev, EV_REL, REL_X, buf[1]); + report_event(input_dev, EV_REL, REL_Y, buf[2]); + report_event(input_dev, EV_REL, REL_WHEEL, buf[3]); + report_event(input_dev, EV_SYN, SYN_REPORT, 0); +} + static void uhid_intr_read_callback(struct usb_xfer *xfer, usb_error_t error) { @@ -158,44 +193,27 @@ uhid_intr_read_callback(struct usb_xfer *xfer, usb_error_t error) struct usb_page_cache *pc; int actlen; + DPRINTF("enter state of xfer is %u!\n", USB_GET_STATE(xfer)); + usbd_xfer_status(xfer, &actlen, NULL, NULL, NULL); switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: - DPRINTF("transferred!\n"); - pc = usbd_xfer_get_frame(xfer, 0); - - /* - * If the ID byte is non zero we allow descriptors - * having multiple sizes: - */ - if ((actlen >= (int)sc->sc_isize) || - ((actlen > 0) && (sc->sc_iid != 0))) { - /* limit report length to the maximum */ - if (actlen > (int)sc->sc_isize) - actlen = sc->sc_isize; - usb_fifo_put_data(sc->sc_fifo.fp[USB_FIFO_RX], pc, - 0, actlen, 1); - } else { - /* ignore it */ - DPRINTF("ignored transfer, %d bytes\n", actlen); + if (sc->input_dev && sc->input_dev->devType == INDEV_TYPE_MOUSE) { + mouse_report_events(sc->input_dev, pc->buffer, actlen); } case USB_ST_SETUP: -re_submit: - if (usb_fifo_put_bytes_max( - sc->sc_fifo.fp[USB_FIFO_RX]) != 0) { - usbd_xfer_set_frame_len(xfer, 0, sc->sc_isize); - usbd_transfer_submit(xfer); - } + usbd_xfer_set_frame_len(xfer, 0, sc->sc_isize); + usbd_transfer_submit(xfer); return; - default: /* Error */ + default: if (error != USB_ERR_CANCELLED) { - /* try to clear stall first */ usbd_xfer_set_stall(xfer); - goto re_submit; + usbd_xfer_set_frame_len(xfer, 0, sc->sc_isize); + usbd_transfer_submit(xfer); } return; } @@ -293,6 +311,8 @@ uhid_read_callback(struct usb_xfer *xfer, usb_error_t error) struct usb_device_request req; struct usb_page_cache *pc; + DPRINTF("enter state of xfer is %u!\n", USB_GET_STATE(xfer)); + pc = usbd_xfer_get_frame(xfer, 0); switch (USB_GET_STATE(xfer)) { @@ -696,6 +716,7 @@ uhid_attach(device_t dev) struct uhid_softc *sc = device_get_softc(dev); int unit = device_get_unit(dev); int error = 0; + int32_t ret; DPRINTFN(10, "sc=%p\n", sc); @@ -824,6 +845,30 @@ uhid_attach(device_t dev) goto detach; } + sc->input_dev = (InputDevice*)zalloc(sizeof(InputDevice)); + if (sc->input_dev) { + if (uaa->info.bInterfaceProtocol == UIPROTO_MOUSE) { + sc->input_dev->devType = INDEV_TYPE_MOUSE; + sc->input_dev->devName = "mouse"; + } else { + sc->input_dev->devType = INDEV_TYPE_UNKNOWN; + sc->input_dev->devName = "other"; + } + + ret = RegisterInputDevice(sc->input_dev); + if (ret != HDF_SUCCESS) { + DPRINTF("%s register failed, ret = %d!\n", sc->input_dev->devName, ret); + free(sc->input_dev); + sc->input_dev = NULL; + } else if (sc->input_dev->devType == INDEV_TYPE_MOUSE) { + DPRINTF("mouse register success!\n"); + mtx_lock(&sc->sc_mtx); + sc->sc_flags &= ~UHID_FLAG_IMMED; + usbd_transfer_start(sc->sc_xfer[UHID_INTR_DT_RD]); + mtx_unlock(&sc->sc_mtx); + } + } + return (0); /* success */ detach: @@ -836,6 +881,18 @@ uhid_detach(device_t dev) { struct uhid_softc *sc = device_get_softc(dev); + DPRINTF("enter\n"); + + if (sc->input_dev) { + if (sc->input_dev->devType == INDEV_TYPE_MOUSE) { + usbd_transfer_stop(sc->sc_xfer[UHID_INTR_DT_RD]); + } + + UnregisterInputDevice(sc->input_dev); + free(sc->input_dev); + sc->input_dev = NULL; + } + usb_fifo_detach(&sc->sc_fifo); usbd_transfer_unsetup(sc->sc_xfer, UHID_N_TRANSFER); diff --git a/sys/dev/usb/input/usb_rdesc.h b/sys/dev/usb/input/usb_rdesc.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/net/if_axereg.h b/sys/dev/usb/net/if_axereg.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/net/if_axgereg.h b/sys/dev/usb/net/if_axgereg.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/net/if_cdcereg.h b/sys/dev/usb/net/if_cdcereg.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/net/if_urndisreg.h b/sys/dev/usb/net/if_urndisreg.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/net/usb_eth_drv.c b/sys/dev/usb/net/usb_eth_drv.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/net/usb_eth_drv.h b/sys/dev/usb/net/usb_eth_drv.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/net/usb_ethernet.h b/sys/dev/usb/net/usb_ethernet.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/quirk/usb_quirk.h b/sys/dev/usb/quirk/usb_quirk.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/serial/u3g.c b/sys/dev/usb/serial/u3g.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/serial/usb_serial.c b/sys/dev/usb/serial/usb_serial.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/serial/usb_serial.h b/sys/dev/usb/serial/usb_serial.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/storage/umass.c b/sys/dev/usb/storage/umass.c old mode 100755 new mode 100644 index 1f7fd4cc824c3654fafbd7b39453ea87f1db884d..f8a39823cd78e3d90f61cab67d8015116da4a63e --- a/sys/dev/usb/storage/umass.c +++ b/sys/dev/usb/storage/umass.c @@ -1681,7 +1681,7 @@ umass_command_start(struct umass_softc *sc, uint8_t dir, } (void)LOS_EventRead(&sc->sc_event, 0xFF, - LOS_WAITMODE_OR|LOS_WAITMODE_CLR, 1000); + LOS_WAITMODE_OR | LOS_WAITMODE_CLR, 10 * LOSCFG_BASE_CORE_TICK_PER_SECOND); /* 10 seconds. */ return (0); } diff --git a/sys/dev/usb/usb.h b/sys/dev/usb/usb.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_bus.h b/sys/dev/usb/usb_bus.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_busdma.h b/sys/dev/usb/usb_busdma.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_cdc.h b/sys/dev/usb/usb_cdc.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_controller.h b/sys/dev/usb/usb_controller.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_core.c b/sys/dev/usb/usb_core.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_generic.h b/sys/dev/usb/usb_generic.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_hub.h b/sys/dev/usb/usb_hub.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_if.c b/sys/dev/usb/usb_if.c old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_if.h b/sys/dev/usb/usb_if.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_mbuf.h b/sys/dev/usb/usb_mbuf.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_request.h b/sys/dev/usb/usb_request.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_transfer.h b/sys/dev/usb/usb_transfer.h old mode 100755 new mode 100644 diff --git a/sys/dev/usb/usb_util.h b/sys/dev/usb/usb_util.h old mode 100755 new mode 100644 diff --git a/sys/kern/bus_if.c b/sys/kern/bus_if.c old mode 100755 new mode 100644 diff --git a/sys/kern/bus_if.h b/sys/kern/bus_if.h old mode 100755 new mode 100644 diff --git a/sys/kern/device_if.c b/sys/kern/device_if.c old mode 100755 new mode 100644 diff --git a/sys/kern/device_if.h b/sys/kern/device_if.h old mode 100755 new mode 100644 diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index 7a3eb1c67f672fd7e76c132aa83223e30bbaa03c..ebece489c2f1f8b55954ee60d0d944b7da66f41f 100755 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -326,6 +326,9 @@ devclass_find_internal(const char *classname, const char *parentname, if (parentname && dc && !dc->parent && strcmp(classname, parentname) != 0) { dc->parent = devclass_find_internal(parentname, NULL, TRUE); + if (dc->parent == NULL) { + return (NULL); + } dc->parent->flags = (unsigned int)dc->parent->flags | DC_HAS_CHILDREN; } diff --git a/sys/libkern/crc32.c b/sys/libkern/crc32.c old mode 100755 new mode 100644 diff --git a/sys/sys/queue.h b/sys/sys/queue.h old mode 100755 new mode 100644