disallow creation of files in removed directories
[unix-history] / usr / src / sys / netccitt / x25_var.h
/*
* Copyright (c) 1989 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* @(#)x25_var.h 7.1 (Berkeley) %G%
*/
/*
* Device-independent x25 driver data.
*/
struct x25com {
struct ifnet xc_if; /* network-visible interface */
/* int (*xc_if.if_start)() /* connect, confirm procedure */
u_char xc_addrlen; /* length of X.121 address */
u_char xc_addr[16]; /* X.121 address */
u_short xc_flags; /* X.25 specific flags */
u_short xc_nchan; /* number of logical channels */
u_short xc_nactive; /* number of live logical channels */
u_short xc_npvc; /* # of permanent virt. circuits */
u_short xc_pvcx; /* index of first pcv */
u_short xc_svcx; /* index of first svc */
u_short xc_dg_idletimo; /* timeout to close idle dg channel */
u_short xc_rslvtimo; /* if name translation fails, rid */
struct x25lcb **xc_lcbvec; /* where to dispatch data */
int (*xc_disconnect)(); /* to delete idle dg circuits */
};
#define XCF_HSL3 0x1 /* Hardware support for level 3 */
#define XCF_HSL2 0x2 /* Hardware support for level 2 */
/*
* Local Connection Block.
*/
struct x25lcb {
struct xq {
int (*xq_put)(); /* How to process data */
struct mbuf *xq_data; /* Queued data */
int xq_space; /* For accounting */
int xq_flags;
int (*xq_unblock)();/* called & cleared when unblocking */
caddr_t xq_proto; /* for other service entries */
caddr_t xq_next; /* next q, or route, or pcb */
} xl_downq, xl_upq;
/* (*xl_downq.xq_next->xq_put)() /* LAPB put when using pk_output() */
int xl_flags; /* valid, c-o versus dg */
int xl_timer; /* figure out what to close */
int xl_state; /* connecting, connected, resolving */
int xl_index; /* which entry we are in device table */
struct x25com *xl_xc; /* back pointer to device */
/*
* x25pkb (packet-level control block) would follow immediately
* for devices only supplying LAPB or less.
*/
};
/* flags */
#define XL_VALID 0x1 /* Circuit is live, etc. */
#define XL_DGRAM 0x2 /* not connection oriented, can close */
#define XL_RTHELD 0x4 /* this lcb references rtentry */
#define XQ_UP 0x1 /* I am an up queue */
#define XQ_DOWN 0x2 /* I am a down queue */
/* states for LCB */
#define XLS_NEWBORN 0x0
#define XLS_CONNECTED 0x1
#define XLS_CONNECTING 0x2
#define XLS_RESOLVING 0x3
#define XLS_DISCONNECTING 0x4
#define XLS_FREE 0x5
#ifdef KERNEL
int x25_ifinput();
#endif