~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/libps2.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/linux/libps2.h (Version linux-6.11.5) and /include/linux/libps2.h (Version linux-4.11.12)


  1 /* SPDX-License-Identifier: GPL-2.0-only */    << 
  2 #ifndef _LIBPS2_H                                   1 #ifndef _LIBPS2_H
  3 #define _LIBPS2_H                                   2 #define _LIBPS2_H
  4                                                     3 
  5 /*                                                  4 /*
  6  * Copyright (C) 1999-2002 Vojtech Pavlik           5  * Copyright (C) 1999-2002 Vojtech Pavlik
  7  * Copyright (C) 2004 Dmitry Torokhov               6  * Copyright (C) 2004 Dmitry Torokhov
                                                   >>   7  *
                                                   >>   8  * This program is free software; you can redistribute it and/or modify it
                                                   >>   9  * under the terms of the GNU General Public License version 2 as published by
                                                   >>  10  * the Free Software Foundation.
  8  */                                                11  */
  9                                                    12 
 10 #include <linux/bitops.h>                      << 
 11 #include <linux/interrupt.h>                   << 
 12 #include <linux/mutex.h>                       << 
 13 #include <linux/types.h>                       << 
 14 #include <linux/wait.h>                        << 
 15                                                << 
 16 struct ps2dev;                                 << 
 17                                                << 
 18 /**                                            << 
 19  * enum ps2_disposition - indicates how receiv << 
 20  * @PS2_PROCESS: pass to the main protocol han << 
 21  * @PS2_IGNORE: skip the byte                  << 
 22  * @PS2_ERROR: do not process the byte, abort  << 
 23  */                                            << 
 24 enum ps2_disposition {                         << 
 25         PS2_PROCESS,                           << 
 26         PS2_IGNORE,                            << 
 27         PS2_ERROR,                             << 
 28 };                                             << 
 29                                                    13 
 30 typedef enum ps2_disposition (*ps2_pre_receive !!  14 #define PS2_CMD_GETID           0x02f2
 31                                                !!  15 #define PS2_CMD_RESET_BAT       0x02ff
 32 typedef void (*ps2_receive_handler_t)(struct p !!  16 
 33                                                !!  17 #define PS2_RET_BAT             0xaa
 34 /**                                            !!  18 #define PS2_RET_ID              0x00
 35  * struct ps2dev - represents a device using P !!  19 #define PS2_RET_ACK             0xfa
 36  * @serio: a serio port used by the PS/2 devic !!  20 #define PS2_RET_NAK             0xfe
 37  * @cmd_mutex: a mutex ensuring that only one  !!  21 #define PS2_RET_ERR             0xfc
 38  * @wait: a waitqueue used to signal completio !!  22 
 39  * @flags: various internal flags indicating s !!  23 #define PS2_FLAG_ACK            1       /* Waiting for ACK/NAK */
 40  * @cmdbuf: buffer holding command response    !!  24 #define PS2_FLAG_CMD            2       /* Waiting for command to finish */
 41  * @cmdcnt: outstanding number of bytes of the !!  25 #define PS2_FLAG_CMD1           4       /* Waiting for the first byte of command response */
 42  * @nak: a byte transmitted by the device when !!  26 #define PS2_FLAG_WAITID         8       /* Command execiting is GET ID */
 43  * @pre_receive_handler: checks communication  !!  27 #define PS2_FLAG_NAK            16      /* Last transmission was NAKed */
 44  * (&enum ps2_disposition) of the received dat !!  28 
 45  * @receive_handler: main handler of particula << 
 46  *   or mouse protocol                         << 
 47  */                                            << 
 48 struct ps2dev {                                    29 struct ps2dev {
 49         struct serio *serio;                       30         struct serio *serio;
                                                   >>  31 
                                                   >>  32         /* Ensures that only one command is executing at a time */
 50         struct mutex cmd_mutex;                    33         struct mutex cmd_mutex;
                                                   >>  34 
                                                   >>  35         /* Used to signal completion from interrupt handler */
 51         wait_queue_head_t wait;                    36         wait_queue_head_t wait;
 52         unsigned long flags;                   << 
 53         u8 cmdbuf[8];                          << 
 54         u8 cmdcnt;                             << 
 55         u8 nak;                                << 
 56                                                    37 
 57         ps2_pre_receive_handler_t pre_receive_ !!  38         unsigned long flags;
 58         ps2_receive_handler_t receive_handler; !!  39         unsigned char cmdbuf[8];
                                                   >>  40         unsigned char cmdcnt;
                                                   >>  41         unsigned char nak;
 59 };                                                 42 };
 60                                                    43 
 61 void ps2_init(struct ps2dev *ps2dev, struct se !!  44 void ps2_init(struct ps2dev *ps2dev, struct serio *serio);
 62               ps2_pre_receive_handler_t pre_re !!  45 int ps2_sendbyte(struct ps2dev *ps2dev, unsigned char byte, int timeout);
 63               ps2_receive_handler_t receive_ha !!  46 void ps2_drain(struct ps2dev *ps2dev, int maxbytes, int timeout);
 64 int ps2_sendbyte(struct ps2dev *ps2dev, u8 byt << 
 65 void ps2_drain(struct ps2dev *ps2dev, size_t m << 
 66 void ps2_begin_command(struct ps2dev *ps2dev);     47 void ps2_begin_command(struct ps2dev *ps2dev);
 67 void ps2_end_command(struct ps2dev *ps2dev);       48 void ps2_end_command(struct ps2dev *ps2dev);
 68 int __ps2_command(struct ps2dev *ps2dev, u8 *p !!  49 int __ps2_command(struct ps2dev *ps2dev, unsigned char *param, int command);
 69 int ps2_command(struct ps2dev *ps2dev, u8 *par !!  50 int ps2_command(struct ps2dev *ps2dev, unsigned char *param, int command);
 70 int ps2_sliced_command(struct ps2dev *ps2dev,  !!  51 int ps2_handle_ack(struct ps2dev *ps2dev, unsigned char data);
 71 bool ps2_is_keyboard_id(u8 id);                !!  52 int ps2_handle_response(struct ps2dev *ps2dev, unsigned char data);
 72                                                !!  53 void ps2_cmd_aborted(struct ps2dev *ps2dev);
 73 irqreturn_t ps2_interrupt(struct serio *serio, !!  54 int ps2_is_keyboard_id(char id);
 74                                                    55 
 75 #endif /* _LIBPS2_H */                             56 #endif /* _LIBPS2_H */
 76                                                    57 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php