summaryrefslogtreecommitdiffstats
path: root/netax25/procutils.h
diff options
context:
space:
mode:
Diffstat (limited to 'netax25/procutils.h')
-rw-r--r--netax25/procutils.h191
1 files changed, 191 insertions, 0 deletions
diff --git a/netax25/procutils.h b/netax25/procutils.h
new file mode 100644
index 0000000..eabea20
--- /dev/null
+++ b/netax25/procutils.h
@@ -0,0 +1,191 @@
+/* LIBAX25 - Library for AX.25 programs
+ * Copyright (C) 1997-1999 Jonathan Naylor, Tomi Manninen, Jean-Paul Roubelat
+ * and Alan Cox.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+/*
+ * Support routines to simplify the reading of the /proc/net/ax25* and
+ * /proc/net/nr* files.
+ */
+
+#ifndef _PROCUTILS_H
+#define _PROCUTILS_H
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct proc_ax25_route {
+ char call[10];
+ char dev[14];
+ int cnt;
+ long t;
+
+ struct proc_ax25_route *next;
+};
+
+struct proc_ax25 {
+ unsigned long magic;
+ char dev[14];
+ char src_addr[10];
+ char dest_addr[10];
+ char digi_addr[8][11];
+ int ndigi;
+ unsigned char st;
+ unsigned short vs, vr, va;
+ unsigned short t1, t1timer, t2, t2timer, t3, t3timer;
+ unsigned short idle, idletimer;
+ unsigned char n2, n2count;
+ unsigned short rtt;
+ unsigned char window;
+ unsigned short paclen;
+ unsigned long sndq, rcvq;
+ unsigned long inode;
+
+ struct proc_ax25 *next;
+};
+
+struct proc_nr {
+ char user_addr[10], dest_node[10], src_node[10];
+ char dev[14];
+ char my_circuit[6], ur_circuit[6];
+ unsigned char st;
+ unsigned short vs, vr, va;
+ unsigned short t1, t1timer, t2, t2timer, t4, t4timer;
+ unsigned short idle, idletimer;
+ unsigned char n2, n2count;
+ unsigned char window;
+ unsigned long sndq, rcvq;
+ unsigned long inode;
+
+ struct proc_nr *next;
+};
+
+struct proc_nr_neigh {
+ int addr;
+ char call[10];
+ char dev[14];
+ int qual;
+ int lock;
+ int cnt;
+
+ struct proc_nr_neigh *next;
+};
+
+struct proc_nr_nodes {
+ char call[10], alias[7];
+ unsigned char w, n;
+ unsigned char qual1, qual2, qual3;
+ unsigned char obs1, obs2, obs3;
+ int addr1, addr2, addr3;
+
+ struct proc_nr_nodes *next;
+};
+
+struct proc_rs {
+ char dest_addr[11], dest_call[10];
+ char src_addr[11], src_call[10];
+ char dev[14];
+ unsigned short lci;
+ unsigned int neigh;
+ unsigned char st;
+ unsigned short vs, vr, va;
+ unsigned short t, t1, t2, t3;
+ unsigned short hb;
+ unsigned long sndq, rcvq;
+
+ struct proc_rs *next;
+};
+
+struct proc_rs_route {
+ unsigned short lci1;
+ char address1[11], call1[10];
+ unsigned int neigh1;
+ unsigned short lci2;
+ char address2[11], call2[10];
+ unsigned int neigh2;
+
+ struct proc_rs_route *next;
+};
+
+struct proc_rs_neigh {
+ int addr;
+ char call[10];
+ char dev[14];
+ int count;
+ char mode[4];
+ char restart[4];
+ unsigned short t0, tf;
+
+ struct proc_rs_neigh *next;
+};
+
+struct proc_rs_nodes {
+ char address[11];
+ unsigned char mask;
+ unsigned char n;
+ unsigned int neigh1, neigh2, neigh3;
+
+ struct proc_rs_nodes *next;
+};
+
+extern struct proc_ax25 *read_proc_ax25(void);
+extern void free_proc_ax25(struct proc_ax25 *ap);
+
+extern struct proc_ax25_route *read_proc_ax25_route(void);
+extern void free_proc_ax25_route(struct proc_ax25_route *rp);
+
+extern struct proc_nr *read_proc_nr(void);
+extern void free_proc_nr(struct proc_nr *);
+
+extern struct proc_nr_neigh *read_proc_nr_neigh(void);
+extern void free_proc_nr_neigh(struct proc_nr_neigh *np);
+
+extern struct proc_nr_nodes *read_proc_nr_nodes(void);
+extern void free_proc_nr_nodes(struct proc_nr_nodes *np);
+
+extern struct proc_rs *read_proc_rs(void);
+extern void free_proc_rs(struct proc_rs *);
+
+extern struct proc_rs_neigh *read_proc_rs_neigh(void);
+extern void free_proc_rs_neigh(struct proc_rs_neigh *);
+
+extern struct proc_rs_nodes *read_proc_rs_nodes(void);
+extern void free_proc_rs_nodes(struct proc_rs_nodes *);
+
+extern struct proc_rs_route *read_proc_rs_routes(void);
+extern void free_proc_rs_routes(struct proc_rs_route *);
+
+extern char *get_call(int uid);
+
+extern struct proc_ax25 *find_link(const char *src, const char *dest, const char *dev);
+extern struct proc_nr_neigh *find_neigh(int addr, struct proc_nr_neigh *neigh);
+extern struct proc_nr_nodes *find_node(char *addr, struct proc_nr_nodes *nodes);
+
+#ifdef _cplusplus
+}
+#endif
+
+#endif