Annotation of tme/serial/serial-ms.h, revision 1.1.1.1

1.1       root        1: /* $Id: serial-ms.h,v 1.2 2003/08/05 03:37:39 fredette Exp $ */
                      2: 
                      3: /* serial/serial-ms.h - implementation header file for serial mouse
                      4:    emulation: */
                      5: 
                      6: /*
                      7:  * Copyright (c) 2003 Matt Fredette
                      8:  * All rights reserved.
                      9:  *
                     10:  * Redistribution and use in source and binary forms, with or without
                     11:  * modification, are permitted provided that the following conditions
                     12:  * are met:
                     13:  * 1. Redistributions of source code must retain the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer.
                     15:  * 2. Redistributions in binary form must reproduce the above copyright
                     16:  *    notice, this list of conditions and the following disclaimer in the
                     17:  *    documentation and/or other materials provided with the distribution.
                     18:  * 3. All advertising materials mentioning features or use of this software
                     19:  *    must display the following acknowledgement:
                     20:  *      This product includes software developed by Matt Fredette.
                     21:  * 4. The name of the author may not be used to endorse or promote products
                     22:  *    derived from this software without specific prior written permission.
                     23:  *
                     24:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     25:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
                     26:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
                     27:  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
                     28:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
                     29:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
                     30:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     31:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
                     32:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
                     33:  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     34:  * POSSIBILITY OF SUCH DAMAGE.
                     35:  */
                     36: 
                     37: #ifndef _SERIAL_SERIAL_MS_H
                     38: #define _SERIAL_SERIAL_MS_H
                     39: 
                     40: #include <tme/common.h>
                     41: _TME_RCSID("$Id: serial-ms.h,v 1.2 2003/08/05 03:37:39 fredette Exp $");
                     42: 
                     43: /* includes: */
                     44: #include <tme/generic/mouse.h>
                     45: #include <tme/generic/serial.h>
                     46: #include <tme/element.h>
                     47: 
                     48: /* macros: */
                     49: 
                     50: /* the callout flags: */
                     51: #define TME_SERIAL_MS_CALLOUT_CHECK            (0)
                     52: #define TME_SERIAL_MS_CALLOUT_RUNNING          TME_BIT(0)
                     53: #define TME_SERIAL_MS_CALLOUTS_MASK            (-2)
                     54: #define  TME_SERIAL_MS_CALLOUT_SERIAL_CTRL     TME_BIT(1)
                     55: #define  TME_SERIAL_MS_CALLOUT_SERIAL_CONFIG   TME_BIT(2)
                     56: #define  TME_SERIAL_MS_CALLOUT_SERIAL_READ     TME_BIT(3)
                     57: #define  TME_SERIAL_MS_CALLOUT_MOUSE_CTRL      TME_BIT(4)
                     58: #define  TME_SERIAL_MS_CALLOUT_MOUSE_READ      TME_BIT(5)
                     59: 
                     60: /* types: */
                     61: 
                     62: /* a serial mouse: */
                     63: struct tme_serial_ms {
                     64: 
                     65:   /* backpointer to our element: */
                     66:   struct tme_element *tme_serial_ms_element;
                     67: 
                     68:   /* our mutex: */
                     69:   tme_mutex_t tme_serial_ms_mutex;
                     70: 
                     71:   /* our type: */
                     72:   _tme_const char *tme_serial_ms_type;
                     73: 
                     74:   /* our type-specific state: */
                     75:   void *tme_serial_ms_type_state;
                     76: 
                     77:   /* our type-specific event function: */
                     78:   int (*tme_serial_ms_type_events) _TME_P((struct tme_serial_ms *,
                     79:                                           _tme_const struct tme_mouse_event *,
                     80:                                           unsigned int));
                     81: 
                     82:   /* our type-specific serial control function: */
                     83:   int (*tme_serial_ms_type_serial_ctrl) _TME_P((struct tme_serial_ms *,
                     84:                                                unsigned int));
                     85: 
                     86:   /* our type-specific serial input function: */
                     87:   int (*tme_serial_ms_type_serial_input) _TME_P((struct tme_serial_ms *,
                     88:                                                 tme_uint8_t *,
                     89:                                                 unsigned int,
                     90:                                                 tme_serial_data_flags_t));
                     91: 
                     92:   /* our type-specific serial configuration: */
                     93:   struct tme_serial_config tme_serial_ms_type_config;
                     94: 
                     95:   /* the serial configuration from our serial connection: */
                     96:   struct tme_serial_config tme_serial_ms_peer_config;
                     97: 
                     98:   /* our mouse connection: */
                     99:   struct tme_mouse_connection *tme_serial_ms_connection_ms;
                    100: 
                    101:   /* our serial connection: */
                    102:   struct tme_serial_connection *tme_serial_ms_connection_serial;
                    103: 
                    104:   /* the callout flags: */
                    105:   int tme_serial_ms_callout_flags;
                    106: 
                    107:   /* our serial output buffer: */
                    108:   struct tme_serial_buffer tme_serial_ms_serial_buffer;
                    109: 
                    110:   /* our current mouse control outputs: */
                    111:   unsigned int tme_serial_ms_mouse_ctrl;
                    112: 
                    113:   /* our current serial control outputs: */
                    114:   unsigned int tme_serial_ms_serial_ctrl;
                    115: };
                    116: 
                    117: /* prototypes: */
                    118: int _tme_serial_ms_mssystems5_init _TME_P((struct tme_serial_ms *));
                    119: 
                    120: #endif /* !_SERIAL_SERIAL_MS_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.