tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

install-ds.h (7717B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #ifndef INSTALL_DS_H
      6 #define INSTALL_DS_H
      7 
      8 #include <stdio.h>
      9 #include <prio.h>
     10 #include <prmem.h>
     11 
     12 extern PRFileDesc* Pk11Install_FD;
     13 extern int Pk11Install_yylex();
     14 extern int Pk11Install_yylinenum;
     15 extern char* Pk11Install_yyerrstr;
     16 
     17 typedef enum { STRING_VALUE,
     18               PAIR_VALUE } ValueType;
     19 
     20 typedef struct Pk11Install_Pair_str Pk11Install_Pair;
     21 typedef union Pk11Install_Pointer_str Pk11Install_Pointer;
     22 typedef struct Pk11Install_Value_str Pk11Install_Value;
     23 typedef struct Pk11Install_ValueList_str Pk11Install_ValueList;
     24 typedef struct Pk11Install_ListIter_str Pk11Install_ListIter;
     25 typedef struct Pk11Install_File_str Pk11Install_File;
     26 typedef struct Pk11Install_PlatformName_str Pk11Install_PlatformName;
     27 typedef struct Pk11Install_Platform_str Pk11Install_Platform;
     28 typedef struct Pk11Install_Info_str Pk11Install_Info;
     29 
     30 extern Pk11Install_Pointer Pk11Install_yylval;
     31 extern Pk11Install_ValueList* Pk11Install_valueList;
     32 
     33 /*
     34 //////////////////////////////////////////////////////////////////////////
     35 // Pk11Install_Pair
     36 //////////////////////////////////////////////////////////////////////////
     37 */
     38 
     39 struct Pk11Install_Pair_str {
     40    char* key;
     41    Pk11Install_ValueList* list;
     42 };
     43 
     44 Pk11Install_Pair*
     45 Pk11Install_Pair_new_default();
     46 Pk11Install_Pair*
     47 Pk11Install_Pair_new(char* _key, Pk11Install_ValueList* _list);
     48 void
     49 Pk11Install_Pair_delete(Pk11Install_Pair* _this);
     50 void
     51 Pk11Install_Pair_Print(Pk11Install_Pair* _this, int pad);
     52 
     53 /*
     54 //////////////////////////////////////////////////////////////////////////
     55 // Pk11Install_Pointer
     56 //////////////////////////////////////////////////////////////////////////
     57 */
     58 union Pk11Install_Pointer_str {
     59    Pk11Install_ValueList* list;
     60    Pk11Install_Value* value;
     61    Pk11Install_Pair* pair;
     62    char* string;
     63 };
     64 
     65 /*
     66 //////////////////////////////////////////////////////////////////////////
     67 // Pk11Install_Value
     68 //////////////////////////////////////////////////////////////////////////
     69 */
     70 struct Pk11Install_Value_str {
     71 
     72    ValueType type;
     73    char* string;
     74    Pk11Install_Pair* pair;
     75    struct Pk11Install_Value_str* next;
     76 };
     77 
     78 Pk11Install_Value*
     79 Pk11Install_Value_new_default();
     80 Pk11Install_Value*
     81 Pk11Install_Value_new(ValueType _type, Pk11Install_Pointer ptr);
     82 void
     83 Pk11Install_Value_delete(Pk11Install_Value* _this);
     84 void
     85 Pk11Install_Value_Print(Pk11Install_Value* _this, int pad);
     86 
     87 /*
     88 //////////////////////////////////////////////////////////////////////////
     89 // Pk11Install_ValueList
     90 //////////////////////////////////////////////////////////////////////////
     91 */
     92 struct Pk11Install_ValueList_str {
     93    int numItems;
     94    int numPairs;
     95    int numStrings;
     96    Pk11Install_Value* head;
     97 };
     98 
     99 Pk11Install_ValueList*
    100 Pk11Install_ValueList_new();
    101 void
    102 Pk11Install_ValueList_delete(Pk11Install_ValueList* _this);
    103 void
    104 Pk11Install_ValueList_AddItem(Pk11Install_ValueList* _this,
    105                              Pk11Install_Value* item);
    106 void
    107 Pk11Install_ValueList_Print(Pk11Install_ValueList* _this, int pad);
    108 
    109 /*
    110 //////////////////////////////////////////////////////////////////////////
    111 // Pk11Install_ListIter
    112 //////////////////////////////////////////////////////////////////////////
    113 */
    114 struct Pk11Install_ListIter_str {
    115    const Pk11Install_ValueList* list;
    116    Pk11Install_Value* current;
    117 };
    118 
    119 Pk11Install_ListIter*
    120 Pk11Install_ListIter_new_default();
    121 void
    122 Pk11Install_ListIter_init(Pk11Install_ListIter* _this);
    123 Pk11Install_ListIter*
    124 Pk11Install_ListIter_new(const Pk11Install_ValueList* _list);
    125 void
    126 Pk11Install_ListIter_delete(Pk11Install_ListIter** _this);
    127 void
    128 Pk11Install_ListIter_reset(Pk11Install_ListIter* _this);
    129 Pk11Install_Value*
    130 Pk11Install_ListIter_nextItem(Pk11Install_ListIter* _this);
    131 
    132 /************************************************************************
    133 *
    134 * Pk11Install_File
    135 */
    136 struct Pk11Install_File_str {
    137    char* jarPath;
    138    char* relativePath;
    139    char* absolutePath;
    140    PRBool executable;
    141    int permissions;
    142 };
    143 
    144 Pk11Install_File*
    145 Pk11Install_File_new();
    146 void
    147 Pk11Install_File_init(Pk11Install_File* _this);
    148 void
    149 Pk11Install_file_delete(Pk11Install_File* _this);
    150 /*// Parses a syntax tree to obtain all attributes.
    151 // Returns NULL for success, error message if parse error.*/
    152 char*
    153 Pk11Install_File_Generate(Pk11Install_File* _this,
    154                          const Pk11Install_Pair* pair);
    155 void
    156 Pk11Install_File_Print(Pk11Install_File* _this, int pad);
    157 void
    158 Pk11Install_File_Cleanup(Pk11Install_File* _this);
    159 
    160 /************************************************************************
    161 *
    162 * Pk11Install_PlatformName
    163 */
    164 struct Pk11Install_PlatformName_str {
    165    char* OS;
    166    char** verString;
    167    int numDigits;
    168    char* arch;
    169 };
    170 
    171 Pk11Install_PlatformName*
    172 Pk11Install_PlatformName_new();
    173 void
    174 Pk11Install_PlatformName_init(Pk11Install_PlatformName* _this);
    175 void
    176 Pk11Install_PlatformName_delete(Pk11Install_PlatformName* _this);
    177 char*
    178 Pk11Install_PlatformName_Generate(Pk11Install_PlatformName* _this,
    179                                  const char* str);
    180 char*
    181 Pk11Install_PlatformName_GetString(Pk11Install_PlatformName* _this);
    182 char*
    183 Pk11Install_PlatformName_GetVerString(Pk11Install_PlatformName* _this);
    184 void
    185 Pk11Install_PlatformName_Print(Pk11Install_PlatformName* _this, int pad);
    186 void
    187 Pk11Install_PlatformName_Cleanup(Pk11Install_PlatformName* _this);
    188 PRBool
    189 Pk11Install_PlatformName_equal(Pk11Install_PlatformName* _this,
    190                               Pk11Install_PlatformName* cmp);
    191 PRBool
    192 Pk11Install_PlatformName_lteq(Pk11Install_PlatformName* _this,
    193                              Pk11Install_PlatformName* cmp);
    194 PRBool
    195 Pk11Install_PlatformName_lt(Pk11Install_PlatformName* _this,
    196                            Pk11Install_PlatformName* cmp);
    197 
    198 /************************************************************************
    199 *
    200 * Pk11Install_Platform
    201 */
    202 struct Pk11Install_Platform_str {
    203    Pk11Install_PlatformName name;
    204    Pk11Install_PlatformName equivName;
    205    struct Pk11Install_Platform_str* equiv;
    206    PRBool usesEquiv;
    207    char* moduleFile;
    208    char* moduleName;
    209    int modFile;
    210    unsigned long mechFlags;
    211    unsigned long cipherFlags;
    212    Pk11Install_File* files;
    213    int numFiles;
    214 };
    215 
    216 Pk11Install_Platform*
    217 Pk11Install_Platform_new();
    218 void
    219 Pk11Install_Platform_init(Pk11Install_Platform* _this);
    220 void
    221 Pk11Install_Platform_delete(Pk11Install_Platform* _this);
    222 /*// Returns NULL for success, error message if parse error.*/
    223 char*
    224 Pk11Install_Platform_Generate(Pk11Install_Platform* _this,
    225                              const Pk11Install_Pair* pair);
    226 void
    227 Pk11Install_Platform_Print(Pk11Install_Platform* _this, int pad);
    228 void
    229 Pk11Install_Platform_Cleanup(Pk11Install_Platform* _this);
    230 
    231 /************************************************************************
    232 *
    233 * Pk11Install_Info
    234 */
    235 struct Pk11Install_Info_str {
    236    Pk11Install_Platform* platforms;
    237    int numPlatforms;
    238    Pk11Install_PlatformName* forwardCompatible;
    239    int numForwardCompatible;
    240 };
    241 
    242 Pk11Install_Info*
    243 Pk11Install_Info_new();
    244 void
    245 Pk11Install_Info_init(Pk11Install_Info* _this);
    246 void
    247 Pk11Install_Info_delete(Pk11Install_Info* _this);
    248 /*// Returns NULL for success, error message if parse error.*/
    249 char*
    250 Pk11Install_Info_Generate(Pk11Install_Info* _this,
    251                          const Pk11Install_ValueList* list);
    252 /*// Returns NULL if there is no matching platform*/
    253 Pk11Install_Platform*
    254 Pk11Install_Info_GetBestPlatform(Pk11Install_Info* _this, char* myPlatform);
    255 void
    256 Pk11Install_Info_Print(Pk11Install_Info* _this, int pad);
    257 void
    258 Pk11Install_Info_Cleanup(Pk11Install_Info* _this);
    259 
    260 #endif /* INSTALL_DS_H */