This is afppacks.c in view mode; [Download] [Up]
/*
* $Author: cck $ $Date: 88/05/13 09:28:01 $
* $Header: afppacks.c,v 1.7 88/05/13 09:28:01 cck Rel $
* $Revision: 1.7 $
*/
/*
* afppacks.c - Packing and unpacking templates
*
* AppleTalk package for UNIX (4.2 BSD).
*
* Copyright (c) 1986, 1987 by The Trustees of Columbia University in the
* City of New York.
*
* Edit History:
*
* march 23, 1987 CCKim Created from afpcmd.c
*
*/
#include <sys/types.h>
#include <netat/appletalk.h>
#include <netat/afp.h>
#include <netat/afpcmd.h>
#define NULL 0
PackEntry EnumPackR[] = {
PACK(ERPPtr,P_WORD,enur_fbitmap),
PACK(ERPPtr,P_WORD,enur_dbitmap),
PACK(ERPPtr,P_WORD,enur_actcnt),
PACKEND()
};
PackEntry DirParmPackR[] = {
PACK(FDParmPtr,P_WORD,fdp_fbitmap),
PACK(FDParmPtr,P_WORD,fdp_dbitmap),
PACK(FDParmPtr,P_BYTE,fdp_flg),
PACK(FDParmPtr,P_BYTE,fdp_zero),
PACKEND()
};
PackEntry FilePackR[] = {
PACK(FDParmPtr,P_BMAP,fdp_fbitmap), /* start of bitmap parms */
PAKB(FDParmPtr,P_WORD,fdp_attr,FP_ATTR),
PAKB(FDParmPtr,P_DWRD,fdp_pdirid,FP_PDIR),
PAKB(FDParmPtr,P_TIME,fdp_cdate,FP_CDATE),
PAKB(FDParmPtr,P_TIME,fdp_mdate,FP_MDATE),
PAKB(FDParmPtr,P_TIME,fdp_bdate,FP_BDATE),
PKSB(FDParmPtr,P_BYTS,fdp_finfo,FP_FINFO),
PKSB(FDParmPtr,P_OSTR,fdp_lname,FP_LNAME),
PKSB(FDParmPtr,P_OSTR,fdp_sname,FP_SNAME),
PAKB(FDParmPtr,P_DWRD,fdp_parms.fp_parms.fp_fileno,FP_FILNO),
PAKB(FDParmPtr,P_DWRD,fdp_parms.fp_parms.fp_dflen,FP_DFLEN),
PAKB(FDParmPtr,P_DWRD,fdp_parms.fp_parms.fp_rflen,FP_RFLEN),
PAKB(FDParmPtr,P_WORD,fdp_prodos_ft,FP_PDOS),
PAKB(FDParmPtr,P_DWRD,fdp_prodos_aux,FP_PDOS),
PACKEND()
};
PackEntry DirPackR[] = {
PACK(FDParmPtr,P_BMAP,fdp_dbitmap), /* start of bitmap parms */
PAKB(FDParmPtr,P_WORD,fdp_attr,DP_ATTR),
PAKB(FDParmPtr,P_DWRD,fdp_pdirid,DP_PDIR),
PAKB(FDParmPtr,P_TIME,fdp_cdate,DP_CDATE),
PAKB(FDParmPtr,P_TIME,fdp_mdate,DP_MDATE),
PAKB(FDParmPtr,P_TIME,fdp_bdate,DP_BDATE),
PKSB(FDParmPtr,P_BYTS,fdp_finfo,DP_FINFO),
PKSB(FDParmPtr,P_OSTR,fdp_lname,DP_LNAME),
PKSB(FDParmPtr,P_OSTR,fdp_sname,DP_SNAME),
PAKB(FDParmPtr,P_DWRD,fdp_parms.dp_parms.dp_dirid,DP_DIRID),
PAKB(FDParmPtr,P_WORD,fdp_parms.dp_parms.dp_nchild,DP_CHILD),
PAKB(FDParmPtr,P_DWRD,fdp_parms.dp_parms.dp_ownerid,DP_CRTID),
PAKB(FDParmPtr,P_DWRD,fdp_parms.dp_parms.dp_groupid,DP_GRPID),
PAKB(FDParmPtr,P_DWRD,fdp_parms.dp_parms.dp_accright,DP_ACCES),
PAKB(FDParmPtr,P_WORD,fdp_prodos_ft,DP_PDOS),
PAKB(FDParmPtr,P_DWRD,fdp_prodos_aux,DP_PDOS),
PACKEND()
};
PackEntry ProtoGVPP[] = { /* FPGetVolParms */
PACK(GVPPPtr,P_BYTE,gvp_cmd), /* command */
PACK(GVPPPtr,P_ZERO,gvp_zero), /* always zero */
PACK(GVPPPtr,P_WORD,gvp_volid), /* volume id */
PACK(GVPPPtr,P_WORD,gvp_bitmap), /* request bitmap */
PACKEND()
};
PackEntry ProtoSVPP[] = { /* FPSetVolParms */
PACK(SVPPPtr,P_BYTE,svp_cmd), /* command */
PACK(SVPPPtr,P_ZERO,svp_zero), /* always zero */
PACK(SVPPPtr,P_WORD,svp_volid), /* volume id */
PACK(SVPPPtr,P_WORD,svp_bitmap), /* set bitmap */
PACK(SVPPPtr,P_DWRD,svp_backdata), /* backup data to set */
PACKEND()
};
PackEntry ProtoOVP[] = { /* FPOpenVol */
PACK(OVPPtr,P_BYTE,ovl_cmd), /* command */
PACK(OVPPtr,P_ZERO,ovl_zero), /* always zero */
PACK(OVPPtr,P_WORD,ovl_bitmap), /* request bitmap */
PAKS(OVPPtr,P_PSTR,ovl_name), /* volume name packed */
PACKEVEN(), /* even out if necessary */
PAKS(OVPPtr,P_BYTS,ovl_pass), /* password packed */
PACKEND()
};
PackEntry ProtoCVP[] = { /* FPCloseVol */
PACK(CVPPtr,P_BYTE,cv_cmd), /* command */
PACK(CVPPtr,P_ZERO,cv_zero), /* always zero */
PACK(CVPPtr,P_WORD,cv_volid), /* volume ID */
PACKEND()
};
PackEntry ProtoFVP[] = { /* FPFlushVol */
PACK(FPPtr,P_BYTE,fls_cmd), /* command */
PACK(FPPtr,P_ZERO,fls_zero), /* always zero */
PACK(FPPtr,P_WORD,fls_volid), /* volume ID */
PACKEND()
};
PackEntry ProtoMNP[] = { /* FPMapName */
PACK(MNPPtr,P_BYTE,mpn_cmd), /* MapName command */
PACK(MNPPtr,P_BYTE,mpn_fcn), /* function */
PAKS(MNPPtr,P_PATH,mpn_name), /* name */
PACKEND()
};
PackEntry ProtoMIP[] = { /* FPMapID */
PACK(MIPPtr,P_BYTE,mpi_cmd), /* MapID command */
PACK(MIPPtr,P_BYTE,mpi_fcn), /* function */
PACK(MIPPtr,P_DWRD,mpi_id), /* ID to map */
PACKEND()
};
PackEntry ProtoGFkPP[] = { /* FPGetForkParms */
PACK(GFkPPPtr,P_BYTE,gfp_cmd), /* command */
PACK(GFkPPPtr,P_ZERO,gfp_zero), /* zero word */
PACK(GFkPPPtr,P_WORD,gfp_refnum), /* reference number */
PACK(GFkPPPtr,P_WORD,gfp_bitmap), /* bitmap */
PACKEND()
};
PackEntry ProtoSFkPP[] = { /* FPSetForkParms */
PACK(SFkPPPtr,P_BYTE,sfkp_cmd), /* command */
PACK(SFkPPPtr,P_ZERO,sfkp_zero), /* zero word */
PACK(SFkPPPtr,P_WORD,sfkp_refnum), /* reference number */
PACK(SFkPPPtr,P_WORD,sfkp_bitmap), /* bitmap */
PACK(SFkPPPtr,P_BMAP,sfkp_bitmap), /* for attributes */
PAKB(SFkPPPtr,P_DWRD,sfkp_dflen,FP_DFLEN), /* fork length */
PAKB(SFkPPPtr,P_DWRD,sfkp_rflen,FP_RFLEN), /* fork length */
PACKEND()
};
PackEntry ProtoOFkP[] = { /* FPOpenFork */
PACK(OFkPPtr,P_BYTE,ofk_cmd), /* command */
PACK(OFkPPtr,P_BYTE,ofk_rdflg), /* resource/data flag */
PACK(OFkPPtr,P_WORD,ofk_volid), /* volume id */
PACK(OFkPPtr,P_DWRD,ofk_dirid), /* directory id */
PACK(OFkPPtr,P_WORD,ofk_bitmap), /* bitmap */
PACK(OFkPPtr,P_WORD,ofk_mode), /* access mode */
PACK(OFkPPtr,P_BYTE,ofk_ptype), /* path type */
PAKS(OFkPPtr,P_PATH,ofk_path), /* path name */
PACKEND()
};
PackEntry ProtoOFkRP[] = {
PACK(OFkRPPtr, P_WORD, ofkr_bitmap), /* file bitmap */
PACK(OFkRPPtr, P_WORD, ofkr_refnum), /* open fork reference number */
PACKEND() /* file params follow */
};
PackEntry ProtoCFkP[] = { /* FPCloseFork */
PACK(CFkPPtr,P_BYTE,cfk_cmd), /* command */
PACK(CFkPPtr,P_ZERO,cfk_zero), /* zero byte */
PACK(CFkPPtr,P_WORD,cfk_refnum), /* reference number */
PACKEND()
};
PackEntry ProtoGFDPP[] = { /* FPGetFileDirParms */
PACK(GFDPPPtr,P_BYTE,gdp_cmd), /* command */
PACK(GFDPPPtr,P_ZERO,gdp_zero), /* always zero */
PACK(GFDPPPtr,P_WORD,gdp_volid), /* volume id */
PACK(GFDPPPtr,P_DWRD,gdp_dirid), /* directory id */
PACK(GFDPPPtr,P_WORD,gdp_fbitmap), /* file request bitmap */
PACK(GFDPPPtr,P_WORD,gdp_dbitmap), /* directory request bitmap */
PACK(GFDPPPtr,P_BYTE,gdp_ptype), /* path type */
PAKS(GFDPPPtr,P_PATH,gdp_path), /* path */
PACKEND()
};
PackEntry ProtoCFP[] = { /* FPCreateFile */
PACK(CFPPtr,P_BYTE,crf_cmd), /* CreateFile command */
PACK(CFPPtr,P_BYTE,crf_flg), /* flags */
PACK(CFPPtr,P_WORD,crf_volid), /* volume id */
PACK(CFPPtr,P_DWRD,crf_dirid), /* directory id */
PACK(CFPPtr,P_BYTE,crf_ptype), /* path name type */
PAKS(CFPPtr,P_PATH,crf_path), /* path name */
PACKEND()
};
PackEntry ProtoSFPP[] = { /* FPSetFileParms */
PACK(SFPPPtr,P_BYTE,sfp_cmd), /* command */
PACK(SFPPPtr,P_ZERO,sfp_zero), /* always zero */
PACK(SFPPPtr,P_WORD,sfp_volid), /* volume id */
PACK(SFPPPtr,P_DWRD,sfp_dirid), /* directory id */
PACK(SFPPPtr,P_WORD,sfp_bitmap), /* set bitmap */
PACK(SFPPPtr,P_BMAP,sfp_bitmap), /* for attributes */
PACK(SFPPPtr,P_BYTE,sfp_ptype), /* path type */
PAKS(SFPPPtr,P_PATH,sfp_path), /* path + file parameters to set */
PACKEVEN(), /* even out if necessary */
PACKEND()
};
PackEntry ProtoCpFP[] = { /* FPCopyFile */
PACK(CpFPPtr,P_BYTE,cpf_cmd), /* command */
PACK(CpFPPtr,P_ZERO,cpf_zero), /* always zero */
PACK(CpFPPtr,P_WORD,cpf_svolid), /* source volume id */
PACK(CpFPPtr,P_DWRD,cpf_sdirid), /* source directory id */
PACK(CpFPPtr,P_WORD,cpf_dvolid), /* destination volume id */
PACK(CpFPPtr,P_DWRD,cpf_ddirid), /* destination directory id */
PACK(CpFPPtr,P_BYTE,cpf_sptype), /* source path type */
PAKS(CpFPPtr,P_PATH,cpf_spath), /* source path */
PACK(CpFPPtr,P_BYTE,cpf_dptype), /* destination path type */
PAKS(CpFPPtr,P_PATH,cpf_dpath), /* destination path */
PACK(CpFPPtr,P_BYTE,cpf_newtype), /* new path type */
PAKS(CpFPPtr,P_PSTR,cpf_newname), /* new name */
PACKEND()
};
PackEntry ProtoRFP[] = { /* FPRenameFile */
PACK(RPPtr,P_BYTE,ren_cmd), /* command */
PACK(RPPtr,P_ZERO,ren_zero), /* always zero */
PACK(RPPtr,P_WORD,ren_volid), /* volume id */
PACK(RPPtr,P_DWRD,ren_dirid), /* directory id */
PACK(RPPtr,P_BYTE,ren_ptype), /* path type */
PAKS(RPPtr,P_PATH,ren_path), /* path name */
PACK(RPPtr,P_BYTE,ren_ntype), /* new type */
PAKS(RPPtr,P_PATH,ren_npath), /* new path */
PACKEND()
};
PackEntry ProtoMFP[] = { /* FPMoveFile */
PACK(MPPtr,P_BYTE,mov_cmd), /* command */
PACK(MPPtr,P_ZERO,mov_zero), /* always zero */
PACK(MPPtr,P_WORD,mov_volid), /* volume id */
PACK(MPPtr,P_DWRD,mov_sdirid), /* source directory id */
PACK(MPPtr,P_DWRD,mov_ddirid), /* destination directory id */
PACK(MPPtr,P_BYTE,mov_sptype), /* source path type */
PAKS(MPPtr,P_PATH,mov_spath), /* source path */
PACK(MPPtr,P_BYTE,mov_dptype), /* destination path type */
PAKS(MPPtr,P_PATH,mov_dpath), /* destination path */
PACK(MPPtr,P_BYTE,mov_newtype), /* new type */
PAKS(MPPtr,P_PATH,mov_newname), /* new name */
PACKEND()
};
#ifdef notdef
PackEntry ProtoGDPP[] = { /* GetDirParms */
PACK(GDPPPtr,P_BYTE,gdp_cmd), /* command */
PACK(GDPPPtr,P_ZERO,gdp_zero), /* always zero */
PACK(GDPPPtr,P_WORD,gdp_volid), /* volume ID */
PACK(GDPPPtr,P_DWRD,gdp_dirid), /* directory id */
PACK(GDPPPtr,P_WORD,gdp_bitmap), /* bitmap */
PACK(GDPPPtr,P_BYTE,gdp_ptype), /* path type */
PAKS(GDPPPtr,P_PSTR,gdp_path), /* path */
PACKEND()
};
#endif
PackEntry ProtoSDPP[] = { /* FPSetDirParms */
PACK(SDPPPtr,P_BYTE,sdp_cmd), /* command */
PACK(SDPPPtr,P_ZERO,sdp_zero), /* always zero */
PACK(SDPPPtr,P_WORD,sdp_volid), /* volume ID */
PACK(SDPPPtr,P_DWRD,sdp_dirid), /* directory id */
PACK(SDPPPtr,P_WORD,sdp_bitmap), /* bitmap */
/* PACK(SDPPPtr,P_BMAP,sdp_bitmap), /* for attrib */
PACK(SDPPPtr,P_BYTE,sdp_ptype), /* path type */
PAKS(SDPPPtr,P_PATH,sdp_path), /* path */
PACKEVEN(), /* move to even boundary */
PACKEND()
};
PackEntry ProtoODP[] = { /* FPOpenDir */
PACK(ODPPtr,P_BYTE,odr_cmd), /* command */
PACK(ODPPtr,P_ZERO,odr_zero), /* always zero */
PACK(ODPPtr,P_WORD,odr_volid), /* volume ID */
PACK(ODPPtr,P_DWRD,odr_dirid), /* directory ID */
PACK(ODPPtr,P_BYTE,odr_ptype), /* path type */
PAKS(ODPPtr,P_PATH,odr_path), /* path */
PACKEND()
};
PackEntry ProtoCDP[] = { /* FPCloseDir */
PACK(CDPPtr,P_BYTE,cdr_cmd), /* command */
PACK(CDPPtr,P_ZERO,cdr_zero), /* always zero */
PACK(CDPPtr,P_WORD,cdr_volid), /* volume id */
PACK(CDPPtr,P_DWRD,cdr_dirid), /* directory id */
PACKEND()
};
PackEntry ProtoDFP[] = { /* FPDeleteFile */
PACK(DPPtr,P_BYTE,del_cmd), /* command */
PACK(DPPtr,P_ZERO,del_zero), /* always zero */
PACK(DPPtr,P_WORD,del_volid), /* volume id */
PACK(DPPtr,P_DWRD,del_dirid), /* directory id */
PACK(DPPtr,P_BYTE,del_ptype), /* path type */
PAKS(DPPtr,P_PATH,del_path), /* path */
PACKEND()
};
PackEntry ProtoEP[] = { /* FPEnumerate */
PACK(EPPtr,P_BYTE,enu_cmd), /* command */
PACK(EPPtr,P_ZERO,enu_zero), /* always zero */
PACK(EPPtr,P_WORD,enu_volid), /* volume id */
PACK(EPPtr,P_DWRD,enu_dirid), /* directory id */
PACK(EPPtr,P_WORD,enu_fbitmap), /* file bitmap */
PACK(EPPtr,P_WORD,enu_dbitmap), /* directory bitmap */
PACK(EPPtr,P_WORD,enu_reqcnt), /* request count */
PACK(EPPtr,P_WORD,enu_stidx), /* start index */
PACK(EPPtr,P_WORD,enu_maxreply), /* max reply size */
PACK(EPPtr,P_BYTE,enu_ptype), /* path type */
PAKS(EPPtr,P_PATH,enu_path), /* path */
PACKEND()
};
PackEntry ProtoEPR[] = {
PACK(ERPPtr, P_WORD, enur_fbitmap),
PACK(ERPPtr, P_WORD, enur_dbitmap),
PACK(ERPPtr, P_WORD, enur_actcnt),
PACKEND()
};
PackEntry ProtoCRDP[] = { /* FPCreateDir */
PACK(CRDPPtr,P_BYTE,crd_cmd), /* command */
PACK(CRDPPtr,P_ZERO,crd_zero), /* always zero */
PACK(CRDPPtr,P_WORD,crd_volid), /* volume id */
PACK(CRDPPtr,P_DWRD,crd_dirid), /* directory id */
PACK(CRDPPtr,P_BYTE,crd_ptype), /* path type */
PAKS(CRDPPtr,P_PATH,crd_path), /* path */
PACKEND()
};
PackEntry ProtoODT[] = { /* FPOpenDT */
PACK(ODTPPtr,P_BYTE,odt_cmd),
PACK(ODTPPtr,P_ZERO,odt_zero),
PACK(ODTPPtr,P_WORD,odt_volid), /* volid */
PACKEND()
};
PackEntry ProtoCDT[] = { /* FPCloseDT */
PACK(CDTPPtr,P_BYTE,cdt_cmd),
PACK(CDTPPtr,P_ZERO,cdt_zero),
PACK(CDTPPtr,P_WORD,cdt_dtrefnum), /* */
PACKEND()
};
PackEntry ProtoGI[] = { /* GetIcon */
PACK(GIPPtr,P_BYTE,gic_cmd),
PACK(GIPPtr,P_ZERO,gic_zero),
PACK(GIPPtr,P_WORD,gic_dtrefnum),
PAKS(GIPPtr,P_BYTS,gic_fcreator),
PAKS(GIPPtr,P_BYTS,gic_ftype),
PACK(GIPPtr,P_BYTE,gic_itype),
PACK(GIPPtr,P_ZERO,gic_zero2),
PACK(GIPPtr,P_WORD,gic_length),
PACKEND()
};
PackEntry ProtoGII[] = { /* GetIconInfo */
PACK(GIIPPtr,P_BYTE,gii_cmd),
PACK(GIIPPtr,P_ZERO,gii_zero),
PACK(GIIPPtr,P_WORD,gii_dtrefnum),
PAKS(GIIPPtr,P_BYTS,gii_fcreator),
PACK(GIIPPtr,P_WORD,gii_iidx), /* */
PACKEND()
};
PackEntry ProtoAAP[] = { /* AddAPPL */
PACK(AAPPtr,P_BYTE,aap_cmd),
PACK(AAPPtr,P_ZERO,aap_zero),
PACK(AAPPtr,P_WORD,aap_dtrefnum),
PACK(AAPPtr,P_DWRD,aap_dirid),
PAKS(AAPPtr,P_BYTS,aap_fcreator),
PACK(AAPPtr,P_DWRD,aap_apptag),
PACK(AAPPtr,P_BYTE,aap_ptype),
PAKS(AAPPtr,P_PATH,aap_path), /* */
PACKEND()
};
PackEntry ProtoRMA[] = { /* RemoveAppl */
PACK(RAPPtr,P_BYTE,rma_cmd),
PACK(RAPPtr,P_ZERO,rma_zero),
PACK(RAPPtr,P_WORD,rma_refnum),
PACK(RAPPtr,P_DWRD,rma_dirid),
PAKS(RAPPtr,P_BYTS,rma_fcreator),
PACK(RAPPtr,P_BYTE,rma_ptype),
PAKS(RAPPtr,P_PATH,rma_path), /* */
PACKEND()
};
PackEntry ProtoGAP[] = { /* GetAPPL */
PACK(GAPPtr,P_BYTE,gap_cmd),
PACK(GAPPtr,P_ZERO,gap_zero),
PACK(GAPPtr,P_WORD,gap_dtrefnum),
PAKS(GAPPtr,P_BYTS,gap_fcreator),
PACK(GAPPtr,P_WORD,gap_applidx),
PACK(GAPPtr,P_WORD,gap_bitmap), /* */
PACKEND()
};
PackEntry ProtoRP[] = { /* FPRead */
PACK(ReadPPtr, P_BYTE, rdf_cmd),
PACK(ReadPPtr, P_ZERO, rdf_zero),
PACK(ReadPPtr, P_WORD, rdf_refnum),
PACK(ReadPPtr, P_DWRD, rdf_offset),
PACK(ReadPPtr, P_DWRD, rdf_reqcnt),
PACK(ReadPPtr, P_BYTE, rdf_flag),
PACK(ReadPPtr, P_BYTE, rdf_nlchar),
PACKEND()
};
PackEntry ProtoWP[] = { /* FPWrite */
PACK(WPPtr, P_BYTE, wrt_cmd),
PACK(WPPtr, P_BYTE, wrt_flag),
PACK(WPPtr, P_WORD, wrt_refnum),
PACK(WPPtr, P_DWRD, wrt_offset),
PACK(WPPtr, P_DWRD, wrt_reqcnt),
PACKEND()
};
PackEntry ProtoLP[] = { /* AFPLogin */
PACK(LPPtr, P_BYTE, log_cmd),
PAKS(LPPtr, P_PSTR, log_ver),
PAKS(LPPtr, P_PSTR, log_uam),
PKSB(LPPtr, P_PSTR, log_user, UAMP_USER),
PAKB(LPPtr, P_EVEN, log_zero, UAMP_ZERO),
PKSB(LPPtr, P_BYTS, log_passwd, UAMP_PASS),
PACKEND()
};
PackEntry ProtoLOP[] = {
PACK(LOPPtr, P_BYTE, lgo_cmd),
PACKEND()
};
PackEntry ProtoAuthInfo[] = {
PKSB(LPPtr, P_PSTR, log_user, UAMP_USER),
PAKB(LPPtr, P_EVEN, log_zero, UAMP_ZERO),
PKSB(LPPtr, P_BYTS, log_passwd, UAMP_PASS),
PACKEND()
};
PackEntry ProtoLRP[] = { /* FPLogin reply */
PAKB(LRPPtr, P_WORD, logr_idnum, UAMP_INUM),
PKSB(LRPPtr, P_BYTS, logr_randnum, UAMP_RAND),
PACKEND()
};
PackEntry ProtoLCP[] = { /* FPLoginCont */
PACK(LCPPtr,P_BYTE,lgc_cmd), /* command */
PACK(LCPPtr,P_ZERO,lgc_zero), /* is this here? */
PAKB(LCPPtr,P_WORD,lgc_idno, UAMP_INUM), /* ID number */
PKSB(LCPPtr,P_BYTS,lgc_encrypted, UAMP_ENCR), /* encrypted passwd */
PACKEND()
};
PackEntry ProtoSFDPP[] = { /* FPSetFileDirParms */
PACK(SFDPPPtr,P_BYTE,scp_cmd), /* command */
PACK(SFDPPPtr,P_ZERO,scp_zero), /* always zero */
PACK(SFDPPPtr,P_WORD,scp_volid), /* volume id */
PACK(SFDPPPtr,P_DWRD,scp_dirid), /* directory id */
PACK(SFDPPPtr,P_WORD,scp_bitmap), /* set bitmap */
PACK(SFDPPPtr,P_BMAP,scp_bitmap), /* For attributes */
PACK(SFDPPPtr,P_BYTE,scp_ptype), /* path type */
PAKS(SFDPPPtr,P_PATH,scp_path), /* path + file parameters to set */
PACKEVEN(), /* even out if necessary */
PACKEND()
};
/* For FPEnumerate, etc. - client */
PackEntry ProtoFileAttr[] = {
PAKB(FDParmPtr, P_WORD, fdp_attr,FP_ATTR),
PAKB(FDParmPtr, P_DWRD, fdp_pdirid,FP_PDIR),
PAKB(FDParmPtr, P_TIME, fdp_cdate,FP_CDATE),
PAKB(FDParmPtr, P_TIME, fdp_mdate,FP_MDATE),
PAKB(FDParmPtr, P_TIME, fdp_bdate,FP_BDATE),
PKSB(FDParmPtr, P_BYTS, fdp_finfo,FP_FINFO),
PKSB(FDParmPtr, P_OPTH, fdp_lname,FP_LNAME),
PKSB(FDParmPtr, P_OPTH, fdp_sname,FP_SNAME),
PAKB(FDParmPtr,P_DWRD,fdp_parms.fp_parms.fp_fileno,FP_FILNO),
PAKB(FDParmPtr,P_DWRD,fdp_parms.fp_parms.fp_dflen,FP_DFLEN),
PAKB(FDParmPtr,P_DWRD,fdp_parms.fp_parms.fp_rflen,FP_RFLEN),
PAKB(FDParmPtr,P_WORD,fdp_prodos_ft,FP_PDOS),
PAKB(FDParmPtr,P_DWRD,fdp_prodos_aux,FP_PDOS),
PACKEND()
};
/* For FPEnumerate, etc. - client */
PackEntry ProtoDirAttr[] = {
PAKB(FDParmPtr, P_WORD, fdp_attr,DP_ATTR),
PAKB(FDParmPtr, P_DWRD, fdp_pdirid,DP_PDIR),
PAKB(FDParmPtr, P_TIME, fdp_cdate,DP_CDATE),
PAKB(FDParmPtr, P_TIME, fdp_mdate,DP_MDATE),
PAKB(FDParmPtr, P_TIME, fdp_bdate,DP_BDATE),
PKSB(FDParmPtr, P_BYTS, fdp_finfo,DP_FINFO),
PKSB(FDParmPtr, P_OPTH, fdp_lname,DP_LNAME),
PKSB(FDParmPtr, P_OPTH, fdp_sname,DP_SNAME),
PAKB(FDParmPtr, P_DWRD, fdp_parms.dp_parms.dp_dirid,DP_DIRID),
PAKB(FDParmPtr, P_WORD, fdp_parms.dp_parms.dp_nchild,DP_CHILD),
PAKB(FDParmPtr, P_DWRD, fdp_parms.dp_parms.dp_ownerid,DP_CRTID),
PAKB(FDParmPtr, P_DWRD, fdp_parms.dp_parms.dp_groupid,DP_GRPID),
PAKB(FDParmPtr, P_DWRD, fdp_parms.dp_parms.dp_accright,DP_ACCES),
PAKB(FDParmPtr, P_WORD,fdp_prodos_ft,DP_PDOS),
PAKB(FDParmPtr, P_DWRD,fdp_prodos_aux,DP_PDOS),
PACKEND()
};
/* For FPEnumerate, etc. - client */
PackEntry ProtoFileDirAttr[] = {
PAKB(FDParmPtr, P_WORD, fdp_attr,DP_ATTR),
PAKB(FDParmPtr, P_DWRD, fdp_pdirid,DP_PDIR),
PAKB(FDParmPtr, P_TIME, fdp_cdate,DP_CDATE),
PAKB(FDParmPtr, P_TIME, fdp_mdate,DP_MDATE),
PAKB(FDParmPtr, P_TIME, fdp_bdate,DP_BDATE),
PKSB(FDParmPtr, P_BYTS, fdp_finfo,DP_FINFO),
PKSB(FDParmPtr, P_OPTH, fdp_lname,DP_LNAME),
PKSB(FDParmPtr, P_OPTH, fdp_sname,DP_SNAME),
PAKB(FDParmPtr, P_WORD,fdp_prodos_ft,DP_PDOS),
PAKB(FDParmPtr, P_DWRD,fdp_prodos_aux,DP_PDOS),
PACKEND()
};
PackEntry ProtoACP[] = { /* FPAddComment */
PACK(ACPPtr, P_BYTE, adc_cmd),
PACK(ACPPtr, P_ZERO, adc_zero),
PACK(ACPPtr, P_WORD, adc_dtrefnum),
PACK(ACPPtr, P_DWRD, adc_dirid),
PACK(ACPPtr, P_BYTE, adc_ptype),
PAKS(ACPPtr, P_PATH, adc_path),
PACKEVEN(),
/* PACK(ACPPtr, P_BYTE, adc_clen), */
PAKS(ACPPtr, P_PATH, adc_comment),
PACKEND()
};
PackEntry ProtoBRL[] = { /* FPByteRangeLock */
PACK(BRLPPtr, P_BYTE, brl_cmd),
PACK(BRLPPtr, P_BYTE, brl_flg),
PACK(BRLPPtr, P_WORD, brl_refnum),
PACK(BRLPPtr, P_DWRD, brl_offset),
PACK(BRLPPtr, P_DWRD, brl_length),
PACKEND()
};
PackEntry ProtoFFP[] = {
PACK(FFkPPtr, P_BYTE, flf_cmd),
PACK(FFkPPtr, P_ZERO, flf_zero),
PACK(FFkPPtr, P_WORD, flf_refnum)
};
PackEntry ProtoGCP[] = { /* FPGetComment */
PACK(GCPPtr, P_BYTE, gcm_cmd),
PACK(GCPPtr, P_ZERO, gcm_zero),
PACK(GCPPtr, P_WORD, gcm_dtrefnum),
PACK(GCPPtr, P_DWRD, gcm_dirid),
PACK(GCPPtr, P_BYTE, gcm_ptype),
PAKS(GCPPtr, P_PATH, gcm_path),
PACKEND()
};
PackEntry ProtoGSPRP[] = { /* GetSrvrParms Reply */
PACK(GSPRPPtr, P_TIME, gspr_time),
PACK(GSPRPPtr, P_BYTE, gspr_nvols),
PACKEND()
};
PackEntry ProtoGSPRPvol[] = {
PACK(VolParm *, P_BYTE, volp_flag),
PAKS(VolParm *, P_PATH, volp_name),
PACKEND()
};
PackEntry ProtoGVPRP[] = { /* GetVolParms Reply */
PACK(GVPRPPtr,P_WORD,gvpr_bitmap), /* bitmap specifies below items */
PACK(GVPRPPtr,P_BMAP,gvpr_bitmap), /* bitmap specifies below items */
PAKB(GVPRPPtr,P_WORD,gvpr_attr,VP_ATTR), /* attributes word */
PAKB(GVPRPPtr,P_WORD,gvpr_sig,VP_SIG), /* signature word */
PAKB(GVPRPPtr,P_TIME,gvpr_cdate,VP_CDATE), /* creation date */
PAKB(GVPRPPtr,P_TIME,gvpr_mdate,VP_MDATE), /* modification date */
PAKB(GVPRPPtr,P_TIME,gvpr_bdate,VP_BDATE), /* last back date */
PAKB(GVPRPPtr,P_WORD,gvpr_volid,VP_VOLID), /* volume id */
PAKB(GVPRPPtr,P_DWRD,gvpr_free,VP_FREE), /* free bytes */
PAKB(GVPRPPtr,P_DWRD,gvpr_size,VP_SIZE), /* size in bytes */
PKSB(GVPRPPtr,P_OSTR,gvpr_name,VP_NAME), /* name of volume */
PACKEND()
};
PackEntry ProtoAIP[] = { /* FPAddIcon */
PACK(AIPPtr, P_BYTE, adi_cmd),
PACK(AIPPtr, P_ZERO, adi_zero),
PACK(AIPPtr, P_WORD, adi_dtref),
PAKS(AIPPtr, P_BYTS, adi_fcreator),
PAKS(AIPPtr, P_BYTS, adi_ftype),
PACK(AIPPtr, P_BYTE, adi_icontype),
PACK(AIPPtr, P_ZERO, adi_zero2),
PACK(AIPPtr, P_DWRD, adi_icontag),
PACK(AIPPtr, P_WORD, adi_iconsize),
PACKEND()
};
PackEntry ProtoGAPR[] = { /* GetAPPL reply */
PACK(GARPPtr, P_WORD, gapr_bitmap),
PACK(GARPPtr, P_DWRD, gapr_appltag),
PACKEND()
};
PackEntry ProtoGIIR[] = { /* GetIconInfo reply */
PACK(GIIRPPtr, P_DWRD, giir_itag),
PAKS(GIIRPPtr, P_BYTS, giir_ftype),
PACK(GIIRPPtr, P_BYTE, giir_itype),
PACK(GIIRPPtr, P_ZERO, giir_zero),
PACK(GIIRPPtr, P_WORD, giir_size),
PACKEND()
};
PackEntry ProtoRMC[] = { /* FPRemoveComment */
PACK(RCPPtr, P_BYTE, rmc_cmd),
PACK(RCPPtr, P_ZERO, rmc_zero),
PACK(RCPPtr, P_WORD, rmc_dtrefnum),
PACK(RCPPtr, P_DWRD, rmc_dirid),
PACK(RCPPtr, P_BYTE, rmc_ptype),
PAKS(RCPPtr, P_PATH, rmc_path),
PACKEND()
};
PackEntry ProtoSRP[] = { /* GetSrvrInfo reply */
PAKS(GSIRPPtr, P_OSTR, sr_machtype),
PACK(GSIRPPtr, P_OPTR, sr_avo),
PACK(GSIRPPtr, P_OPTR, sr_uamo),
PACK(GSIRPPtr, P_OPTR, sr_vicono),
PACK(GSIRPPtr, P_WORD, sr_flags),
PAKS(GSIRPPtr, P_PATH, sr_servername),
PACKEND()
};
/* change password */
PackEntry ProtoCPP[] = {
PACK(CPPtr, P_BYTE, cp_cmd), /* command */
PACK(CPPtr, P_ZERO, cp_zero), /* always zero */
PAKS(CPPtr, P_PSTR, cp_uam), /* authentication method */
PACK(CPPtr, P_EVEN, cp_pad), /* pad to even */
PAKS(CPPtr, P_PSTR, cp_user), /* user name */
PACK(CPPtr, P_EVEN, cp_pad), /* pad to even */
PAKS(CPPtr, P_BYTS, cp_oldpass), /* 8 bytes for old password */
PAKS(CPPtr, P_BYTS, cp_newpass), /* 8 bytes for new password */
PACKEND()
};
/* change password reply: only used for cleartext */
PackEntry ProtoCPRP[] = {
PACK(CPRPtr, P_BYTE, cpr_cmd), /* command */
PACK(CPRPtr, P_ZERO, cpr_zero), /* always zero */
PAKS(CPRPtr, P_PSTR, cpr_uam), /* authentication method */
PACK(CPRPtr, P_EVEN, cpr_pad), /* pad to even */
PAKS(CPRPtr, P_PSTR, cpr_user), /* user name */
PACK(CPRPtr, P_EVEN, cpr_pad), /* pad to even */
PAKS(CPRPtr, P_BYTS, cpr_newpass), /* 8 bytes for new password */
PACKEND()
};
/* get user information */
PackEntry ProtoGUIP[] = {
PACK(GUIPtr, P_BYTE, gui_cmd), /* command */
PACK(GUIPtr, P_BYTE, gui_flag), /* flag word */
PACK(GUIPtr, P_DWRD, gui_userid), /* user id */
PACK(GUIPtr, P_WORD, gui_bitmap), /* bitmap of info to return */
PACKEND()
};
/* get user information reply */
PackEntry ProtoGUIRP[] = {
PACK(GUIRPtr, P_BMAP, guir_bitmap), /* bitmap to return */
PAKB(GUIRPtr, P_DWRD, guir_userid, UIP_USERID),
PAKB(GUIRPtr, P_DWRD, guir_pgroup, UIP_PRIMARY_GID),
PACKEND()
};
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.