|
|
1.1 ! root 1: /* attr.h - directory service interface definition */ ! 2: ! 3: /* ! 4: * $Header: /f/osi/h/quipu/RCS/attr.h,v 7.1 90/07/09 14:38:15 mrose Exp $ ! 5: * ! 6: * ! 7: * $Log: attr.h,v $ ! 8: * Revision 7.1 90/07/09 14:38:15 mrose ! 9: * sync ! 10: * ! 11: * Revision 7.0 89/11/23 21:56:21 mrose ! 12: * Release 6.0 ! 13: * ! 14: */ ! 15: ! 16: /* ! 17: * NOTICE ! 18: * ! 19: * Acquisition, use, and distribution of this module and related ! 20: * materials are subject to the restrictions of a license agreement. ! 21: * Consult the Preface in the User's Manual for the full terms of ! 22: * this agreement. ! 23: * ! 24: */ ! 25: ! 26: ! 27: #ifndef QUIPUATTR ! 28: #define QUIPUATTR ! 29: ! 30: #include "quipu/oid.h" ! 31: #include "manifest.h" ! 32: ! 33: #ifndef TRUE ! 34: #define FALSE 0 ! 35: #define TRUE 1 ! 36: #endif ! 37: ! 38: /* FIRST SECTION DEFINES STRUCTURES FOR ADDRESSING */ ! 39: ! 40: typedef oid_table_attr * attrType; ! 41: typedef oid_table_attr * AttributeType; ! 42: ! 43: #define NULLAttrT (AttributeType) NULL ! 44: #define AttrT_alloc() ! 45: /* ! 46: #define AttrT_cmp(x,y) (x ? ( y ? ( x == y ? 0 : ( x > y ? 1 : -1 )) : 1) : -1) ! 47: */ ! 48: #define AttrT_cmp(x,y) ( x == y ? 0 : ( x > y ? 1 : -1 )) ! 49: #define AttrT_decode(x) ! 50: #define AttrT_free(x) ! 51: #define AttrT_cpy(x) x ! 52: #define grab_oid(x) (x ? x->oa_ot.ot_oid : NULLOID) ! 53: ! 54: AttributeType AttrT_new(); ! 55: ! 56: ! 57: #define str2AttrT(x) AttrT_new(x) ! 58: ! 59: typedef struct { ! 60: short av_syntax; /* Specifies the syntax of the */ ! 61: /* attribute that follows. */ ! 62: caddr_t av_struct; ! 63: } attrVal, * AttributeValue; ! 64: ! 65: #define AV_WRITE_FILE 256 ! 66: #define AV_FILE 128 ! 67: #define MAX_AV_SYNTAX 100 ! 68: ! 69: #define NULLAttrV (AttributeValue) NULL ! 70: #define AttrV_alloc() (AttributeValue) smalloc (sizeof (attrVal)); ! 71: ! 72: AttributeValue AttrV_cpy(); ! 73: AttributeValue str_at2AttrV(); ! 74: AttributeValue str2AttrV(); ! 75: short str2syntax(); ! 76: short add_attribute_syntax (); ! 77: ! 78: struct file_syntax { ! 79: short fs_real_syntax; ! 80: char * fs_name; ! 81: char fs_mode; ! 82: char fs_ref; ! 83: AttributeValue fs_attr; ! 84: }; ! 85: #define FS_DEFAULT 0x01 /* default file name */ ! 86: #define FS_CREATE 0x02 /* created thus remove file */ ! 87: ! 88: #define EDBOUT 1 ! 89: #define FILEOUT 2 /* for writing to files only */ ! 90: #define READOUT 3 ! 91: #define DIROUT 4 /* for dn and rdn print only */ ! 92: #define RDNOUT 5 ! 93: #define UFNOUT 6 /* user-friendly naming */ ! 94: ! 95: #define ps_print(ps,data) (void)ps_write(ps,(PElementData)data,strlen(data)) ! 96: ! 97: typedef struct { ! 98: char * s_sntx; /* String defining syntax */ ! 99: IFP s_encode; ! 100: IFP s_decode; ! 101: IFP s_parse; ! 102: IFP s_print; ! 103: IFP s_copy; ! 104: IFP s_compare; ! 105: IFP s_free; ! 106: char * s_pe_print; /* process to handle raw PE */ ! 107: IFP s_approx; /* approx match routine */ ! 108: char s_multiline; /* if true print each value on new line */ ! 109: } sntx_table; ! 110: ! 111: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.