/* @(#)osif.h V3.2 11/02/94 */ /* ** Copyright (c) Digital Equipment Corporation 1993. All rights reserved. ** ** Restricted Rights: Use, duplication, or disclosure by the U.S. ** Government is subject to restrictions as set forth in subparagraph ** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR ** 52.227-14 Alt. III, as applicable. ** ** This software is proprietary to and embodies the confidential ** technology of Digital Equipment Corporation. Possession, use, or ** copying of this software and media is authorized only pursuant to a ** valid written license from Digital or an authorized sublicensor. ** ** ** */ /* **++ ** FACILITY: ** ** ! ** ** ABSTRACT: ** ** ! ** ** AUTHORS: ** ** ! ** ** ** CREATION DATE: ! ** ** MODIFICATION HISTORY: ** ** X1.1-2 19-Sep-1991 Donna Vincent ** Added osif_p_addr_tblptr field to osifpb structure. ** ** X1.1-3 23-Sep-1991 Donna Vincent ** Renamed the osif_p_addr_tblptr field to osif_peer_p_addr_tblptr ** and added the osif_local_p_addr_tblptr. ** ** X1.1-4 3-Feb-1993 John Loonie ** Add osif_character_sets field to osifpb for multibyte char support. ** ** X1.1-5 6-Mar-1993 John Loonie ** Add status code. ** ** X1.1-6 30-Mar-1993 John Loonie ** Add INTAP-1 document type parameters to OSIFPB structure. ** ** X1.1-7 24-Aug-1993 John Loonie ** Add status codes for the FERPM to signal the API that ** recovery has begun and has completed. ** ** N92.0 01-Nov-1993 Donna Vincent ** Add 'nsap_queue_ptr, and 'template_queue_ptr' fields to ** the osif_ae_entry structure; ** create osif_nsap_entry structure; ** create osif_template_entry structure. **-- */ /* ** ** MACRO DEFINITIONS ** */ /* * Miscellaneous definitions */ #define OSIF_ASSIGN_INITIATOR 1 #define OSIF_ASSIGN_RESPONDER 2 #define OSIF_ASSIGN_REDIRECT 4 #define OSIF_ASSIGN_RELMEMONCLOSE 5 /*MAG 104897*/ #define OSIF_WAIT_INFINITE -1 #define OSIF_WAIT_NONE 0 #define SCRATCHPAD_SIZE 1024 /* * Parameter block types. */ #define OSIF_PBDEF_P_ABORT 100 #define OSIF_PBDEF_U_ABORT 105 #define OSIF_PBDEF_BG_REQ 110 #define OSIF_PBDEF_BG_RSP 120 #define OSIF_PBDEF_CHAT_REQ 130 #define OSIF_PBDEF_CHAT_RSP 140 #define OSIF_PBDEF_CRE_REQ 150 #define OSIF_PBDEF_CRE_RSP 160 #define OSIF_PBDEF_CLOSE_REQ 170 #define OSIF_PBDEF_CLOSE_RSP 180 #define OSIF_PBDEF_DATA_REQ 190 #define OSIF_PBDEF_DATA_END_REQ 210 #define OSIF_PBDEF_DELETE_REQ 230 #define OSIF_PBDEF_DELETE_RSP 240 #define OSIF_PBDEF_DESELECT_REQ 250 #define OSIF_PBDEF_DESELECT_RSP 260 #define OSIF_PBDEF_EG_REQ 270 #define OSIF_PBDEF_EG_RSP 280 #define OSIF_PBDEF_INIT_REQ 300 #define OSIF_PBDEF_INIT_RSP 310 #define OSIF_PBDEF_NODE_DE_REQ 320 #define OSIF_PBDEF_OPEN_REQ 350 #define OSIF_PBDEF_OPEN_RSP 360 #define OSIF_PBDEF_RAT_REQ 370 #define OSIF_PBDEF_RAT_RSP 380 #define OSIF_PBDEF_READ_REQ 385 #define OSIF_PBDEF_SEL_REQ 390 #define OSIF_PBDEF_SEL_RSP 400 #define OSIF_PBDEF_TERM_REQ 410 #define OSIF_PBDEF_TERM_RSP 420 #define OSIF_PBDEF_TRANSFER_END_REQ 430 #define OSIF_PBDEF_TRANSFER_END_RSP 440 #define OSIF_PBDEF_WRITE_REQ 450 #define OSIF_PBDEF_CANCEL_REQ 470 #define OSIF_PBDEF_CANCEL_RSP 480 #define OSIF_PBDEF_LOCATE_REQ 500 #define OSIF_PBDEF_LOCATE_RSP 510 #define OSIF_PBDEF_ERASE_REQ 520 #define OSIF_PBDEF_ERASE_RSP 530 /* * Access Context */ #define OSIF_ACC_CTX_HA 0 /* Hierarchical all data units */ #define OSIF_ACC_CTX_HN 1 /* Hierarchical no data units */ #define OSIF_ACC_CTX_FA 2 /* Flat all data units */ #define OSIF_ACC_CTX_FL 3 /* Flat one level data units */ #define OSIF_ACC_CTX_FS 4 /* Flat single data unit */ #define OSIF_ACC_CTX_UA 5 /* Unstructured all data units */ #define OSIF_ACC_CTX_US 6 /* Unstructured single data unit */ /* * Attribute Groups */ #define OSIF_ATG_STORAGE 0x80 /* Storage attribute group */ #define OSIF_ATG_SECURITY 0x40 /* Security attribute group */ #define OSIF_ATG_PRIVATE 0x20 /* Private attribute group */ #define OSIF_ATR_EXTENSION 0x10 /* extension attribute group */ /* * Attribute Names */ /* Kernel group */ #define OSIF_ATT_FILENAME 0x80000000 #define OSIF_ATT_PERMITTED_ACTIONS 0x40000000 #define OSIF_ATT_CONTENTS_TYPE 0x20000000 /* Storage group */ #define OSIF_ATT_STORAGE_ACCOUNT 0x10000000 #define OSIF_ATT_CREATION_TIME 0x08000000 #define OSIF_ATT_MODIFICATION_TIME 0x04000000 #define OSIF_ATT_READ_TIME 0x02000000 #define OSIF_ATT_ATTRIBUTE_MODIFICATION_TIME 0x01000000 #define OSIF_ATT_CREATOR_ID 0x00800000 #define OSIF_ATT_MODIFIER_ID 0x00400000 #define OSIF_ATT_READER_ID 0x00200000 #define OSIF_ATT_ATTRIBUTE_MODIFIER_ID 0x00100000 #define OSIF_ATT_FILE_AVAILABILITY 0x00080000 #define OSIF_ATT_FILESIZE 0x00040000 #define OSIF_ATT_FUTURE_FILESIZE 0x00020000 /* Security group */ #define OSIF_ATT_ACCESS_CONTROL 0x00010000 #define OSIF_ATT_LEGAL_QUALIFICATIONS 0x00008000 /* Private group */ #define OSIF_ATT_PRIVATE_USE 0x00004000 /* * Diagnostics */ /* General FTAM Diagnostic definitions */ #define OSIF_GEN_NOREASON 0 /* No Reason */ #define OSIF_GEN_RESPERR 1 /* Responder error (unspecific) */ #define OSIF_GEN_SYSSHUT 2 /* System shutdown */ #define OSIF_GEN_MGMT 3 /* FTAM management problem */ /* (unspecific) */ #define OSIF_GEN_MGMACCT 4 /* FTAM management, bad account */ #define OSIF_GEN_MGMSECURITY 5 /* FTAM management, security not */ /* passed */ #define OSIF_GEN_DELAY 6 /* Delay may be encountered */ #define OSIF_GEN_INITERR 7 /* Initiator Error, unspecific */ #define OSIF_GEN_SUBSERR 8 /* Subsequent Error */ #define OSIF_GEN_INSFRSRC 9 /* Temporal insufficiency of */ /* resources */ #define OSIF_GEN_VFSSEC 10 /* Access request violates VFS */ /* security */ #define OSIF_GEN_LCLSEC 11 /* Access request violates local */ /* security */ /* Protocol and supporting service related diagnostic definitions */ #define OSIF_PRO_CNFPRMVAL 1000 /* Conflicting parameter values */ #define OSIF_PRO_UNSPRMVAL 1001 /* Unsuported parameter values */ #define OSIF_PRO_MNDPARAM 1002 /* Mandatory parameter not set */ #define OSIF_PRO_UNSPARAM 1003 /* Unsupported parameter */ #define OSIF_PRO_DUPPARAM 1004 /* Duplciated parameter */ #define OSIF_PRO_ILLPRMTYP 1005 /* Illegal parameter type */ #define OSIF_PRO_UNSPRMTYP 1006 /* Unsupported parameter types */ #define OSIF_PRO_PROT 1007 /* FTAM protocol error (unspecific) */ #define OSIF_PRO_PROTPROC 1008 /* FTAM protocol error, procedure */ /* error */ #define OSIF_PRO_PROTFUNC 1009 /* FTAM protocol error, functional */ /* unit error */ #define OSIF_PRO_PROTCORR 1010 /* FTAM protocol error, corruption */ /* error */ #define OSIF_PRO_LWRLYR 1011 /* Lower layer failure */ #define OSIF_PRO_LWRLYRADRS 1012 /* Lower layer addressing error */ #define OSIF_PRO_TIMEOUT 1013 /* Timeout */ #define OSIF_PRO_SYSSHUT 1014 /* System shutdown */ #define OSIF_PRO_ILLGRP 1015 /* Illegal grouping sequence */ #define OSIF_PRO_GRPTHRSH 1016 /* Grouping threshold violation */ #define OSIF_PRO_PDUINC 1017 /* Specific PDU request inconsistent */ /* with current requested access */ /* Association related diagnostics */ #define OSIF_ASC_ASCNOTALL 2000 /* Association with user not allowed */ #define OSIF_ASC_NOTDEFINED 2001 /* (not assigned) */ #define OSIF_ASC_SRVCCLS 2002 /* Unsupported service class */ #define OSIF_ASC_FUNCUNI 2003 /* Unsupported functional unit */ #define OSIF_ASC_ATTGRP 2004 /* Attribute group error (unspecific)*/ #define OSIF_ASC_ATTGRPNS 2005 /* Attribute group not supported */ #define OSIF_ASC_ATTGRPNA 2006 /* Attribute group not allowed */ #define OSIF_ASC_BADACCT 2007 /* Bad account */ #define OSIF_ASC_ASCMGM 2008 /* Association management */ /* (unspecific) */ #define OSIF_ASC_ASCMGMADRS 2009 /* Association management - bad */ /* address */ #define OSIF_ASC_ASCMGMACCT 2010 /* Association management - bad */ /* account */ #define OSIF_ASC_CHKWINDLRG 2011 /* Checkpoint window error - too */ /* large */ #define OSIF_ASC_CHKWINDSML 2012 /* Checkpoint window error - too */ /* small */ #define OSIF_ASC_CHKWINDUNS 2013 /* Checkpoint window unsupported */ #define OSIF_ASC_COMMQOS 2014 /* Communications QoS not supported */ #define OSIF_ASC_INITID 2015 /* Initiator Identity unacceptable */ #define OSIF_ASC_CTXMGMT 2016 /* Context management refused */ #define OSIF_ASC_ROLLBACK 2017 /* Rollback not available */ #define OSIF_ASC_CTLCUTRESP 2018 /* Contents-type list cut by */ /* responder */ #define OSIF_ASC_CTLCUTPRES 2019 /* Contests-type list cut by */ /* presentation */ #define OSIF_ASC_INVPWD 2020 /* Invalide filestore password */ #define OSIF_ASC_INCSVC 2021 /* Incompatible service classes */ /* Selection related diagnostic definitions */ #define OSIF_SEL_FILNOTFND 3000 /* File not found */ #define OSIF_SEL_SELATTR 3001 /* Selection attributes not matched */ #define OSIF_SEL_INITATT 3002 /* Initial attributes not possible */ #define OSIF_SEL_BADATTNAM 3003 /* Bad atrribute name */ #define OSIF_SEL_NONEXFILE 3004 /* Nonexistent file */ #define OSIF_SEL_FILEXISTS 3005 /* File already exists */ #define OSIF_SEL_FILNOCREATE 3006 /* File cannot be created */ #define OSIF_SEL_FILNODELETE 3007 /* File cannot be deleted */ #define OSIF_SEL_CONCTLNA 3008 /* Concurrency control not available */ #define OSIF_SEL_CONCTLNS 3009 /* Concurrency control not supported */ #define OSIF_SEL_CONCTLNP 3010 /* Concurrency control not possible */ #define OSIF_SEL_MORERESLOCK 3011 /* More restrictive lock */ #define OSIF_SEL_FILEBUSY 3012 /* File busy */ #define OSIF_SEL_FILENA 3013 /* File not available */ #define OSIF_SEL_ACSCTLNA 3014 /* Access control not available */ #define OSIF_SEL_ACSCTLNS 3015 /* Access control not supported */ #define OSIF_SEL_ACSCTLINC 3016 /* Access control inconsistent */ #define OSIF_SEL_FILNAMTRNC 3017 /* File name truncated */ #define OSIF_SEL_INITATTALT 3018 /* Initial attributes altered */ #define OSIF_SEL_BADACCT 3019 /* Bad account */ #define OSIF_SEL_SELECTOLD 3020 /* Override selected existing file */ #define OSIF_SEL_RECROLD 3021 /* Override recreated file with old */ /* attributes */ #define OSIF_SEL_RECRNEW 3022 /* Override recreated file with new */ /* attributes */ #define OSIF_SEL_OVERRIDE 3023 /* Override not possible */ #define OSIF_SEL_AMBFILSPEC 3024 /* Ambiguous file specification */ #define OSIF_SEL_INVCREPWD 3025 /* Invalid create password */ #define OSIF_SEL_INVDELPWD 3026 /* Invalid delete password */ #define OSIF_SEL_BADATTVAL 3027 /* Bad attribute value */ #define OSIF_SEL_RQSTACCS 3028 /* Requested access violates */ /* permitted actions */ #define OSIF_SEL_FUNCUNIT 3029 /* Function unit not available for */ /* requested access */ #define OSIF_SEL_CREATED 3030 /* File was created, not selected */ /* File management realted diagnostic definitions */ #define OSIF_MNG_ATTNONEX 4000 /* Attribute non-existent */ #define OSIF_MNG_ATTNOREAD 4001 /* Attribute cannot be read */ #define OSIF_MNG_ATTNOCHNG 4002 /* Attribute cannot be changed */ #define OSIF_MNG_ATTNS 4003 /* Attribute not supported */ #define OSIF_MNG_BADATTNAM 4004 /* Bad attribute name */ #define OSIF_MNG_BADATTVAL 4005 /* Bad attribute value */ #define OSIF_MNG_ATTPARSUP 4006 /* Attribute partialy supported */ #define OSIF_MNG_ATTVALND 4007 /* Additional set attribute value not distinct */ /* Access related diagnostic definitions */ #define OSIF_ACC_BADFADU 5000 /* Bad FADU (unspecific) */ #define OSIF_ACC_BADFADUSIZ 5001 /* Bad FADU - size error */ #define OSIF_ACC_BADFADUTYP 5002 /* Bad FADU - type error */ #define OSIF_ACC_BADFADUPS 5003 /* Bad FADU - poorly specified */ #define OSIF_ACC_BADFADULOC 5004 /* Bad FADU - bad location */ #define OSIF_ACC_FADUNONEXI 5005 /* FADU does not exist */ #define OSIF_ACC_FADUNA 5006 /* FADU not available */ #define OSIF_ACC_FADUNARD 5007 /* FADU not available for reading */ #define OSIF_ACC_FADUNAWR 5008 /* FADU not available for writing */ #define OSIF_ACC_FADUNALOC 5009 /* FADU not available for location */ #define OSIF_ACC_FADUNAERA 5010 /* FADU not available for erasure */ #define OSIF_ACC_FADUNOINS 5011 /* FADU cannot be inserted */ #define OSIF_ACC_FADUNORPL 5012 /* FADU cannot be replaced */ #define OSIF_ACC_FADUNOLOC 5013 /* FADU cannot be located */ #define OSIF_ACC_BADDETYP 5014 /* Bad data element type */ #define OSIF_ACC_OPERNA 5015 /* Operation not available */ #define OSIF_ACC_OPERNS 5016 /* Operation not supported */ #define OSIF_ACC_OPERINC 5017 /* Operation inconsistent */ #define OSIF_ACC_CONCTLNA 5018 /* Concurrency control not available */ #define OSIF_ACC_CONCTLNS 5019 /* Concurrency control not supported */ #define OSIF_ACC_CONCTLINC 5020 /* Concurrency control inconsistent */ #define OSIF_ACC_PRCMODNA 5021 /* Processing mode not available */ #define OSIF_ACC_PRCMODNS 5022 /* Processing mode not supported */ #define OSIF_ACC_PRCMODINC 5023 /* Processing mode inconsistent */ #define OSIF_ACC_ACSCTXNA 5024 /* Access context not available */ #define OSIF_ACC_ACSCTXNS 5025 /* Access context not supported */ #define OSIF_ACC_BADWRITE 5026 /* Bad write (unspecific) */ #define OSIF_ACC_BADREAD 5027 /* Bad read (unspecific) */ #define OSIF_ACC_LCLERR 5028 /* Local error (unspecific) */ #define OSIF_ACC_LCLFILSPACE 5029 /* Local error - filespace exhausted */ #define OSIF_ACC_LCLDATCORR 5030 /* Local error - data corrupted */ #define OSIF_ACC_LCLDEVFAIL 5031 /* Local error - device failure */ #define OSIF_ACC_FUTSIZEXC 5032 /* Future filesize exceeded */ #define OSIF_ACC_UNDEFINED 5033 /* */ #define OSIF_ACC_FUTSIZINC 5034 /* Future filesize increased */ #define OSIF_ACC_FUNCUNIT 5035 /* Functional unit invalid in */ /* processing mode */ #define OSIF_ACC_CNTTYPINC 5036 /* Contents-type incosistent */ #define OSIF_ACC_CNTTYPSMPL 5037 /* Contents-type simplified */ #define OSIF_ACC_DUPFADUNAM 5038 /* Duplicate FADU name */ #define OSIF_ACC_DMGSELOPEN 5039 /* Damage to select/open regime */ #define OSIF_ACC_FADULOCKNA 5040 /* FADU locking not available on file*/ #define OSIF_ACC_FADULOCKED 5041 /* FADU locked by another user */ /* Recovery related diagnostics */ #define OSIF_REC_BADCHKPNT 6000 /* Bad checkpoint (unspecific) */ #define OSIF_REC_ACTVNOTUNI 6001 /* Activity not unique */ #define OSIF_REC_CHKOUTWIND 6002 /* Checkpoint outside of window */ #define OSIF_REC_ACTVNOEXIST 6003 /* Activity no longer exists */ #define OSIF_REC_ACTVNORECOG 6004 /* Activity not recognized */ #define OSIF_REC_NODOCKET 6005 /* No docket */ #define OSIF_REC_CORDOCKET 6006 /* Corrupt docket */ #define OSIF_REC_WAITRESTART 6007 /* File waiting restart */ #define OSIF_REC_BADRECPNT 6008 /* Bad recovery point */ #define OSIF_REC_NONEXRECPNT 6009 /* Non-existent recovery point */ #define OSIF_REC_RECMODNA 6010 /* Recovery mode not available */ #define OSIF_REC_RECMODINC 6011 /* Recovery mode inconsistent */ #define OSIF_REC_RECMODRED 6012 /* Recovery mode reduced */ #define OSIF_REC_ACSCTLNA 6013 /* Access control not available */ #define OSIF_REC_ACSCTLNS 6014 /* Access control not supported */ #define OSIF_REC_ACSCTLINC 6015 /* Access control inconsistent */ #define OSIF_REC_CNTTYPINC 6016 /* Contents type inconsistent */ #define OSIF_REC_CNTTYPSMPL 6017 /* Contents type simplified */ /* * Error types */ #define OSIF_INFORMATIVE_ERROR 0 #define OSIF_TRANSIENT_ERROR 1 #define OSIF_PERMANENT_ERROR 2 /* * FADU Identity first-last values */ #define OSIF_FADU_ID_FIRST 0 #define OSIF_FADU_ID_LAST 1 /* * FADU Identity relative values */ #define OSIF_FADU_ID_PREVIOUS 0 #define OSIF_FADU_ID_CURRENT 1 #define OSIF_FADU_ID_NEXT 2 /* * FADU Identity begin-end values */ #define OSIF_FADU_ID_BEGIN 0 #define OSIF_FADU_ID_END 1 /* * FADU Locking */ #define OSIF_FADU_LOCK_OFF 0 #define OSIF_FADU_LOCK_ON 1 /* * FADU Operations */ #define OSIF_FADU_INSERT 0 #define OSIF_FADU_REPLACE 1 #define OSIF_FADU_EXTEND 2 /* * File availability */ #define OSIF_IMMEDIATE_AVAILABILITY 0 #define OSIF_DEFERRED_AVAILABILITY 1 /* * FTAM Quality of Service */ #define OSIF_FQOS_NO_RECOVERY 0 #define OSIF_FQOS_CLASS_1_RECOVERY 1 #define OSIF_FQOS_CLASS_2_RECOVERY 2 #define OSIF_FQOS_CLASS_3_RECOVERY 3 /* * Functional Units */ #define OSIF_FU_READ 0x2000 /* Read functional unit */ #define OSIF_FU_WRITE 0x1000 /* Write functional unit */ #define OSIF_FU_FILE_ACCESS 0x0800 /* File access functional unit */ #define OSIF_FU_LIMIT_FILE_MGMT 0x0400 /* Limited file management */ /* functional unit */ #define OSIF_FU_ENH_FILE_MGMT 0x0200 /* Enhanced file management */ /* functional unit */ #define OSIF_FU_GROUPING 0x0100 /* Grouping functional unit */ #define OSIF_FU_FADU_LOCKING 0x0080 /* FADU locking functional unit */ #define OSIF_FU_RECOVERY 0x0040 /* Recover functional unit */ #define OSIF_FU_RESTART_DATA_XFR 0x0020 /* Restart data transfer functional */ /* * Override actions */ #define OSIF_OVR_CREATE_FAILURE 0 #define OSIF_OVR_SELECT_OLD_FILE 1 #define OSIF_OVR_DEL_CRE_OLD_ATTRIB 2 #define OSIF_OVR_DEL_CRE_NEW_ATTRIB 3 /* processiong mode action */ #define OSIF_PM_READ 0x80 #define OSIF_PM_INSERT 0x40 #define OSIF_PM_REPLACE 0x20 #define OSIF_PM_EXTEND 0x10 #define OSIF_PM_ERASE 0x08 /* * Permitted actions */ #define OSIF_PA_READ 0x8000 #define OSIF_PA_INSERT 0x4000 #define OSIF_PA_REPLACE 0x2000 #define OSIF_PA_EXTEND 0x1000 #define OSIF_PA_ERASE 0x0800 #define OSIF_PA_READ_ATTRIBUTE 0x0400 #define OSIF_PA_CHANGE_ATTRIBUTE 0x0200 #define OSIF_PA_DELETE_FILE 0x0100 /* FADU-Identity groups available */ #define OSIF_PA_TRAVERSAL 0x0080 #define OSIF_PA_REVERSE_TRAVERSAL 0x0040 #define OSIF_PA_RANDOM_ORDER 0x0020 /* * access request */ #define OSIF_AR_READ 0x80 #define OSIF_AR_INSERT 0x40 #define OSIF_AR_REPLACE 0x20 #define OSIF_AR_EXTEND 0x10 #define OSIF_AR_ERASE 0x08 #define OSIF_AR_READ_ATTRIBUTE 0x04 #define OSIF_AR_CHANGE_ATTRIBUTE 0x02 #define OSIF_AR_DELETE_OBJECT 0x01 /* * Service Classes */ #define OSIF_CLASS_UNCONST 0x80 /* Unconstrained service class */ #define OSIF_CLASS_MGMT 0x40 /* Management service class */ #define OSIF_CLASS_XFR 0x20 /* Transfer service class */ #define OSIF_CLASS_XFR_MGMT 0x10 /* Transfer and management service */ #define OSIF_CLASS_ACCESS 0x08 /* Access service class */ /* * Source and observer identifiers */ #define OSIF_NO_CATEGORIZATION 0 /* No categorization possible */ #define OSIF_INITIATING_USER 1 /* Initiating file service user */ #define OSIF_INITIATING_FPM 2 /* Initiating file protocol machine */ #define OSIF_SUPPORTING_SERVICE 3 /* Service supporting the file */ /* protocol machine */ #define OSIF_RESPONDING_FPM 4 /* The responding file protocol */ /* machine */ #define OSIF_RESPONDING_USER 5 /* The responding file service user */ /* (filestore) */ /* * State result (the succes value is shared with the action result). */ #define OSIF_SR_SUCCESS 0 #define OSIF_SR_FAILURE 1 /* * String significance */ #define OSIF_STRSIG_VAR 0 /* String significance - variable */ #define OSIF_STRSIG_FIX 1 /* String significance - fixed */ #define OSIF_STRSIG_NS 2 /* String significance - not significant */ #define OSIF_RECSIG_VAR 0 /* Record significance - variable X1.1-6 */ #define OSIF_RECSIG_FIX 1 /* Record significance - fixed X1.1-6 */ /* * Universal class number */ #define OSIF_UC_BOOLEAN 1 #define OSIF_UC_INTEGER 2 #define OSIF_UC_BIT 3 #define OSIF_UC_OCTET 4 #define OSIF_UC_NULL 5 #define OSIF_UC_OBJECT_ID 6 #define OSIF_UC_OBJECT_DSC 7 #define OSIF_UC_EXTERNAL 8 #define OSIF_UC_REAL 9 #define OSIF_UC_ENUMERATED 10 #define OSIF_UC_NUMERIC 18 #define OSIF_UC_PRINTABLE 19 #define OSIF_UC_T61 20 #define OSIF_UC_VIDEOTEXT 21 #define OSIF_UC_IA5 22 /* IA5 String */ #define OSIF_UC_UTCTIME 23 #define OSIF_UC_GENERALTIME 24 #define OSIF_UC_GRAPHIC 25 /* Graphic String */ #define OSIF_UC_VISIBLE 26 /* Visible String */ #define OSIF_UC_GENERAL 27 /* General String */ /* * Maximum string length */ #define OSIF_MSL_UNLIMITED 0 /* * Concurrency Control Bits */ #define OSIF_CC_NOT_REQUIRED 0 #define OSIF_CC_SHARED 1 #define OSIF_CC_EXCLUSIVE 2 #define OSIF_CC_NO_ACCESS 3 /* * Concurrency Access Bits */ #define OSIF_CA_NOT_REQUIRED 0x80 #define OSIF_CA_SHARED 0x40 #define OSIF_CA_EXCLUSIVE 0x20 #define OSIF_CA_NO_ACCESS 0x10 #define OSIF_BAD_ACCCNTX 9000 #define OSIF_BAD_ACCCNTRL 9001 #define OSIF_BAD_ACCPWD 9002 #define OSIF_BAD_ACCOUNT 9003 #define OSIF_BAD_ACTRES 9004 /* Action Result */ #define OSIF_BAD_ACTID 9005 #define OSIF_BAD_APPCNTX 9006 #define OSIF_BAD_ARCLEN 9007 #define OSIF_BAD_ATTRGRP 9008 /* Attribute Groups */ #define OSIF_BAD_ATTNAME 9009 #define OSIF_BAD_CHARGE 9010 #define OSIF_BAD_CHKPWIN 9011 /* Checkpoint Window */ #define OSIF_BAD_CCCNTRL 9012 #define OSIF_BAD_CNTTYPE 9013 #define OSIF_BAD_CNTTYLST 9014 #define OSIF_BAD_CREPWD 9015 #define OSIF_BAD_DTCRE 9016 /* Date time creation */ #define OSIF_BAD_DTLATMD 9017 /* Date time last att mod */ #define OSIF_BAD_DTLMOD 9018 /* Date time last mod */ #define OSIF_BAD_DTLSTRD 9019 #define OSIF_BAD_DELPWD 9020 #define OSIF_BAD_DELVAL 9021 #define OSIF_BAD_DELCNTX 9022 #define OSIF_BAD_DIAG 9023 #define OSIF_BAD_FADU 9025 #define OSIF_BAD_FADULK 9026 #define OSIF_BAD_FADULKG 9027 #define OSIF_BAD_FADUOP 9028 #define OSIF_BAD_FILENM 9029 #define OSIF_BAD_FILESZ 9030 #define OSIF_BAD_FILEAV 9031 #define OSIF_BAD_FSPWD 9032 #define OSIF_BAD_FQOS 9033 /* FTAM Quality of Service */ #define OSIF_BAD_FUNITS 9034 /* Functional Units */ #define OSIF_BAD_FUTFISZ 9035 #define OSIF_BAD_INITID 9036 #define OSIF_BAD_IDCRE 9037 #define OSIF_BAD_IDLATMD 9038 #define OSIF_BAD_IDLMOD 9039 #define OSIF_BAD_IDLREAD 9040 #define OSIF_BAD_IMPINFO 9041 /* Implementation Information */ #define OSIF_BAD_INVAL 9042 #define OSIF_BAD_LAEQUAL 9043 #define OSIF_BAD_LAPTITLE 9044 #define OSIF_BAD_LPADDR 9045 /* Local Presenation Address */ #define OSIF_BAD_LEQUAL 9046 /* legal qualifications */ #define OSIF_BAD_OVRRIDE 9047 #define OSIF_BAD_RAEQUAL 9048 #define OSIF_BAD_RAPTITLE 9049 #define OSIF_BAD_RPADDR 9050 /* Remote Presentations Address */ #define OSIF_BAD_PERACT 9051 #define OSIF_BAD_PCTXMGT 9052 #define OSIF_BAD_PROMODE 9054 #define OSIF_BAD_PROTID 9055 #define OSIF_BAD_REMCNTX 9056 #define OSIF_BAD_REQACC 9057 #define OSIF_BAD_RECMODE 9058 #define OSIF_BAD_SRVCLASS 9059 #define OSIF_BAD_STRES 9060 /* State Result */ #define OSIF_BAD_STOACC 9061 /* Storage Account */ #define OSIF_BAD_THRES 9062 #define OSIF_BAD_USRDATA 9063 #define OSIF_BAD_CHATPWD 9065 #define OSIF_BAD_ERAPWD 9067 #define OSIF_BAD_EXTPWD 9068 #define OSIF_BAD_INSPWD 9069 #define OSIF_BAD_RDATPWD 9070 #define OSIF_BAD_RDPWD 9071 #define OSIF_BAD_RPLPWD 9072 #define OSIF_BAD_SECTYPE 9073 /* Conflicting security parameters */ /* * API messages */ #define OSIF_BADITEMSIZE 10000 #define OSIF_PROTOCOL_ERROR 10002 #define OSIF_INVPORT 10003 #define OSIF_NOPORT 10004 #define OSIF_PARAMNOWRT 10005 #define OSIF_PARAMNORD 10006 #define OSIF_NOBUFFS 10007 #define OSIF_NOMEM 10008 #define OSIF_XPORTFAILURE 10009 #define OSIF_NO_EVENT 10010 #define OSIF_RECOVERY_EVENT 10011 /* X1.1-5 */ #define OSIF_RECOVERY_STARTED 10012 /* X1.1-7 */ #define OSIF_RECOVERY_COMPLETED 10013 /* X1.1-7 */ #define OSIF_SUCCESS 0 #define OSIF_FAILURE -1 #define OSIF_MAX_NSAPS 5 /* ** ** DATA STRUCTURE DEFINITIONS ** */ /* * FTAM status block */ struct osif_u_fsb { unsigned long status; unsigned long osiu_status; unsigned short count; unsigned short data_count; } ; /* * Queue head */ struct osif_quehdr { struct osif_quehdr *flink; struct osif_quehdr *blink; }; /* * Common block header */ struct osif_common_header { struct osif_quehdr queue; unsigned short block_size; unsigned short block_type; }; /* * descriptor for strings */ struct osif_sdesc { unsigned char *address; /* address */ unsigned short length; /* length (unsigned) */ unsigned char type; /* osif_sdesc type. */ unsigned char class; /* osif_sdesc class. */ }; /* * descriptor for binary values */ struct osif_bdesc { unsigned value; /* value */ unsigned short length; /* length (unsigned) */ unsigned char type; /* osif_sdesc type. */ unsigned char class; /* osif_sdesc class. */ }; /* * Buffer list block (points to the buffer and the next entry on the list). */ struct osif_buffer_list { struct osif_buffer_list *next; int buffer_length; char *bufferptr; }; /* * AE_Address subdata structure */ struct osif_ae_addr { struct osif_sdesc ae_qualifier; struct osif_sdesc ap_title; }; /* * Address substructures for local and remote specifications. */ struct osif_nsap_entry { int alias_defined; struct osif_sdesc nsap; struct osif_sdesc template; struct osif_sdesc provider; struct osif_sdesc expedited; }; struct osif_nsap_queue /* N92.0 */ { struct osif_nsap_queue *next; struct osif_sdesc nsap; struct osif_sdesc provider; struct osif_bdesc network_svc; }; struct osif_template_queue /* N92.0 */ { struct osif_template_queue *next; struct osif_sdesc template_name; }; struct osif_ae_entry { struct osif_ae_addr ae_addr; struct osif_sdesc p_address; /* psap.ssap.tsap. */ struct osif_nsap_entry nsap_queue[OSIF_MAX_NSAPS]; struct osif_nsap_queue *nsap_queue_ptr; /* N92.0 */ struct osif_template_queue *template_queue_ptr; /* N92.0 */ }; /* * Access Passwords subdata structure */ struct osif_apwd { struct osif_sdesc chng_attrib_password; struct osif_sdesc delete_password; struct osif_sdesc erase_password; struct osif_sdesc extend_password; struct osif_sdesc insert_password; struct osif_sdesc read_attrib_password; struct osif_sdesc read_password; struct osif_sdesc replace_password; }; /* * Concurrentcy Control subdata structure. */ struct osif_cc { struct osif_bdesc change_attrib_cc; struct osif_bdesc delete_file_cc; struct osif_bdesc erase_cc; struct osif_bdesc extend_cc; struct osif_bdesc insert_cc; struct osif_bdesc read_attrib_cc; struct osif_bdesc read_cc; struct osif_bdesc replace_cc; }; /* * access_ctl subdata structure (note put here to pick up forward * references) */ struct osif_access_ctl { struct osif_access_ctl *next; struct osif_sdesc no_value_avail; struct osif_bdesc action_list; struct osif_cc concurrency_access; struct osif_sdesc identity; struct osif_apwd passwords; struct osif_ae_addr location; }; /* * Charging queue element data structure. */ struct osif_charging_pb { struct osif_charging_pb *next; struct osif_sdesc charging_unit; struct osif_bdesc charging_value; struct osif_sdesc resource_identifier; }; /* * Document Type Parameter data structures. */ struct osif_dt_subparms { struct osif_bdesc max_string_length; struct osif_bdesc string_significance; struct osif_bdesc universal_class; struct osif_bdesc attribute_names; struct osif_bdesc max_record_length; /* X1.1-6 */ struct osif_bdesc record_significance; /* X1.1-6 */ }; /* * Contents type subdata structure */ struct osif_ct { struct osif_sdesc abstract_syntax_name; struct osif_sdesc constraint_set_name; struct osif_sdesc document_name; struct osif_dt_subparms document_param; }; /* * Contents type list subdata structure. */ struct osif_ctl { struct osif_ctl *next; struct osif_sdesc abstract_syntax_name; struct osif_sdesc document_name; }; /* * Diagnostics queue element data structure. */ struct osif_diagnostics_pb { struct osif_diagnostics_pb *next; struct osif_bdesc diagnostic_type; struct osif_bdesc error_identifier; struct osif_bdesc error_observer; struct osif_bdesc error_source; struct osif_bdesc suggested_delay; struct osif_sdesc further_details; }; /* * File Access Data Unit access contect subdata structure. */ struct osif_faduac { struct osif_bdesc fadu_context; struct osif_bdesc fadu_level; }; /* * File Access Data Unit subdata structure */ struct osif_faduid { struct osif_bdesc fadu_number; struct osif_bdesc fadu_ref_begin_end; struct osif_bdesc fadu_ref_first_last; struct osif_bdesc fadu_ref_relative; struct osif_bdesc name_list; struct osif_bdesc single_name; }; /* * Filename blocks */ struct osif_fn { struct osif_fn *next; struct osif_sdesc filename; }; /* * Error Vector */ struct osif_prot_err { struct osif_prot_err *next; struct osif_bdesc error_code; }; /* * Parameter block */ struct osifpb { unsigned int osif_block_type; /* block identifier */ unsigned int osif_block_size; /* size of the block */ struct osif_buffer_list *osif_returned_buffer; struct osif_prot_err osif_protocol_error; int osif_prot_error_count; struct osif_faduac osif_access_context; struct osif_access_ctl osif_access_control; struct osif_apwd osif_access_passwords; struct osif_sdesc osif_account; struct osif_bdesc osif_action_result; struct osif_bdesc osif_activity_ident; struct osif_sdesc osif_application_context; struct osif_sdesc osif_arc_length; struct osif_bdesc osif_attribute_groups; struct osif_bdesc osif_attribute_names; struct osif_bdesc osif_character_sets; /* X1.1-4 */ struct osif_charging_pb *osif_charging; struct osif_bdesc osif_checkpoint_window; struct osif_cc osif_concurrency_control; struct osif_ct osif_contents_type; struct osif_ctl *osif_contents_type_list; struct osif_sdesc osif_create_password; struct osif_sdesc osif_date_time_creation; struct osif_sdesc osif_date_time_last_attmod; struct osif_sdesc osif_date_time_last_modif; struct osif_sdesc osif_date_time_last_read; struct osif_sdesc osif_delete_password; struct osif_access_ctl osif_delete_values; struct osif_sdesc osif_define_context; struct osif_diagnostics_pb *osif_diagnostic; struct osif_sdesc osif_encryption_name; struct osif_faduid osif_fadu; struct osif_bdesc osif_fadu_lock; struct osif_sdesc osif_fadu_locking; struct osif_bdesc osif_fadu_operation; struct osif_fn *osif_filename; struct osif_bdesc osif_filesize; struct osif_bdesc osif_file_availability; struct osif_sdesc osif_filestore_password; struct osif_sdesc osif_ftam_coded; struct osif_bdesc osif_ftam_qual_service; struct osif_bdesc osif_functional_units; struct osif_bdesc osif_future_filesize; struct osif_sdesc osif_initiator_identity; struct osif_sdesc osif_identity_creator; struct osif_sdesc osif_identity_last_attmod; struct osif_sdesc osif_identity_last_modify; struct osif_sdesc osif_identity_last_reader; struct osif_sdesc osif_implementation_information; struct osif_access_ctl osif_insert_values; struct osif_sdesc osif_legal_qualification; struct osif_ae_entry osif_local_p_addrs; struct osif_bdesc osif_override; struct osif_ae_entry osif_peer_p_addrs; struct osif_bdesc osif_permitted_actions; struct osif_bdesc osif_pres_ctx_mgmt; struct osif_bdesc osif_processing_mode; struct osif_sdesc osif_protocol_id; struct osif_sdesc osif_remove_context; struct osif_bdesc osif_requested_access; struct osif_bdesc osif_recovery_mode; struct osif_bdesc osif_service_class; struct osif_bdesc osif_session_version; struct osif_bdesc osif_state_result; struct osif_sdesc osif_storage_account; struct osif_bdesc osif_threshold; struct osif_sdesc osif_user_coded; struct osif_sdesc osif_userdata; /* User data used to */ int osif_reserved; /* Reserved for alignment */ unsigned char osif_scratchpad[ SCRATCHPAD_SIZE ]; }; /* * Useful definitions. */ #ifndef OSIF_NULLS_DEFINED static int osif_null = 0; static struct osif_sdesc osif_null_sdesc = { (unsigned char *)&osif_null, sizeof(int), 5, 0 }; static struct osif_bdesc osif_null_bdesc = { 0, sizeof(int), 5, 0 }; #define OSIF_NULLS_DEFINED #endif