linux/include/net/irda/af_irda.h
<<
>>
Prefs
   1/*********************************************************************
   2 *                
   3 * Filename:      af_irda.h
   4 * Version:       1.0
   5 * Description:   IrDA sockets declarations
   6 * Status:        Stable
   7 * Author:        Dag Brattli <dagb@cs.uit.no>
   8 * Created at:    Tue Dec  9 21:13:12 1997
   9 * Modified at:   Fri Jan 28 13:16:32 2000
  10 * Modified by:   Dag Brattli <dagb@cs.uit.no>
  11 * 
  12 *     Copyright (c) 1998-2000 Dag Brattli, All Rights Reserved.
  13 *     Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.com>
  14 *      
  15 *     This program is free software; you can redistribute it and/or 
  16 *     modify it under the terms of the GNU General Public License as 
  17 *     published by the Free Software Foundation; either version 2 of 
  18 *     the License, or (at your option) any later version.
  19 *  
  20 *     Neither Dag Brattli nor University of Tromsø admit liability nor
  21 *     provide warranty for any of this software. This material is 
  22 *     provided "AS-IS" and at no charge.
  23 *     
  24 ********************************************************************/
  25
  26#ifndef AF_IRDA_H
  27#define AF_IRDA_H
  28
  29#include <linux/irda.h>
  30#include <net/irda/irda.h>
  31#include <net/irda/iriap.h>             /* struct iriap_cb */
  32#include <net/irda/irias_object.h>      /* struct ias_value */
  33#include <net/irda/irlmp.h>             /* struct lsap_cb */
  34#include <net/irda/irttp.h>             /* struct tsap_cb */
  35#include <net/irda/discovery.h>         /* struct discovery_t */
  36#include <net/sock.h>
  37
  38/* IrDA Socket */
  39struct irda_sock {
  40        /* struct sock has to be the first member of irda_sock */
  41        struct sock sk;
  42        __u32 saddr;          /* my local address */
  43        __u32 daddr;          /* peer address */
  44
  45        struct lsap_cb *lsap; /* LSAP used by Ultra */
  46        __u8  pid;            /* Protocol IP (PID) used by Ultra */
  47
  48        struct tsap_cb *tsap; /* TSAP used by this connection */
  49        __u8 dtsap_sel;       /* remote TSAP address */
  50        __u8 stsap_sel;       /* local TSAP address */
  51        
  52        __u32 max_sdu_size_rx;
  53        __u32 max_sdu_size_tx;
  54        __u32 max_data_size;
  55        __u8  max_header_size;
  56        struct qos_info qos_tx;
  57
  58        __u16_host_order mask;           /* Hint bits mask */
  59        __u16_host_order hints;          /* Hint bits */
  60
  61        void *ckey;           /* IrLMP client handle */
  62        void *skey;           /* IrLMP service handle */
  63
  64        struct ias_object *ias_obj;   /* Our service name + lsap in IAS */
  65        struct iriap_cb *iriap;       /* Used to query remote IAS */
  66        struct ias_value *ias_result; /* Result of remote IAS query */
  67
  68        hashbin_t *cachelog;            /* Result of discovery query */
  69        __u32 cachedaddr;       /* Result of selective discovery query */
  70
  71        int nslots;           /* Number of slots to use for discovery */
  72
  73        int errno;            /* status of the IAS query */
  74
  75        wait_queue_head_t query_wait;   /* Wait for the answer to a query */
  76        struct timer_list watchdog;     /* Timeout for discovery */
  77
  78        LOCAL_FLOW tx_flow;
  79        LOCAL_FLOW rx_flow;
  80};
  81
  82static inline struct irda_sock *irda_sk(struct sock *sk)
  83{
  84        return (struct irda_sock *)sk;
  85}
  86
  87#endif /* AF_IRDA_H */
  88