]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/mISDNif.h
mISDN: Add layer1 prim MPH_INFORMATION_REQ
[linux-2.6-omap-h63xx.git] / include / linux / mISDNif.h
index 7f65aa0c1cc579e45c3339073717bec410b27446..557477ac3d5b509969060d748173626efddfe873 100644 (file)
 #define ISDN_P_NT_UP0          0x06
 
 #define IS_ISDN_P_TE(p) ((p == ISDN_P_TE_S0) || (p == ISDN_P_TE_E1) || \
-                               (p == ISDN_P_TE_UP0))
+                               (p == ISDN_P_TE_UP0) || (p == ISDN_P_LAPD_TE))
 #define IS_ISDN_P_NT(p) ((p == ISDN_P_NT_S0) || (p == ISDN_P_NT_E1) || \
-                               (p == ISDN_P_NT_UP0))
+                               (p == ISDN_P_NT_UP0) || (p == ISDN_P_LAPD_NT))
 #define IS_ISDN_P_S0(p) ((p == ISDN_P_TE_S0) || (p == ISDN_P_NT_S0))
 #define IS_ISDN_P_E1(p) ((p == ISDN_P_TE_E1) || (p == ISDN_P_NT_E1))
 #define IS_ISDN_P_UP0(p) ((p == ISDN_P_TE_UP0) || (p == ISDN_P_NT_UP0))
@@ -289,6 +289,23 @@ struct mISDN_devrename {
        char                    name[MISDN_MAX_IDLEN]; /* new name */
 };
 
+/* MPH_INFORMATION_REQ payload */
+struct ph_info_ch {
+        __u32 protocol;
+        __u64 Flags;
+};
+
+struct ph_info_dch {
+        struct ph_info_ch ch;
+        __u16 state;
+        __u16 num_bch;
+};
+
+struct ph_info {
+        struct ph_info_dch dch;
+        struct ph_info_ch  bch[];
+};
+
 /* timer device ioctl */
 #define IMADDTIMER     _IOR('I', 64, int)
 #define IMDELTIMER     _IOR('I', 65, int)
@@ -333,6 +350,7 @@ clear_channelmap(u_int nr, u_char *map)
 #define MISDN_CTRL_UNSETPEER           0x0080
 #define MISDN_CTRL_RX_OFF              0x0100
 #define MISDN_CTRL_FILL_EMPTY          0x0200
+#define MISDN_CTRL_GETPEER             0x0400
 #define MISDN_CTRL_HW_FEATURES_OP      0x2000
 #define MISDN_CTRL_HW_FEATURES         0x2001
 #define MISDN_CTRL_HFC_OP              0x4000
@@ -530,7 +548,8 @@ _queue_data(struct mISDNchannel *ch, u_int prim,
 
 /* global register/unregister functions */
 
-extern int     mISDN_register_device(struct mISDNdevice *, char *name);
+extern int     mISDN_register_device(struct mISDNdevice *,
+                                       struct device *parent, char *name);
 extern void    mISDN_unregister_device(struct mISDNdevice *);
 extern int     mISDN_register_Bprotocol(struct Bprotocol *);
 extern void    mISDN_unregister_Bprotocol(struct Bprotocol *);
@@ -538,6 +557,11 @@ extern struct mISDNclock *mISDN_register_clock(char *, int, clockctl_func_t *,
                                                void *);
 extern void    mISDN_unregister_clock(struct mISDNclock *);
 
+static inline struct mISDNdevice *dev_to_mISDN(struct device *dev)
+{
+       return dev_get_drvdata(dev);
+}
+
 extern void    set_channel_address(struct mISDNchannel *, u_int, u_int);
 extern void    mISDN_clock_update(struct mISDNclock *, int, struct timeval *);
 extern unsigned short mISDN_clock_get(void);