# 2.11BSD#431 - /usr/src/sys/netimp/if_imphost.h

##### Macros

    HF_DEAD           X
    HF_INUSE          X
    HF_UNREACH        X
    HOSTHASH          X
    HOSTTIMER         X
    HOST_DEQUE        X
    HOST_ENQUE        X
    HPMBUF            X

##### struct's

    hmbuf             X
    host              X

       1: /*
       2:  * Copyright (c) 1986 Regents of the University of California.
       3:  * All rights reserved.  The Berkeley software License Agreement
       4:  * specifies the terms and conditions for redistribution.
       5:  *
       6:  *	@(#)if_imphost.h	1.2 (2.11BSD) 1997/1/19
       7:  */
       8:
       9: /*
      10:  * Host structure used with IMP's.
      11:  * Used to hold outgoing packets which
      12:  * would exceed allowed RFNM count.
      13:  *
      14:  * These structures are packed into
      15:  * mbuf's and kept as small as possible.
      16:  */
      17: struct host {
      18:     struct  mbuf *h_q;      /* holding queue */
      19:     struct  in_addr h_addr;     /* host's address */
      20:     u_char  h_qcnt;             /* size of holding q */
      21:     u_char  h_timer;        /* used to stay off deletion */
      22:     u_char  h_rfnm;         /* # outstanding rfnm's */
      23:     u_char  h_flags;        /* see below */
      24: };
      25:
      26: /*
      27:  * A host structure is kept around (even when there are no
      28:  * references to it) for a spell to avoid constant reallocation
      29:  * and also to reflect IMP status back to sites which aren't
      30:  * directly connected to the IMP.  When structures are marked
      31:  * free, a timer is started; when the timer expires the structure
      32:  * is scavenged.
      33:  */
      34: #define HF_INUSE    0x1
      35: #define HF_DEAD     (1<<IMPTYPE_HOSTDEAD)
      36: #define HF_UNREACH  (1<<IMPTYPE_HOSTUNREACH)
      37:
      38: #define HOSTTIMER   128     /* keep structure around awhile */
      39:
      40: /*
      41:  * Host structures, as seen inside an mbuf.
      42:  * Hashing on the host address is used to
      43:  * select an index into the first mbuf.  Collisions
      44:  * are then resolved by searching successive
      45:  * mbuf's at the same index.  Reclamation is done
      46:  * automatically at the time a structure is free'd.
      47:  */
      48: #define HPMBUF  ((MLEN - sizeof(int)) / sizeof(struct host))
      49: #define HOSTHASH(a) (((a).s_addr>>8) % HPMBUF)
      50:
      51: /*
      52:  * In-line expansions for queuing operations on
      53:  * host message holding queue.  Queue is maintained
      54:  * as circular list with the head pointing to the
      55:  * last message in the queue.
      56:  */
      57: #define HOST_ENQUE(hp, m) { \
      58:     register struct mbuf *n; \
      59:     (hp)->h_qcnt++; \
      60:     if ((n = (hp)->h_q) == 0) \
      61:         (hp)->h_q = (m)->m_act = (m); \
      62:     else { \
      63:         (m)->m_act = n->m_act; \
      64:         (hp)->h_q = n->m_act = (m); \
      65:     } \
      66: }
      67: #define HOST_DEQUE(hp, m) { \
      68:     if ((m) = (hp)->h_q) { \
      69:         if ((m)->m_act == (m)) \
      70:             (hp)->h_q = 0; \
      71:         else { \
      72:             (m) = (m)->m_act; \
      73:             (hp)->h_q->m_act = (m)->m_act; \
      74:         } \
      75:         (hp)->h_qcnt--; \
      76:         (m)->m_act = 0; \
      77:     } \
      78: }
      79:
      80: struct hmbuf {
      81:     int hm_count;       /* # of struct's in use */
      82:     struct  host hm_hosts[HPMBUF];  /* data structures proper */
      83: };
      84:
      85: #if defined(KERNEL) && defined(SUPERVISOR)
      86: struct host *hostlookup();
      87: struct host *hostenter();
      88: struct mbuf *hostdeque();
      89: #endif

#### Defined struct's

hmbuf defined in line 80; used 18 times

- in /usr/src/sys/netimp/if_imphost.c line 46(2), 71(2), 93-95(4), 127-132(4), 169(2), 207(2), 213(2)

host defined in line 17; used 32 times

- in line 82-87(6)
- in /usr/src/sys/netimp/if_imp.c line 163(2), 546(2)
- in /usr/src/sys/netimp/if_imphost.c line 37-41(4), 52(2), 60-65(4), 91(2), 111(2), 126(2), 150(2), 183(2), 206(2)

#### Defined macros

HF_DEAD defined in line 35; used 2 times

- in /usr/src/sys/netimp/if_imp.c line 563-564(2)

HF_INUSE defined in line 34; used 7 times

- in /usr/src/sys/netimp/if_imp.c line 299, 565
- in /usr/src/sys/netimp/if_imphost.c line 48, 72, 102, 114, 137

HF_UNREACH defined in line 36; used 1 times

- in /usr/src/sys/netimp/if_imp.c line 563

HOSTHASH defined in line 49; used 2 times

- in /usr/src/sys/netimp/if_imphost.c line 43, 66

HOSTTIMER defined in line 38; used 3 times

- in /usr/src/sys/netimp/if_imp.c line 297, 577
- in /usr/src/sys/netimp/if_imphost.c line 115

HOST_DEQUE defined in line 67; used 1 times

- in /usr/src/sys/netimp/if_imphost.c line 188

HOST_ENQUE defined in line 57; used 1 times

- in /usr/src/sys/netimp/if_imp.c line 582

HPMBUF defined in line 48; used 4 times

- in line 49, 82
- in /usr/src/sys/netimp/if_imphost.c line 134, 215

#### Usage of this include

if_imphost.h used 2 times

- in /usr/src/sys/netimp/if_imp.c line 36
- in /usr/src/sys/netimp/if_imphost.c line 26

Last modified: 1997-01-19 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 891 |