|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: * ! 27: * ! 28: * ORIGINS: 82 ! 29: * ! 30: * APPLE CONFIDENTIAL ! 31: * (C) COPYRIGHT Apple Computer, Inc. 1992-1996 ! 32: * All Rights Reserved ! 33: * ! 34: */ ! 35: ! 36: ! 37: #ifndef __NBP__ ! 38: #define __NBP__ ! 39: ! 40: /* NBP DDP socket type */ ! 41: #define NBP_DDP_TYPE 0x02 /* NBP packet */ ! 42: ! 43: /* NBP DDP socket number */ ! 44: #define NBP_SOCKET 0x02 /* NIS socket number */ ! 45: ! 46: ! 47: /* NBP packet types */ ! 48: ! 49: #define NBP_BRRQ 0x01 /* Broadcast request */ ! 50: #define NBP_LKUP 0x02 /* Lookup */ ! 51: #define NBP_LKUP_REPLY 0x03 /* Lookup reply */ ! 52: #define NBP_FWDRQ 0x04 /* Forward Request (router only) */ ! 53: #define NBP_REGISTER 0x07 /* Register a name */ ! 54: #define NBP_DELETE 0x08 /* Delete a name */ ! 55: #define NBP_CONFIRM 0x09 /* Confirm, not sent on wire */ ! 56: #define NBP_STATUS_REPLY 0x0a /* Status on register/delete */ ! 57: #define NBP_CLOSE_NOTE 0x0b /* Close notification from DDP */ ! 58: ! 59: ! 60: /* Protocol defaults */ ! 61: ! 62: #define NBP_RETRY_COUNT 8 /* Maximum repeats */ ! 63: #define NBP_RETRY_INTERVAL 1 /* Retry timeout */ ! 64: ! 65: ! 66: /* Special (partial) wildcard character */ ! 67: #define NBP_SPL_WILDCARD 0xC5 ! 68: #define NBP_ORD_WILDCARD '=' ! 69: ! 70: ! 71: #define NBP_NVE_STR_SIZE 32 /* Maximum NBP tuple string size */ ! 72: typedef struct at_nvestr { ! 73: u_char len; ! 74: u_char str[NBP_NVE_STR_SIZE]; ! 75: } at_nvestr_t; ! 76: ! 77: ! 78: /* Entity Name */ ! 79: ! 80: typedef struct at_entity { ! 81: at_nvestr_t object; ! 82: at_nvestr_t type; ! 83: at_nvestr_t zone; ! 84: } at_entity_t; ! 85: ! 86: ! 87: /* Packet definitions */ ! 88: ! 89: #define NBP_TUPLE_SIZE ((3*NBP_NVE_STR_SIZE)+3) /* 3 for field lengths + 3*32 for three names */ ! 90: #define NBP_TUPLE_MAX 15 /* Maximum number of tuples in one DDP packet */ ! 91: #define NBP_HDR_SIZE 2 ! 92: ! 93: typedef struct at_nbptuple { ! 94: at_inet_t enu_addr; ! 95: union { ! 96: struct { ! 97: u_char enumerator; ! 98: at_entity_t entity; ! 99: } en_se; ! 100: struct { ! 101: u_char enumerator; ! 102: u_char name[NBP_TUPLE_SIZE]; ! 103: } en_sn; ! 104: } en_u; ! 105: } at_nbptuple_t; ! 106: ! 107: /* Some macros for easier access to the tuple union */ ! 108: #define enu_enum en_u.en_sn.enumerator ! 109: #define enu_name en_u.en_sn.name ! 110: #define enu_entity en_u.en_se.entity ! 111: ! 112: ! 113: typedef struct at_nbp { ! 114: unsigned control : 4, ! 115: tuple_count : 4; ! 116: /* fix for bug 2228529: ! 117: u_char id;*/ ! 118: u_char at_nbp_id; ! 119: at_nbptuple_t tuple[NBP_TUPLE_MAX]; ! 120: } at_nbp_t; ! 121: ! 122: /* misc */ ! 123: #define IF_NAME_LEN 5 ! 124: ! 125: #endif /* __NBP__ */ ! 126:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.