OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [net/] [irda/] [parameters.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*********************************************************************
2
 *
3
 * Filename:      parameters.h
4
 * Version:       1.0
5
 * Description:   A more general way to handle (pi,pl,pv) parameters
6
 * Status:        Experimental.
7
 * Author:        Dag Brattli <dagb@cs.uit.no>
8
 * Created at:    Mon Jun  7 08:47:28 1999
9
 * Modified at:   Sun Jan 30 14:05:14 2000
10
 * Modified by:   Dag Brattli <dagb@cs.uit.no>
11
 *
12
 *     Copyright (c) 1999-2000 Dag Brattli, All Rights Reserved.
13
 *
14
 *     This program is free software; you can redistribute it and/or
15
 *     modify it under the terms of the GNU General Public License as
16
 *     published by the Free Software Foundation; either version 2 of
17
 *     the License, or (at your option) any later version.
18
 *
19
 *     This program is distributed in the hope that it will be useful,
20
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
21
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
 *     GNU General Public License for more details.
23
 *
24
 *     You should have received a copy of the GNU General Public License
25
 *     along with this program; if not, write to the Free Software
26
 *     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
27
 *     MA 02111-1307 USA
28
 *
29
 *     Michel Dänzer <daenzer@debian.org>, 10/2001
30
 *     - simplify irda_pv_t to avoid endianness issues
31
 *
32
 ********************************************************************/
33
 
34
#ifndef IRDA_PARAMS_H
35
#define IRDA_PARAMS_H
36
 
37
/*
38
 *  The currently supported types. Beware not to change the sequence since
39
 *  it a good reason why the sized integers has a value equal to their size
40
 */
41
typedef enum {
42
        PV_INTEGER,      /* Integer of any (pl) length */
43
        PV_INT_8_BITS,   /* Integer of 8 bits in length */
44
        PV_INT_16_BITS,  /* Integer of 16 bits in length */
45
        PV_STRING,       /* \0 terminated string */
46
        PV_INT_32_BITS,  /* Integer of 32 bits in length */
47
        PV_OCT_SEQ,      /* Octet sequence */
48
        PV_NO_VALUE      /* Does not contain any value (pl=0) */
49
} PV_TYPE;
50
 
51
/* Bit 7 of type field */
52
#define PV_BIG_ENDIAN    0x80 
53
#define PV_LITTLE_ENDIAN 0x00
54
#define PV_MASK          0x7f   /* To mask away endian bit */
55
 
56
#define PV_PUT 0
57
#define PV_GET 1
58
 
59
typedef union {
60
        char   *c;
61
        __u32   i;
62
        __u32 *ip;
63
} irda_pv_t;
64
 
65
typedef struct {
66
        __u8 pi;
67
        __u8 pl;
68
        irda_pv_t pv;
69
} irda_param_t;
70
 
71
typedef int (*PI_HANDLER)(void *self, irda_param_t *param, int get);
72
typedef int (*PV_HANDLER)(void *self, __u8 *buf, int len, __u8 pi,
73
                          PV_TYPE type, PI_HANDLER func);
74
 
75
typedef struct {
76
        PI_HANDLER func;  /* Handler for this parameter identifier */
77
        PV_TYPE    type;  /* Data type for this parameter */
78
} pi_minor_info_t;
79
 
80
typedef struct {
81
        pi_minor_info_t *pi_minor_call_table;
82
        int len;
83
} pi_major_info_t;
84
 
85
typedef struct {
86
        pi_major_info_t *tables;
87
        int              len;
88
        __u8             pi_mask;
89
        int              pi_major_offset;
90
} pi_param_info_t;
91
 
92
int irda_param_pack(__u8 *buf, char *fmt, ...);
93
int irda_param_unpack(__u8 *buf, char *fmt, ...);
94
 
95
int irda_param_insert(void *self, __u8 pi, __u8 *buf, int len,
96
                      pi_param_info_t *info);
97
int irda_param_extract(void *self, __u8 *buf, int len, pi_param_info_t *info);
98
int irda_param_extract_all(void *self, __u8 *buf, int len,
99
                           pi_param_info_t *info);
100
 
101
#define irda_param_insert_byte(buf,pi,pv) irda_param_pack(buf,"bbb",pi,1,pv)
102
 
103
#endif /* IRDA_PARAMS_H */
104
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.