1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/cmd/modutil/install-ds.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,261 @@ 1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.7 + 1.8 +#ifndef INSTALL_DS_H 1.9 +#define INSTALL_DS_H 1.10 + 1.11 +#include <stdio.h> 1.12 +#include <prio.h> 1.13 +#include <prmem.h> 1.14 + 1.15 +extern PRFileDesc *Pk11Install_FD; 1.16 +extern int Pk11Install_yylex(); 1.17 +extern int Pk11Install_yylinenum; 1.18 +extern char *Pk11Install_yyerrstr; 1.19 + 1.20 +typedef enum { STRING_VALUE, PAIR_VALUE } ValueType; 1.21 + 1.22 +typedef struct Pk11Install_Pair_str Pk11Install_Pair; 1.23 +typedef union Pk11Install_Pointer_str Pk11Install_Pointer; 1.24 +typedef struct Pk11Install_Value_str Pk11Install_Value; 1.25 +typedef struct Pk11Install_ValueList_str Pk11Install_ValueList; 1.26 +typedef struct Pk11Install_ListIter_str Pk11Install_ListIter; 1.27 +typedef struct Pk11Install_File_str Pk11Install_File; 1.28 +typedef struct Pk11Install_PlatformName_str Pk11Install_PlatformName; 1.29 +typedef struct Pk11Install_Platform_str Pk11Install_Platform; 1.30 +typedef struct Pk11Install_Info_str Pk11Install_Info; 1.31 + 1.32 +extern Pk11Install_Pointer Pk11Install_yylval; 1.33 +extern Pk11Install_ValueList* Pk11Install_valueList; 1.34 + 1.35 +/* 1.36 +////////////////////////////////////////////////////////////////////////// 1.37 +// Pk11Install_Pair 1.38 +////////////////////////////////////////////////////////////////////////// 1.39 +*/ 1.40 + 1.41 +struct Pk11Install_Pair_str { 1.42 + char * key; 1.43 + Pk11Install_ValueList *list; 1.44 + 1.45 +}; 1.46 + 1.47 +Pk11Install_Pair* 1.48 +Pk11Install_Pair_new_default(); 1.49 +Pk11Install_Pair* 1.50 +Pk11Install_Pair_new( char* _key, Pk11Install_ValueList* _list); 1.51 +void 1.52 +Pk11Install_Pair_delete(Pk11Install_Pair* _this); 1.53 +void 1.54 +Pk11Install_Pair_Print(Pk11Install_Pair* _this, int pad); 1.55 + 1.56 +/* 1.57 +////////////////////////////////////////////////////////////////////////// 1.58 +// Pk11Install_Pointer 1.59 +////////////////////////////////////////////////////////////////////////// 1.60 +*/ 1.61 +union Pk11Install_Pointer_str { 1.62 + Pk11Install_ValueList *list; 1.63 + Pk11Install_Value *value; 1.64 + Pk11Install_Pair *pair; 1.65 + char *string; 1.66 +}; 1.67 + 1.68 +/* 1.69 +////////////////////////////////////////////////////////////////////////// 1.70 +// Pk11Install_Value 1.71 +////////////////////////////////////////////////////////////////////////// 1.72 +*/ 1.73 +struct Pk11Install_Value_str { 1.74 + 1.75 + ValueType type; 1.76 + char *string; 1.77 + Pk11Install_Pair *pair; 1.78 + struct Pk11Install_Value_str *next; 1.79 +}; 1.80 + 1.81 +Pk11Install_Value* 1.82 +Pk11Install_Value_new_default(); 1.83 +Pk11Install_Value* 1.84 +Pk11Install_Value_new(ValueType _type, Pk11Install_Pointer ptr); 1.85 +void 1.86 +Pk11Install_Value_delete(Pk11Install_Value* _this); 1.87 +void 1.88 +Pk11Install_Value_Print(Pk11Install_Value* _this, int pad); 1.89 + 1.90 +/* 1.91 +////////////////////////////////////////////////////////////////////////// 1.92 +// Pk11Install_ValueList 1.93 +////////////////////////////////////////////////////////////////////////// 1.94 +*/ 1.95 +struct Pk11Install_ValueList_str { 1.96 + int numItems; 1.97 + int numPairs; 1.98 + int numStrings; 1.99 + Pk11Install_Value *head; 1.100 +}; 1.101 + 1.102 +Pk11Install_ValueList* 1.103 +Pk11Install_ValueList_new(); 1.104 +void 1.105 +Pk11Install_ValueList_delete(Pk11Install_ValueList* _this); 1.106 +void 1.107 +Pk11Install_ValueList_AddItem(Pk11Install_ValueList* _this, 1.108 + Pk11Install_Value* item); 1.109 +void 1.110 +Pk11Install_ValueList_Print(Pk11Install_ValueList* _this, int pad); 1.111 + 1.112 + 1.113 +/* 1.114 +////////////////////////////////////////////////////////////////////////// 1.115 +// Pk11Install_ListIter 1.116 +////////////////////////////////////////////////////////////////////////// 1.117 +*/ 1.118 +struct Pk11Install_ListIter_str { 1.119 + const Pk11Install_ValueList *list; 1.120 + Pk11Install_Value *current; 1.121 +}; 1.122 + 1.123 +Pk11Install_ListIter* 1.124 +Pk11Install_ListIter_new_default(); 1.125 +void 1.126 +Pk11Install_ListIter_init(Pk11Install_ListIter* _this); 1.127 +Pk11Install_ListIter* 1.128 +Pk11Install_ListIter_new(const Pk11Install_ValueList* _list); 1.129 +void 1.130 +Pk11Install_ListIter_delete(Pk11Install_ListIter* _this); 1.131 +void 1.132 +Pk11Install_ListIter_reset(Pk11Install_ListIter* _this); 1.133 +Pk11Install_Value* 1.134 +Pk11Install_ListIter_nextItem(Pk11Install_ListIter* _this); 1.135 + 1.136 +/************************************************************************ 1.137 + * 1.138 + * Pk11Install_File 1.139 + */ 1.140 +struct Pk11Install_File_str { 1.141 + char *jarPath; 1.142 + char *relativePath; 1.143 + char *absolutePath; 1.144 + PRBool executable; 1.145 + int permissions; 1.146 +}; 1.147 + 1.148 +Pk11Install_File* 1.149 +Pk11Install_File_new(); 1.150 +void 1.151 +Pk11Install_File_init(Pk11Install_File* _this); 1.152 +void 1.153 +Pk11Install_file_delete(Pk11Install_File* _this); 1.154 +/*// Parses a syntax tree to obtain all attributes. 1.155 +// Returns NULL for success, error message if parse error.*/ 1.156 +char* 1.157 +Pk11Install_File_Generate(Pk11Install_File* _this, 1.158 + const Pk11Install_Pair* pair); 1.159 +void 1.160 +Pk11Install_File_Print(Pk11Install_File* _this, int pad); 1.161 +void 1.162 +Pk11Install_File_Cleanup(Pk11Install_File* _this); 1.163 + 1.164 +/************************************************************************ 1.165 + * 1.166 + * Pk11Install_PlatformName 1.167 + */ 1.168 +struct Pk11Install_PlatformName_str { 1.169 + char *OS; 1.170 + char **verString; 1.171 + int numDigits; 1.172 + char *arch; 1.173 +}; 1.174 + 1.175 +Pk11Install_PlatformName* 1.176 +Pk11Install_PlatformName_new(); 1.177 +void 1.178 +Pk11Install_PlatformName_init(Pk11Install_PlatformName* _this); 1.179 +void 1.180 +Pk11Install_PlatformName_delete(Pk11Install_PlatformName* _this); 1.181 +char* 1.182 +Pk11Install_PlatformName_Generate(Pk11Install_PlatformName* _this, 1.183 + const char* str); 1.184 +char* 1.185 +Pk11Install_PlatformName_GetString(Pk11Install_PlatformName* _this); 1.186 +char* 1.187 +Pk11Install_PlatformName_GetVerString(Pk11Install_PlatformName* _this); 1.188 +void 1.189 +Pk11Install_PlatformName_Print(Pk11Install_PlatformName* _this, int pad); 1.190 +void 1.191 +Pk11Install_PlatformName_Cleanup(Pk11Install_PlatformName* _this); 1.192 +PRBool 1.193 +Pk11Install_PlatformName_equal(Pk11Install_PlatformName* _this, 1.194 + Pk11Install_PlatformName* cmp); 1.195 +PRBool 1.196 +Pk11Install_PlatformName_lteq(Pk11Install_PlatformName* _this, 1.197 + Pk11Install_PlatformName* cmp); 1.198 +PRBool 1.199 +Pk11Install_PlatformName_lt(Pk11Install_PlatformName* _this, 1.200 + Pk11Install_PlatformName* cmp); 1.201 + 1.202 +/************************************************************************ 1.203 + * 1.204 + * Pk11Install_Platform 1.205 + */ 1.206 +struct Pk11Install_Platform_str { 1.207 + Pk11Install_PlatformName name; 1.208 + Pk11Install_PlatformName equivName; 1.209 + struct Pk11Install_Platform_str *equiv; 1.210 + PRBool usesEquiv; 1.211 + char *moduleFile; 1.212 + char *moduleName; 1.213 + int modFile; 1.214 + unsigned long mechFlags; 1.215 + unsigned long cipherFlags; 1.216 + Pk11Install_File *files; 1.217 + int numFiles; 1.218 +}; 1.219 + 1.220 +Pk11Install_Platform* 1.221 +Pk11Install_Platform_new(); 1.222 +void 1.223 +Pk11Install_Platform_init(Pk11Install_Platform* _this); 1.224 +void 1.225 +Pk11Install_Platform_delete(Pk11Install_Platform* _this); 1.226 +/*// Returns NULL for success, error message if parse error.*/ 1.227 +char* 1.228 +Pk11Install_Platform_Generate(Pk11Install_Platform* _this, 1.229 + const Pk11Install_Pair *pair); 1.230 +void 1.231 +Pk11Install_Platform_Print(Pk11Install_Platform* _this, int pad); 1.232 +void 1.233 +Pk11Install_Platform_Cleanup(Pk11Install_Platform* _this); 1.234 + 1.235 +/************************************************************************ 1.236 + * 1.237 + * Pk11Install_Info 1.238 + */ 1.239 +struct Pk11Install_Info_str { 1.240 + Pk11Install_Platform *platforms; 1.241 + int numPlatforms; 1.242 + Pk11Install_PlatformName *forwardCompatible; 1.243 + int numForwardCompatible; 1.244 +}; 1.245 + 1.246 +Pk11Install_Info* 1.247 +Pk11Install_Info_new(); 1.248 +void 1.249 +Pk11Install_Info_init(); 1.250 +void 1.251 +Pk11Install_Info_delete(Pk11Install_Info* _this); 1.252 +/*// Returns NULL for success, error message if parse error.*/ 1.253 +char* 1.254 +Pk11Install_Info_Generate(Pk11Install_Info* _this, 1.255 + const Pk11Install_ValueList *list); 1.256 + /*// Returns NULL if there is no matching platform*/ 1.257 +Pk11Install_Platform* 1.258 +Pk11Install_Info_GetBestPlatform(Pk11Install_Info* _this, char* myPlatform); 1.259 +void 1.260 +Pk11Install_Info_Print(Pk11Install_Info* _this, int pad); 1.261 +void 1.262 +Pk11Install_Info_Cleanup(Pk11Install_Info* _this); 1.263 + 1.264 +#endif /* INSTALL_DS_H */