Ethereal-dev: [Ethereal-dev] porting to ReliantUNIX
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Dr. Uwe Girlich" <Uwe.Girlich@xxxxxxxxxxx>
Date: Tue, 28 Nov 2000 07:25:54 +0100
Hello! >From time to time I try to overcome some obstacles, which separate me from my goal to create an ethereal package for ReliantUNIX 5.43 .. 5.45. My current problem is packet-afs.c. I use gcc 2.95.2 for compiling but the original Siemens assembler and linker for the later stages. The routine dissect_fs_reply() has a simple switch statement with many macros in it. It is obvious, that this code expands enormously. The MIPS assembler is not able to handle this file at all. After a bit of code optimization (in many switch cases is the same or very similar code) the assembler does not even generate a warning any more. I'm not so involved in afs, so I did not just check in the changes but provide the patch here for further inspection. Does it look good? Bye, Uwe
*** packet-afs.c.org Mon Nov 20 05:36:07 2000 --- packet-afs.c Sat Nov 25 09:52:35 2000 *************** *** 542,564 **** OUT_FS_AFSVolSync(); break; case 133: /* Store data */ - OUT_FS_AFSFetchStatus("Status"); - OUT_FS_AFSVolSync(); - break; case 134: /* Store ACL */ - OUT_FS_AFSFetchStatus("Status"); - OUT_FS_AFSVolSync(); - break; case 135: /* Store status */ - OUT_FS_AFSFetchStatus("Status"); - OUT_FS_AFSVolSync(); - break; case 136: /* Remove file */ OUT_FS_AFSFetchStatus("Status"); OUT_FS_AFSVolSync(); break; case 137: /* create file */ ! OUT_FS_AFSFid("New File"); OUT_FS_AFSFetchStatus("File Status"); OUT_FS_AFSFetchStatus("Directory Status"); OUT_FS_AFSCallBack(); --- 542,558 ---- OUT_FS_AFSVolSync(); break; case 133: /* Store data */ case 134: /* Store ACL */ case 135: /* Store status */ case 136: /* Remove file */ OUT_FS_AFSFetchStatus("Status"); OUT_FS_AFSVolSync(); break; case 137: /* create file */ ! case 141: /* make dir */ ! case 161: /* lookup */ ! case 163: /* dfs symlink */ ! OUT_FS_AFSFid((opcode == 137)? "New File" : ((opcode == 141)? "New Directory" : "File")); OUT_FS_AFSFetchStatus("File Status"); OUT_FS_AFSFetchStatus("Directory Status"); OUT_FS_AFSCallBack(); *************** *** 571,612 **** break; case 139: /* symlink */ OUT_FS_AFSFid("Symlink"); - OUT_FS_AFSFetchStatus("Symlink Status"); - OUT_FS_AFSFetchStatus("Directory Status"); - OUT_FS_AFSVolSync(); - break; case 140: /* link */ OUT_FS_AFSFetchStatus("Symlink Status"); - OUT_FS_AFSFetchStatus("Directory Status"); - OUT_FS_AFSVolSync(); - break; - case 141: /* make dir */ - OUT_FS_AFSFid("New Directory"); - OUT_FS_AFSFetchStatus("File Status"); - OUT_FS_AFSFetchStatus("Directory Status"); - OUT_FS_AFSCallBack(); - OUT_FS_AFSVolSync(); - break; case 142: /* rmdir */ OUT_FS_AFSFetchStatus("Directory Status"); OUT_FS_AFSVolSync(); break; case 143: /* old set lock */ - /* nothing returned */ - break; case 144: /* old extend lock */ - /* nothing returned */ - break; case 145: /* old release lock */ /* nothing returned */ break; case 146: /* get statistics */ OUT_FS_ViceStatistics(); break; - case 147: /* give up callbacks */ - /* nothing returned */ - break; case 148: /* get volume info */ OUT_FS_VolumeInfo(); break; case 149: /* get volume status */ --- 565,589 ---- break; case 139: /* symlink */ OUT_FS_AFSFid("Symlink"); case 140: /* link */ OUT_FS_AFSFetchStatus("Symlink Status"); case 142: /* rmdir */ OUT_FS_AFSFetchStatus("Directory Status"); OUT_FS_AFSVolSync(); break; case 143: /* old set lock */ case 144: /* old extend lock */ case 145: /* old release lock */ + case 147: /* give up callbacks */ + case 150: /* set volume status */ + case 152: /* check token */ /* nothing returned */ break; case 146: /* get statistics */ OUT_FS_ViceStatistics(); break; case 148: /* get volume info */ + case 154: /* n-get-volume-info */ OUT_FS_VolumeInfo(); break; case 149: /* get volume status */ *************** *** 615,646 **** OUT_STRING(hf_afs_fs_offlinemsg); OUT_STRING(hf_afs_fs_motd); break; - case 150: /* set volume status */ - /* nothing returned */ - break; case 151: /* root volume */ OUT_STRING(hf_afs_fs_volname); break; - case 152: /* check token */ - /* nothing returned */ - break; case 153: /* get time */ OUT_TIMESTAMP(hf_afs_fs_timestamp); break; - case 154: /* n-get-volume-info */ - OUT_FS_VolumeInfo(); - break; case 155: /* bulk status */ OUT_FS_AFSBulkStats(); OUT_FS_AFSCBs(); OUT_FS_AFSVolSync(); break; case 156: /* set lock */ - OUT_FS_AFSVolSync(); - break; case 157: /* extend lock */ - OUT_FS_AFSVolSync(); - break; case 158: /* release lock */ OUT_FS_AFSVolSync(); break; --- 592,610 ---- *************** *** 652,674 **** OUT_DATE(hf_afs_fs_xstats_timestamp); OUT_FS_AFS_CollData(); break; - case 161: /* lookup */ - OUT_FS_AFSFid("File"); - OUT_FS_AFSFetchStatus("File Status"); - OUT_FS_AFSFetchStatus("Directory Status"); - OUT_FS_AFSCallBack(); - OUT_FS_AFSVolSync(); - break; case 162: /* flush cps */ OUT_UINT(hf_afs_fs_cps_spare2); OUT_UINT(hf_afs_fs_cps_spare3); - break; - case 163: /* dfs symlink */ - OUT_FS_AFSFid("File"); - OUT_FS_AFSFetchStatus("File Status"); - OUT_FS_AFSFetchStatus("Directory Status"); - OUT_FS_AFSCallBack(); - OUT_FS_AFSVolSync(); break; } } --- 616,624 ----
- Follow-Ups:
- Re: [Ethereal-dev] porting to ReliantUNIX
- From: Dr. Uwe Girlich
- Re: [Ethereal-dev] porting to ReliantUNIX
- Prev by Date: Re: [Ethereal-dev] Vendor ID error in packet-radius.c
- Next by Date: Re: [Ethereal-dev] Vendor ID error in packet-radius.c
- Previous by thread: Re: [Ethereal-dev] Some TVB rountines I want to add ...
- Next by thread: Re: [Ethereal-dev] porting to ReliantUNIX
- Index(es):