aboutsummaryrefslogtreecommitdiffstats
path: root/packet-afs-macros.h
diff options
context:
space:
mode:
authorgram <gram@f5534014-38df-0310-8fa8-9805f1628bb7>2004-07-18 18:06:47 +0000
committergram <gram@f5534014-38df-0310-8fa8-9805f1628bb7>2004-07-18 18:06:47 +0000
commit35a6e092c3153cc7fbd1337c2230d596b0f7abcb (patch)
tree4eff24a2e16c8963e497e1fc575f35e6af59bd26 /packet-afs-macros.h
parent8dd1ee5ef22a787f4035d68e8e2ec8371fd23266 (diff)
Move dissectors to epan/dissectors directory.
Also move ncp222.py, x11-fields, process-x11-fields.pl, make-reg-dotc, and make-reg-dotc.py. Adjust #include lines in files that include packet-*.h files. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@11410 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'packet-afs-macros.h')
-rw-r--r--packet-afs-macros.h538
1 files changed, 0 insertions, 538 deletions
diff --git a/packet-afs-macros.h b/packet-afs-macros.h
deleted file mode 100644
index 0f84032b4b..0000000000
--- a/packet-afs-macros.h
+++ /dev/null
@@ -1,538 +0,0 @@
-/* packet-afs-macros.h
- * Helper macros for AFS packet dissection
- * Copyright 1999, Nathan Neulinger <nneul@umr.edu>
- * Based on routines from tcpdump patches by
- * Ken Hornstein <kenh@cmf.nrl.navy.mil>
- * Portions based on information retrieved from the RX definitions
- * in Arla, the free AFS client at http://www.stacken.kth.se/project/arla/
- * Portions based on information/specs retrieved from the OpenAFS sources at
- * www.openafs.org, Copyright IBM.
- *
- * $Id$
- *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
- * Copyright 1998 Gerald Combs
- *
- * Copied from packet-tftp.c
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-
-
-/*
- * Macros for helper dissection routines
- *
- * The macros are here to save on coding. They assume that
- * the current offset is in 'offset', and that the offset
- * should be incremented after performing the macro's operation.
- */
-
-
-/* Output a unsigned integer, stored into field 'field'
- Assumes it is in network byte order, converts to host before using */
-#define OUT_UINT(field) \
- proto_tree_add_uint(tree, field, tvb, offset, sizeof(guint32), tvb_get_ntohl(tvb, offset)); \
- offset += 4;
-
-/* Output a unsigned integer, stored into field 'field'
- Assumes it is in network byte order, converts to host before using */
-#define OUT_INT(field) \
- proto_tree_add_int(tree, field, tvb, offset, sizeof(gint32), tvb_get_ntohl(tvb, offset)); \
- offset += 4;
-
-/* Output a unsigned integer, stored into field 'field'
- Assumes it is in network byte order, converts to host before using */
-#define OUT_UINT64(field) \
- proto_tree_add_item(tree, field, tvb, offset, 8, FALSE); \
- offset += 8;
-
-/* Output a unsigned integer, stored into field 'field'
- Assumes it is in network byte order, converts to host before using */
-#define OUT_INT64(field) \
- proto_tree_add_item(tree, field, tvb, offset, 8, FALSE); \
- offset += 8;
-
-/* Output a unsigned integer, stored into field 'field'
- Assumes it is in network byte order, converts to host before using,
- Note - does not increment offset, so can be used repeatedly for bitfields */
-#define DISP_UINT(field) \
- proto_tree_add_uint(tree,field,tvb,offset,sizeof(guint32),tvb_get_ntohl(tvb, offset));
-
-/* Output an IPv4 address, stored into field 'field' */
-#define OUT_IP(field) \
- proto_tree_add_ipv4(tree,field,tvb,offset,sizeof(gint32),\
- tvb_get_letohl(tvb, offset));\
- offset += 4;
-
-/* Output a simple rx array */
-#define OUT_RXArray8(func) \
- { \
- unsigned int j,i; \
- j = tvb_get_guint8(tvb, offset); \
- offset += 1; \
- for (i=0; i<j; i++) { \
- func; \
- } \
- }
-
-/* Output a simple rx array */
-#define OUT_RXArray32(func) \
- { \
- unsigned int j,i; \
- j = tvb_get_ntohl(tvb, offset); \
- offset += sizeof(guint32); \
- for (i=0; i<j; i++) { \
- func; \
- } \
- }
-
-/* Output a UNIX seconds/microseconds timestamp, after converting to an
- nstime_t */
-#define OUT_TIMESTAMP(field) \
- { nstime_t ts; \
- ts.secs = tvb_get_ntohl(tvb, offset); \
- ts.nsecs = tvb_get_ntohl(tvb, offset)*1000; \
- proto_tree_add_time(tree,field, tvb,offset,2*sizeof(guint32),&ts); \
- offset += 8; \
- }
-
-/* Output a seconds-only time value, after converting to an nstime_t;
- this can be an absolute time as a UNIX time-since-epoch, or a
- relative time in seconds */
-#define OUT_TIMESECS(field) \
- { nstime_t ts; \
- ts.secs = tvb_get_ntohl(tvb, offset); \
- ts.nsecs = 0; \
- proto_tree_add_time(tree,field, tvb,offset,sizeof(guint32),&ts); \
- offset += 4; \
- }
-
-/* Output a rx style string, up to a maximum length first
- 4 bytes - length, then char data */
-#define OUT_RXString(field) \
- { guint32 i,len; \
- char *tmp; \
- const guint8 *p; \
- i = tvb_get_ntohl(tvb, offset); \
- offset += 4; \
- p = tvb_get_ptr(tvb,offset,i); \
- len = ((i+4-1)/4)*4; \
- tmp = g_malloc(i+1); \
- memcpy(tmp, p, i); \
- tmp[i] = '\0'; \
- proto_tree_add_string(tree, field, tvb, offset-4, len+4, \
- (void *)tmp); \
- g_free(tmp); \
- offset += len; \
- }
-
-/* Output a fixed length vectorized string (each char is a 32 bit int) */
-#define OUT_RXStringV(field, length) \
- { char tmp[length+1]; \
- int i,soff; \
- soff = offset;\
- for (i=0; i<length; i++)\
- {\
- tmp[i] = (char) tvb_get_ntohl(tvb, offset);\
- offset += sizeof(guint32);\
- }\
- tmp[length] = '\0';\
- proto_tree_add_string(tree, field, tvb, soff, length*sizeof(guint32), tmp);\
- }
-
-
-/* Output a callback */
-#define OUT_FS_AFSCallBack() \
- { proto_tree *save, *ti; \
- ti = proto_tree_add_text(tree, tvb, offset, 3*4, "Callback"); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_callback); \
- OUT_UINT(hf_afs_fs_callback_version); \
- OUT_TIMESECS(hf_afs_fs_callback_expires); \
- OUT_UINT(hf_afs_fs_callback_type); \
- tree = save; \
- }
-
-/* Output a callback */
-#define OUT_CB_AFSCallBack() \
- { proto_tree *save, *ti; \
- ti = proto_tree_add_text(tree, tvb, offset, 3*4, "Callback"); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_callback); \
- OUT_UINT(hf_afs_cb_callback_version); \
- OUT_TIMESECS(hf_afs_cb_callback_expires); \
- OUT_UINT(hf_afs_cb_callback_type); \
- tree = save; \
- }
-
-/* Output a File ID */
-#define OUT_FS_AFSFid(label) \
- { proto_tree *save, *ti; \
- ti = proto_tree_add_text(tree, tvb, offset, 3*4, \
- "FileID (%s)", label); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_fid); \
- OUT_UINT(hf_afs_fs_fid_volume); \
- OUT_UINT(hf_afs_fs_fid_vnode); \
- OUT_UINT(hf_afs_fs_fid_uniqifier); \
- tree = save; \
- }
-
-/* Output a Status mask */
-#define OUT_FS_STATUSMASK() \
- { proto_tree *save, *ti; \
- guint32 mask; \
- mask = tvb_get_ntohl(tvb, offset); \
- ti = proto_tree_add_uint(tree, hf_afs_fs_status_mask, tvb, offset, \
- sizeof(guint32), mask); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_status_mask); \
- proto_tree_add_boolean(tree, hf_afs_fs_status_mask_setmodtime, \
- tvb,offset,sizeof(guint32), mask); \
- proto_tree_add_boolean(tree, hf_afs_fs_status_mask_setowner, \
- tvb,offset,sizeof(guint32), mask); \
- proto_tree_add_boolean(tree, hf_afs_fs_status_mask_setgroup, \
- tvb,offset,sizeof(guint32), mask); \
- proto_tree_add_boolean(tree, hf_afs_fs_status_mask_setmode, \
- tvb,offset,sizeof(guint32), mask); \
- proto_tree_add_boolean(tree, hf_afs_fs_status_mask_setsegsize, \
- tvb,offset,sizeof(guint32), mask); \
- proto_tree_add_boolean(tree, hf_afs_fs_status_mask_fsync, \
- tvb,offset,sizeof(guint32), mask); \
- offset += 4; \
- tree = save; \
- }
-
-/* Output vldb flags */
-#define OUT_VLDB_Flags() \
- { proto_tree *save, *ti; \
- guint32 flags; \
- flags = tvb_get_ntohl(tvb, offset); \
- ti = proto_tree_add_uint(tree, hf_afs_vldb_flags, tvb, offset, \
- sizeof(guint32), flags); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_vldb_flags); \
- proto_tree_add_boolean(tree, hf_afs_vldb_flags_rwexists, \
- tvb,offset,sizeof(guint32), flags); \
- proto_tree_add_boolean(tree, hf_afs_vldb_flags_roexists, \
- tvb,offset,sizeof(guint32), flags); \
- proto_tree_add_boolean(tree, hf_afs_vldb_flags_bkexists, \
- tvb,offset,sizeof(guint32), flags); \
- proto_tree_add_boolean(tree, hf_afs_vldb_flags_dfsfileset, \
- tvb,offset,sizeof(guint32), flags); \
- offset += 4; \
- tree = save; \
- }
-
-
-
-/* Output a File ID */
-#define OUT_CB_AFSFid(label) \
- { proto_tree *save, *ti; \
- ti = proto_tree_add_text(tree, tvb, offset, 3*4, \
- "FileID (%s)", label); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_fid); \
- OUT_UINT(hf_afs_cb_fid_volume); \
- OUT_UINT(hf_afs_cb_fid_vnode); \
- OUT_UINT(hf_afs_cb_fid_uniqifier); \
- tree = save; \
- }
-
-/* Output a StoreStatus */
-#define OUT_FS_AFSStoreStatus(label) \
- { proto_tree *save, *ti; \
- ti = proto_tree_add_text(tree, tvb, offset, 6*4, \
- label); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_status); \
- OUT_FS_STATUSMASK(); \
- OUT_TIMESECS(hf_afs_fs_status_clientmodtime); \
- OUT_UINT(hf_afs_fs_status_owner); \
- OUT_UINT(hf_afs_fs_status_group); \
- OUT_UINT(hf_afs_fs_status_mode); \
- OUT_UINT(hf_afs_fs_status_segsize); \
- tree = save; \
- }
-
-/* Output a FetchStatus */
-#define OUT_FS_AFSFetchStatus(label) \
- { proto_tree *save, *ti; \
- ti = proto_tree_add_text(tree, tvb, offset, 21*4, \
- label); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_status); \
- OUT_UINT(hf_afs_fs_status_interfaceversion); \
- OUT_UINT(hf_afs_fs_status_filetype); \
- OUT_UINT(hf_afs_fs_status_linkcount); \
- OUT_UINT(hf_afs_fs_status_length); \
- OUT_UINT(hf_afs_fs_status_dataversion); \
- OUT_UINT(hf_afs_fs_status_author); \
- OUT_UINT(hf_afs_fs_status_owner); \
- OUT_UINT(hf_afs_fs_status_calleraccess); \
- OUT_UINT(hf_afs_fs_status_anonymousaccess); \
- OUT_UINT(hf_afs_fs_status_mode); \
- OUT_UINT(hf_afs_fs_status_parentvnode); \
- OUT_UINT(hf_afs_fs_status_parentunique); \
- OUT_UINT(hf_afs_fs_status_segsize); \
- OUT_TIMESECS(hf_afs_fs_status_clientmodtime); \
- OUT_TIMESECS(hf_afs_fs_status_servermodtime); \
- OUT_UINT(hf_afs_fs_status_group); \
- OUT_UINT(hf_afs_fs_status_synccounter); \
- OUT_UINT(hf_afs_fs_status_dataversionhigh); \
- OUT_UINT(hf_afs_fs_status_spare2); \
- OUT_UINT(hf_afs_fs_status_spare3); \
- OUT_UINT(hf_afs_fs_status_spare4); \
- tree = save; \
- }
-
-/* Output a VolSync */
-#define OUT_FS_AFSVolSync() \
- { proto_tree *save, *ti; \
- ti = proto_tree_add_text(tree, tvb, offset, 6*4, \
- "VolSync"); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_volsync); \
- OUT_TIMESECS(hf_afs_fs_volsync_spare1); \
- OUT_UINT(hf_afs_fs_volsync_spare2); \
- OUT_UINT(hf_afs_fs_volsync_spare3); \
- OUT_UINT(hf_afs_fs_volsync_spare4); \
- OUT_UINT(hf_afs_fs_volsync_spare5); \
- OUT_UINT(hf_afs_fs_volsync_spare6); \
- tree = save; \
- }
-
-/* Output a AFSCBFids */
-#define OUT_FS_AFSCBFids() \
- OUT_RXArray32(OUT_FS_AFSFid("Target"));
-
-/* Output a ViceIds */
-#define OUT_FS_ViceIds() \
- OUT_RXArray8(OUT_UINT(hf_afs_fs_viceid));
-
-/* Output a IPAddrs */
-#define OUT_FS_IPAddrs() \
- OUT_RXArray8(OUT_IP(hf_afs_fs_ipaddr));
-
-/* Output a AFSCBs */
-#define OUT_FS_AFSCBs() \
- OUT_RXArray32(OUT_FS_AFSCallBack());
-
-/* Output a AFSBulkStats */
-#define OUT_FS_AFSBulkStats() \
- OUT_RXArray32(OUT_FS_AFSFetchStatus("Status"));
-
-/* Output a AFSFetchVolumeStatus */
-#define OUT_FS_AFSFetchVolumeStatus()
-
-/* Output a AFSStoreVolumeStatus */
-#define OUT_FS_AFSStoreVolumeStatus()
-
-/* Output a ViceStatistics structure */
-#define OUT_FS_ViceStatistics()
-
-/* Output a AFS_CollData structure */
-#define OUT_FS_AFS_CollData()
-
-/* Output a VolumeInfo structure */
-#define OUT_FS_VolumeInfo()
-
-/* Output an AFS Token - might just be bytes though */
-#define OUT_FS_AFSTOKEN() OUT_RXStringV(hf_afs_fs_token, 1024)
-
-/* Output a AFS acl */
-#define ACLOUT(who, positive, acl, bytes) \
- { proto_tree *save, *ti; \
- int tmpoffset; \
- int acllen; \
- char tmp[10]; \
- tmp[0] = 0; \
- if ( acl & PRSFS_READ ) strcat(tmp, "r"); \
- if ( acl & PRSFS_LOOKUP ) strcat(tmp, "l"); \
- if ( acl & PRSFS_INSERT ) strcat(tmp, "i"); \
- if ( acl & PRSFS_DELETE ) strcat(tmp, "d"); \
- if ( acl & PRSFS_WRITE ) strcat(tmp, "w"); \
- if ( acl & PRSFS_LOCK ) strcat(tmp, "k"); \
- if ( acl & PRSFS_ADMINISTER ) strcat(tmp, "a"); \
- ti = proto_tree_add_text(tree, tvb, offset, bytes, \
- "ACL: %s %s%s", \
- who, tmp, positive ? "" : " (negative)"); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_acl); \
- proto_tree_add_string(tree,hf_afs_fs_acl_entity, tvb,offset,strlen(who), who);\
- tmpoffset = offset + strlen(who) + 1; \
- acllen = bytes - strlen(who) - 1; \
- proto_tree_add_boolean(tree,hf_afs_fs_acl_r, tvb,tmpoffset,acllen,acl);\
- proto_tree_add_boolean(tree,hf_afs_fs_acl_l, tvb,tmpoffset,acllen,acl);\
- proto_tree_add_boolean(tree,hf_afs_fs_acl_i, tvb,tmpoffset,acllen,acl);\
- proto_tree_add_boolean(tree,hf_afs_fs_acl_d, tvb,tmpoffset,acllen,acl);\
- proto_tree_add_boolean(tree,hf_afs_fs_acl_w, tvb,tmpoffset,acllen,acl);\
- proto_tree_add_boolean(tree,hf_afs_fs_acl_k, tvb,tmpoffset,acllen,acl);\
- proto_tree_add_boolean(tree,hf_afs_fs_acl_a, tvb,tmpoffset,acllen,acl);\
- tree = save; \
- }
-
-/* Output a UUID */
-#define OUT_UUID(x) \
- OUT_BYTES(x, 11*sizeof(guint32));
-#define SKIP_UUID() \
- SKIP(11*sizeof(guint32));
-
-
-/* Output a bulkaddr */
-#define OUT_VLDB_BulkAddr() \
- OUT_RXArray32(OUT_IP(hf_afs_vldb_serverip));
-
-/* output a bozo_key */
-#define OUT_BOS_KEY() \
- OUT_BYTES(hf_afs_bos_key, 8);
-
-/* output a bozo_key */
-#define OUT_BOS_KEYINFO() \
- OUT_TIMESTAMP(hf_afs_bos_keymodtime); \
- OUT_UINT(hf_afs_bos_keychecksum); \
- OUT_UINT(hf_afs_bos_keyspare2);
-
-/* output a bozo_netKTime */
-#define OUT_BOS_TIME() \
- SKIP(4); SKIP(2); SKIP(2); SKIP(2); SKIP(2);
-
-/* output a bozo_status */
-#define OUT_BOS_STATUS() \
- SKIP(10 * 4);
-
-/* output a ubik interface addr array */
-#define OUT_UBIK_InterfaceAddrs() \
- { \
- unsigned int i,j,seen_null=0; \
- for (i=0; i<255; i++) { \
- j = tvb_get_ntohl(tvb, offset); \
- if ( j != 0 ) { \
- OUT_IP(hf_afs_ubik_interface); \
- seen_null = 0; \
- } else { \
- if ( ! seen_null ) { \
- proto_tree_add_text(tree, tvb, offset, \
- tvb_length_remaining(tvb, offset), \
- "Null Interface Addresses"); \
- seen_null = 1; \
- } \
- offset += 4; \
- }\
- } \
- }
-
-#define OUT_UBIK_DebugOld() \
- { \
- OUT_TIMESECS(hf_afs_ubik_now); \
- OUT_TIMESECS(hf_afs_ubik_lastyestime); \
- OUT_IP(hf_afs_ubik_lastyeshost); \
- OUT_UINT(hf_afs_ubik_lastyesstate); \
- OUT_TIMESECS(hf_afs_ubik_lastyesclaim); \
- OUT_IP(hf_afs_ubik_lowesthost); \
- OUT_TIMESECS(hf_afs_ubik_lowesttime); \
- OUT_IP(hf_afs_ubik_synchost); \
- OUT_TIMESECS(hf_afs_ubik_synctime); \
- OUT_UBIKVERSION("Sync Version"); \
- OUT_UBIKVERSION("Sync TID"); \
- OUT_UINT(hf_afs_ubik_amsyncsite); \
- OUT_TIMESECS(hf_afs_ubik_syncsiteuntil); \
- OUT_UINT(hf_afs_ubik_nservers); \
- OUT_UINT(hf_afs_ubik_lockedpages); \
- OUT_UINT(hf_afs_ubik_writelockedpages); \
- OUT_UBIKVERSION("Local Version"); \
- OUT_UINT(hf_afs_ubik_activewrite); \
- OUT_UINT(hf_afs_ubik_tidcounter); \
- OUT_UINT(hf_afs_ubik_anyreadlocks); \
- OUT_UINT(hf_afs_ubik_anywritelocks); \
- OUT_UINT(hf_afs_ubik_recoverystate); \
- OUT_UINT(hf_afs_ubik_currenttrans); \
- OUT_UINT(hf_afs_ubik_writetrans); \
- OUT_TIMESECS(hf_afs_ubik_epochtime); \
- }
-
-#define OUT_UBIK_SDebugOld() \
- { \
- OUT_IP(hf_afs_ubik_addr); \
- OUT_TIMESECS(hf_afs_ubik_lastvotetime); \
- OUT_TIMESECS(hf_afs_ubik_lastbeaconsent); \
- OUT_UINT(hf_afs_ubik_lastvote); \
- OUT_UBIKVERSION("Remote Version"); \
- OUT_UINT(hf_afs_ubik_currentdb); \
- OUT_UINT(hf_afs_ubik_beaconsincedown); \
- OUT_UINT(hf_afs_ubik_up); \
- }
-
-/* Skip a certain number of bytes */
-#define SKIP(bytes) \
- offset += bytes;
-
-/* Raw data - to end of frame */
-#define OUT_BYTES_ALL(field) OUT_BYTES(field, tvb_length_remaining(tvb,offset))
-
-/* Raw data */
-#define OUT_BYTES(field, bytes) \
- proto_tree_add_item(tree, field, tvb, offset, bytes, FALSE);\
- offset += bytes;
-
-
-
-/* Skip the opcode */
-#define SKIP_OPCODE() \
- { \
- SKIP(sizeof(guint32)); \
- }
-
-/* Output a UBIK version code */
-#define OUT_UBIKVERSION(label) \
- { proto_tree *save, *ti; \
- unsigned int epoch,counter; \
- nstime_t ts; \
- epoch = tvb_get_ntohl(tvb, offset); \
- offset += 4; \
- counter = tvb_get_ntohl(tvb, offset); \
- offset += 4; \
- ts.secs = epoch; \
- ts.nsecs = 0; \
- ti = proto_tree_add_text(tree, tvb, offset-8, 8, \
- "UBIK Version (%s): %u.%u", label, epoch, counter ); \
- save = tree; \
- tree = proto_item_add_subtree(ti, ett_afs_ubikver); \
- if ( epoch != 0 ) \
- proto_tree_add_time(tree,hf_afs_ubik_version_epoch, tvb,offset-8, \
- sizeof(guint32),&ts); \
- else \
- proto_tree_add_text(tree, tvb, offset-8, \
- sizeof(guint32),"Epoch: 0"); \
- proto_tree_add_uint(tree,hf_afs_ubik_version_counter, tvb,offset-4, \
- sizeof(guint32),counter); \
- tree = save; \
- }
-
-/* Output a kauth getticket request */
-#define OUT_KAUTH_GetTicket() \
- { \
- int len = 0; \
- OUT_UINT(hf_afs_kauth_kvno); \
- OUT_RXString(hf_afs_kauth_domain); \
- len = tvb_get_ntohl(tvb, offset); \
- offset += 4; \
- OUT_BYTES(hf_afs_kauth_data, len); \
- OUT_RXString(hf_afs_kauth_princ); \
- OUT_RXString(hf_afs_kauth_realm); \
- }
-