if_wanpipe.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2. * if_wanpipe.h Header file for the Sangoma AF_WANPIPE Socket 
  3. *
  4. * Author:  Nenad Corbic 
  5. *
  6. * Copyright: (c) 2000 Sangoma Technologies Inc.
  7. *
  8. * This program is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU General Public License
  10. * as published by the Free Software Foundation; either version
  11. * 2 of the License, or (at your option) any later version.
  12. * ============================================================================
  13. *
  14. * Jan 28, 2000 Nenad Corbic  Initial Version
  15. *
  16. *****************************************************************************/
  17. #ifndef __LINUX_IF_WAN_PACKET_H
  18. #define __LINUX_IF_WAN_PACKET_H
  19. struct wan_sockaddr_ll
  20. {
  21. unsigned short sll_family;
  22. unsigned short sll_protocol;
  23. int sll_ifindex;
  24. unsigned short sll_hatype;
  25. unsigned char sll_pkttype;
  26. unsigned char sll_halen;
  27. unsigned char sll_addr[8];
  28. unsigned char   sll_device[14];
  29. unsigned char  sll_card[14];
  30. };
  31. typedef struct 
  32. {
  33. unsigned char free;
  34. unsigned char state_sk;
  35. int rcvbuf;
  36. int sndbuf;
  37. int rmem;
  38. int wmem;
  39. int sk_count;
  40. unsigned char bound;
  41. char name[14];
  42. unsigned char d_state;
  43. unsigned char svc;
  44. unsigned short lcn;
  45. unsigned char mbox;
  46. unsigned char cmd_busy;
  47. unsigned char command;
  48. unsigned poll;
  49. unsigned poll_cnt;
  50. int rblock;
  51. } wan_debug_hdr_t;
  52. #define MAX_NUM_DEBUG  10
  53. #define X25_PROT       0x16
  54. #define PVC_PROT       0x17
  55. typedef struct
  56. {
  57. wan_debug_hdr_t debug[MAX_NUM_DEBUG];
  58. }wan_debug_t;
  59. #define SIOC_WANPIPE_GET_CALL_DATA (SIOCPROTOPRIVATE + 0)
  60. #define SIOC_WANPIPE_SET_CALL_DATA (SIOCPROTOPRIVATE + 1)
  61. #define SIOC_WANPIPE_ACCEPT_CALL (SIOCPROTOPRIVATE + 2)
  62. #define SIOC_WANPIPE_CLEAR_CALL         (SIOCPROTOPRIVATE + 3)
  63. #define SIOC_WANPIPE_RESET_CALL         (SIOCPROTOPRIVATE + 4)
  64. #define SIOC_WANPIPE_DEBUG         (SIOCPROTOPRIVATE + 5)
  65. #define SIOC_WANPIPE_SET_NONBLOCK (SIOCPROTOPRIVATE + 6)
  66. #define SIOC_WANPIPE_CHECK_TX (SIOCPROTOPRIVATE + 7)
  67. #define SIOC_WANPIPE_SOCK_STATE (SIOCPROTOPRIVATE + 8)
  68. /* Packet types */
  69. #define WAN_PACKET_HOST 0 /* To us */
  70. #define WAN_PACKET_BROADCAST 1 /* To all */
  71. #define WAN_PACKET_MULTICAST 2 /* To group */
  72. #define WAN_PACKET_OTHERHOST 3 /* To someone else  */
  73. #define WAN_PACKET_OUTGOING 4 /* Outgoing of any type */
  74. /* These ones are invisible by user level */
  75. #define WAN_PACKET_LOOPBACK 5 /* MC/BRD frame looped back */
  76. #define WAN_PACKET_FASTROUTE 6 /* Fastrouted frame */
  77. /* X25 specific */
  78. #define WAN_PACKET_DATA  7
  79. #define WAN_PACKET_CMD  8
  80. #define WAN_PACKET_ASYNC 9
  81. #define WAN_PACKET_ERR        10
  82. /* Packet socket options */
  83. #define WAN_PACKET_ADD_MEMBERSHIP 1
  84. #define WAN_PACKET_DROP_MEMBERSHIP 2
  85. #define WAN_PACKET_MR_MULTICAST 0
  86. #define WAN_PACKET_MR_PROMISC 1
  87. #define WAN_PACKET_MR_ALLMULTI 2
  88. #ifdef __KERNEL__
  89. /* Private wanpipe socket structures. */
  90. struct wanpipe_opt
  91. {
  92. void   *mbox; /* Mail box  */
  93. void   *card;  /* Card bouded to */
  94. struct net_device *dev; /* Bounded device */
  95. unsigned short lcn; /* Binded LCN */
  96. unsigned char  svc; /* 0=pvc, 1=svc */
  97. unsigned char  timer;   /* flag for delayed transmit*/
  98. struct timer_list tx_timer;
  99. unsigned poll_cnt;
  100. unsigned char force; /* Used to force sock release */
  101. atomic_t packet_sent;   
  102. unsigned short num; 
  103. };
  104. #define wp_sk(__sk) ((struct wanpipe_opt *)(__sk)->sk_protinfo)
  105. #endif
  106. #endif