Home | History | Annotate | Download | only in linux
      1 /* r3964 linediscipline for linux
      2  *
      3  * -----------------------------------------------------------
      4  * Copyright by
      5  * Philips Automation Projects
      6  * Kassel (Germany)
      7  * http://www.pap-philips.de
      8  * -----------------------------------------------------------
      9  * This software may be used and distributed according to the terms of
     10  * the GNU General Public License, incorporated herein by reference.
     11  *
     12  * Author:
     13  * L. Haag
     14  *
     15  * $Log: r3964.h,v $
     16  * Revision 1.4  2005/12/21 19:54:24  Kurt Huwig <kurt huwig de>
     17  * Fixed HZ usage on 2.6 kernels
     18  * Removed unnecessary include
     19  *
     20  * Revision 1.3  2001/03/18 13:02:24  dwmw2
     21  * Fix timer usage, use spinlocks properly.
     22  *
     23  * Revision 1.2  2001/03/18 12:53:15  dwmw2
     24  * Merge changes in 2.4.2
     25  *
     26  * Revision 1.1.1.1  1998/10/13 16:43:14  dwmw2
     27  * This'll screw the version control
     28  *
     29  * Revision 1.6  1998/09/30 00:40:38  dwmw2
     30  * Updated to use kernel's N_R3964 if available
     31  *
     32  * Revision 1.4  1998/04/02 20:29:44  lhaag
     33  * select, blocking, ...
     34  *
     35  * Revision 1.3  1998/02/12 18:58:43  root
     36  * fixed some memory leaks
     37  * calculation of checksum characters
     38  *
     39  * Revision 1.2  1998/02/07 13:03:17  root
     40  * ioctl read_telegram
     41  *
     42  * Revision 1.1  1998/02/06 19:19:43  root
     43  * Initial revision
     44  *
     45  *
     46  */
     47 
     48 #ifndef __LINUX_N_R3964_H__
     49 #define __LINUX_N_R3964_H__
     50 
     51 /* line disciplines for r3964 protocol */
     52 
     53 
     54 /*
     55  * Ioctl-commands
     56  */
     57 
     58 #define R3964_ENABLE_SIGNALS      0x5301
     59 #define R3964_SETPRIORITY         0x5302
     60 #define R3964_USE_BCC             0x5303
     61 #define R3964_READ_TELEGRAM       0x5304
     62 
     63 /* Options for R3964_SETPRIORITY */
     64 #define R3964_MASTER   0
     65 #define R3964_SLAVE    1
     66 
     67 /* Options for R3964_ENABLE_SIGNALS */
     68 #define R3964_SIG_ACK   0x0001
     69 #define R3964_SIG_DATA  0x0002
     70 #define R3964_SIG_ALL   0x000f
     71 #define R3964_SIG_NONE  0x0000
     72 #define R3964_USE_SIGIO 0x1000
     73 
     74 /*
     75  * r3964 operation states:
     76  */
     77 
     78 /* types for msg_id: */
     79 enum {R3964_MSG_ACK=1, R3964_MSG_DATA };
     80 
     81 #define R3964_MAX_MSG_COUNT 32
     82 
     83 /* error codes for client messages */
     84 #define R3964_OK 0        /* no error. */
     85 #define R3964_TX_FAIL -1  /* transmission error, block NOT sent */
     86 #define R3964_OVERFLOW -2 /* msg queue overflow */
     87 
     88 /* the client gets this struct when calling read(fd,...): */
     89 struct r3964_client_message {
     90 	  int     msg_id;
     91 	  int     arg;
     92 	  int     error_code;
     93 };
     94 
     95 #define R3964_MTU      256
     96 
     97 
     98 
     99 #endif
    100