Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
  1/*********************************************************************
  2 *                
  3 * Filename:      iriap.h
  4 * Version:       0.5
  5 * Description:   Information Access Protocol (IAP)
  6 * Status:        Experimental.
  7 * Author:        Dag Brattli <dagb@cs.uit.no>
  8 * Created at:    Thu Aug 21 00:02:07 1997
  9 * Modified at:   Sat Dec 25 16:42:09 1999
 10 * Modified by:   Dag Brattli <dagb@cs.uit.no>
 11 * 
 12 *     Copyright (c) 1997-1999 Dag Brattli <dagb@cs.uit.no>, 
 13 *     All Rights Reserved.
 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 IRIAP_H
 27#define IRIAP_H
 28
 29#include <linux/types.h>
 30#include <linux/skbuff.h>
 31
 32#include <net/irda/iriap_event.h>
 33#include <net/irda/irias_object.h>
 34#include <net/irda/irqueue.h>		/* irda_queue_t */
 35#include <net/irda/timer.h>		/* struct timer_list */
 36
 37#define IAP_LST 0x80
 38#define IAP_ACK 0x40
 39
 40#define IAS_SERVER 0
 41#define IAS_CLIENT 1
 42
 43/* IrIAP Op-codes */
 44#define GET_INFO_BASE      0x01
 45#define GET_OBJECTS        0x02
 46#define GET_VALUE          0x03
 47#define GET_VALUE_BY_CLASS 0x04
 48#define GET_OBJECT_INFO    0x05
 49#define GET_ATTRIB_NAMES   0x06
 50
 51#define IAS_SUCCESS        0
 52#define IAS_CLASS_UNKNOWN  1
 53#define IAS_ATTRIB_UNKNOWN 2
 54#define IAS_DISCONNECT     10
 55
 56typedef void (*CONFIRM_CALLBACK)(int result, __u16 obj_id, 
 57				 struct ias_value *value, void *priv);
 58
 59struct iriap_cb {
 60	irda_queue_t q; /* Must be first */	
 61	magic_t magic;  /* Magic cookie */
 62
 63	int          mode;   /* Client or server */
 64
 65	__u32        saddr;
 66	__u32        daddr;
 67	__u8         operation;
 68
 69	struct sk_buff *request_skb;
 70	struct lsap_cb *lsap;
 71	__u8 slsap_sel;
 72
 73	/* Client states */
 74	IRIAP_STATE client_state;
 75	IRIAP_STATE call_state;
 76	
 77	/* Server states */
 78	IRIAP_STATE server_state;
 79	IRIAP_STATE r_connect_state;
 80	
 81	CONFIRM_CALLBACK confirm;
 82	void *priv;                /* Used to identify client */
 83
 84	__u8 max_header_size;
 85	__u32 max_data_size;
 86	
 87	struct timer_list watchdog_timer;
 88};
 89
 90int  iriap_init(void);
 91void iriap_cleanup(void);
 92
 93struct iriap_cb *iriap_open(__u8 slsap_sel, int mode, void *priv, 
 94			    CONFIRM_CALLBACK callback);
 95void iriap_close(struct iriap_cb *self);
 96
 97int iriap_getvaluebyclass_request(struct iriap_cb *self, 
 98				  __u32 saddr, __u32 daddr,
 99				  char *name, char *attr);
100void iriap_connect_request(struct iriap_cb *self);
101void iriap_send_ack( struct iriap_cb *self);
102void iriap_call_indication(struct iriap_cb *self, struct sk_buff *skb);
103
104void iriap_register_server(void);
105
106#endif
107
108