+typedef struct oqueue {
+ obuf *hd, *tl; /* Head and tail pointers */
+} oqueue;
+
+struct admin;
+
+typedef struct admin_bgop {
+ struct admin_bgop *next, *prev; /* Links to next and previous */
+ struct admin *a; /* Owner job */
+ char *tag; /* Tag string for messages */
+ void (*cancel)(struct admin_bgop *); /* Destructor function */
+} admin_bgop;
+
+typedef struct admin_addop {
+ admin_bgop bg; /* Background operation header */
+ peerspec peer; /* Peer pending creation */
+ char *paddr; /* Hostname to be resolved */
+ bres_client r; /* Background resolver task */
+ sel_timer t; /* Timer for resolver */
+} admin_addop;
+
+typedef struct admin_pingop {
+ admin_bgop bg; /* Background operation header */
+ ping ping; /* Ping pending response */
+ struct timeval pingtime; /* Time last ping was sent */
+} admin_pingop;
+