Changeset 201
- Timestamp:
- 06/05/10 00:45:05 (15 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SConstruct
r195 r201 1 1 #cflags = '-std=gnu99 -pedantic -Wall' 2 cflags = '-std=gnu99 -pedantic -Wall - ggdb'2 cflags = '-std=gnu99 -pedantic -Wall -fvisibility=hidden -ggdb' 3 3 4 4 -
trunk/include/lru_cache.h
r169 r201 35 35 #include <string.h> 36 36 #include <unistd.h> 37 #include "talloc.h" 37 #include <talloc.h> 38 39 /* GCC-specific macro for library exports */ 40 #ifdef _EXPORT 41 #undef _EXPORT 42 #endif 43 #define _EXPORT __attribute__((visibility("default"))) 38 44 39 45 struct lru_cache_element; … … 68 74 * XXX: finish documenting. 69 75 */ 76 _EXPORT 70 77 lru_cache* lru_cache_create(uint32_t max_keys, uint32_t secret); 71 78 … … 74 81 * XXX: finish documenting. 75 82 */ 83 _EXPORT 76 84 lru_cache* lru_cache_create_ctx(void* talloc_ctx, uint32_t max_keys, 77 85 uint32_t secret, bool talloc_data); … … 81 89 * XXX: finish documenting. 82 90 */ 91 _EXPORT 83 92 void lru_cache_destroy(lru_cache* ht); 84 93 … … 87 96 * XXX: finish documenting. 88 97 */ 98 _EXPORT 89 99 bool lru_cache_update(lru_cache* ht, const void* index, 90 100 uint32_t index_len, void* data); … … 96 106 * If no data was found at index, NULL is returned. 97 107 */ 108 _EXPORT 98 109 void* lru_cache_find(lru_cache* ht, const void* index, 99 110 uint32_t index_len); … … 107 118 * at index. 108 119 */ 120 _EXPORT 109 121 bool lru_cache_remove(lru_cache* ht, const void* index, 110 122 uint32_t index_len); -
trunk/include/range_list.h
r169 r201 36 36 #include <string.h> 37 37 #include <math.h> 38 #include "talloc.h" 38 #include <talloc.h> 39 40 /* GCC-specific macro for library exports */ 41 #ifdef _EXPORT 42 #undef _EXPORT 43 #endif 44 #define _EXPORT __attribute__((visibility("default"))) 39 45 40 46 typedef struct _range_list_element … … 59 65 * @return A newly allocated range_list, or NULL if an error occurred. 60 66 */ 67 _EXPORT 61 68 range_list* range_list_new(); 62 69 … … 69 76 * @param rl the range_list to be free()d. 70 77 */ 78 _EXPORT 71 79 void range_list_free(range_list* rl); 72 80 … … 78 86 * @return The number of elements currently in the list. 79 87 */ 88 _EXPORT 80 89 uint32_t range_list_size(const range_list* rl); 81 90 … … 97 106 * errors may also be possible. 98 107 */ 108 _EXPORT 99 109 bool range_list_add(range_list* rl, uint32_t offset, uint32_t length, void* data); 100 110 … … 109 119 * @return true if the element was successfully removed, false otherwise. 110 120 */ 121 _EXPORT 111 122 bool range_list_remove(range_list* rl, uint32_t index); 112 123 … … 120 131 * available. 121 132 */ 133 _EXPORT 122 134 const range_list_element* range_list_get(const range_list* rl, uint32_t index); 123 135 … … 130 142 * @return A matching element index or a negative value if none could be found. 131 143 */ 144 _EXPORT 132 145 int32_t range_list_find(const range_list* rl, uint32_t offset); 133 146 … … 144 157 * element was never set. 145 158 */ 159 _EXPORT 146 160 void* range_list_find_data(const range_list* rl, uint32_t offset); 147 161 … … 165 179 * @return true if the element was successfully split, false otherwise. 166 180 */ 181 _EXPORT 167 182 bool range_list_split_element(range_list* rl, uint32_t index, uint32_t offset); 168 183 … … 177 192 * @return true if the specified range exists and is complete, false otherwise. 178 193 */ 194 _EXPORT 179 195 bool range_list_has_range(range_list* rl, uint32_t start, uint32_t length); 180 196 -
trunk/include/regfi.h
r200 r201 71 71 #include <iconv.h> 72 72 #include <pthread.h> 73 #include <talloc.h> 73 74 74 75 /* regfi headers */ 75 76 #include <byteorder.h> 76 #include <talloc.h>77 77 #include <winsec.h> 78 78 #include <void_stack.h> … … 80 80 #include <lru_cache.h> 81 81 82 /* GCC-specific macro for library exports */ 83 #ifdef _EXPORT 84 #undef _EXPORT 85 #endif 86 #define _EXPORT __attribute__((visibility("default"))) 82 87 83 88 … … 859 864 * @ingroup regfiBase 860 865 */ 861 REGFI_FILE* regfi_alloc(int fd); 866 _EXPORT 867 REGFI_FILE* regfi_alloc(int fd); 862 868 863 869 … … 874 880 * @ingroup regfiBase 875 881 */ 876 REGFI_FILE* regfi_alloc_cb(REGFI_RAW_FILE* file_cb); 882 _EXPORT 883 REGFI_FILE* regfi_alloc_cb(REGFI_RAW_FILE* file_cb); 877 884 878 885 … … 883 890 * @ingroup regfiBase 884 891 */ 885 void regfi_free(REGFI_FILE* file); 892 _EXPORT 893 void regfi_free(REGFI_FILE* file); 886 894 887 895 … … 893 901 * @ingroup regfiBase 894 902 */ 903 _EXPORT 895 904 char* regfi_log_get_str(); 896 905 … … 922 931 * @ingroup regfiBase 923 932 */ 933 _EXPORT 924 934 bool regfi_log_set_mask(uint16_t mask); 925 935 … … 939 949 * @ingroup regfiBase 940 950 */ 951 _EXPORT 941 952 void regfi_free_record(const void* record); 942 953 … … 969 980 * @ingroup regfiIteratorLayer 970 981 */ 971 REGFI_ITERATOR* regfi_iterator_new(REGFI_FILE* file, 982 _EXPORT 983 REGFI_ITERATOR* regfi_iterator_new(REGFI_FILE* file, 972 984 REGFI_ENCODING output_encoding); 973 985 … … 981 993 * @ingroup regfiIteratorLayer 982 994 */ 983 void regfi_iterator_free(REGFI_ITERATOR* i); 995 _EXPORT 996 void regfi_iterator_free(REGFI_ITERATOR* i); 984 997 985 998 … … 997 1010 * @ingroup regfiIteratorLayer 998 1011 */ 999 bool regfi_iterator_down(REGFI_ITERATOR* i); 1012 _EXPORT 1013 bool regfi_iterator_down(REGFI_ITERATOR* i); 1000 1014 1001 1015 … … 1009 1023 * @ingroup regfiIteratorLayer 1010 1024 */ 1011 bool regfi_iterator_up(REGFI_ITERATOR* i); 1025 _EXPORT 1026 bool regfi_iterator_up(REGFI_ITERATOR* i); 1012 1027 1013 1028 … … 1020 1035 * @ingroup regfiIteratorLayer 1021 1036 */ 1022 bool regfi_iterator_to_root(REGFI_ITERATOR* i); 1037 _EXPORT 1038 bool regfi_iterator_to_root(REGFI_ITERATOR* i); 1023 1039 1024 1040 … … 1041 1057 * @ingroup regfiIteratorLayer 1042 1058 */ 1059 _EXPORT 1043 1060 bool regfi_iterator_walk_path(REGFI_ITERATOR* i, const char** path); 1044 1061 … … 1052 1069 * @ingroup regfiIteratorLayer 1053 1070 */ 1071 _EXPORT 1054 1072 const REGFI_NK_REC* regfi_iterator_cur_key(REGFI_ITERATOR* i); 1055 1073 … … 1063 1081 * @ingroup regfiIteratorLayer 1064 1082 */ 1083 _EXPORT 1065 1084 const REGFI_SK_REC* regfi_iterator_cur_sk(REGFI_ITERATOR* i); 1066 1085 … … 1075 1094 * @ingroup regfiIteratorLayer 1076 1095 */ 1096 _EXPORT 1077 1097 bool regfi_iterator_first_subkey(REGFI_ITERATOR* i); 1078 1098 … … 1088 1108 * @ingroup regfiIteratorLayer 1089 1109 */ 1110 _EXPORT 1090 1111 const REGFI_NK_REC* regfi_iterator_cur_subkey(REGFI_ITERATOR* i); 1091 1112 … … 1099 1120 * @ingroup regfiIteratorLayer 1100 1121 */ 1122 _EXPORT 1101 1123 bool regfi_iterator_next_subkey(REGFI_ITERATOR* i); 1102 1124 … … 1113 1135 * @ingroup regfiIteratorLayer 1114 1136 */ 1137 _EXPORT 1115 1138 bool regfi_iterator_find_subkey(REGFI_ITERATOR* i, const char* subkey_name); 1116 1139 … … 1125 1148 * @ingroup regfiIteratorLayer 1126 1149 */ 1150 _EXPORT 1127 1151 bool regfi_iterator_first_value(REGFI_ITERATOR* i); 1128 1152 … … 1138 1162 * @ingroup regfiIteratorLayer 1139 1163 */ 1164 _EXPORT 1140 1165 const REGFI_VK_REC* regfi_iterator_cur_value(REGFI_ITERATOR* i); 1141 1166 … … 1149 1174 * @ingroup regfiIteratorLayer 1150 1175 */ 1176 _EXPORT 1151 1177 bool regfi_iterator_next_value(REGFI_ITERATOR* i); 1152 1178 … … 1163 1189 * @ingroup regfiIteratorLayer 1164 1190 */ 1165 bool regfi_iterator_find_value(REGFI_ITERATOR* i, 1166 const char* value_name); 1191 _EXPORT 1192 bool regfi_iterator_find_value(REGFI_ITERATOR* i, 1193 const char* value_name); 1167 1194 1168 1195 /** Retrieves classname for a given key. … … 1176 1203 * @ingroup regfiIteratorLayer 1177 1204 */ 1205 _EXPORT 1178 1206 const REGFI_CLASSNAME* regfi_iterator_fetch_classname(REGFI_ITERATOR* i, 1179 1207 const REGFI_NK_REC* key); … … 1190 1218 * @ingroup regfiIteratorLayer 1191 1219 */ 1220 _EXPORT 1192 1221 const REGFI_DATA* regfi_iterator_fetch_data(REGFI_ITERATOR* i, 1193 1222 const REGFI_VK_REC* value); … … 1207 1236 * @ingroup regfiGlueLayer 1208 1237 */ 1209 REGFI_NK_REC* regfi_load_key(REGFI_FILE* file, uint32_t offset, 1210 REGFI_ENCODING output_encoding, 1211 bool strict); 1238 _EXPORT 1239 REGFI_NK_REC* regfi_load_key(REGFI_FILE* file, uint32_t offset, 1240 REGFI_ENCODING output_encoding, 1241 bool strict); 1212 1242 1213 1243 … … 1218 1248 * @ingroup regfiGlueLayer 1219 1249 */ 1220 REGFI_VK_REC* regfi_load_value(REGFI_FILE* file, uint32_t offset, 1221 REGFI_ENCODING output_encoding, 1250 _EXPORT 1251 REGFI_VK_REC* regfi_load_value(REGFI_FILE* file, uint32_t offset, 1252 REGFI_ENCODING output_encoding, 1253 bool strict); 1254 1255 1256 /** Loads a logical subkey list in its entirety which may span multiple records. 1257 * 1258 * XXX: finish documenting 1259 * 1260 * @ingroup regfiGlueLayer 1261 */ 1262 _EXPORT 1263 REGFI_SUBKEY_LIST* regfi_load_subkeylist(REGFI_FILE* file, uint32_t offset, 1264 uint32_t num_keys, uint32_t max_size, 1265 bool strict); 1266 1267 1268 /** Loads a valuelist. 1269 * 1270 * XXX: finish documenting 1271 * 1272 * @ingroup regfiGlueLayer 1273 */ 1274 _EXPORT 1275 REGFI_VALUE_LIST* regfi_load_valuelist(REGFI_FILE* file, uint32_t offset, 1276 uint32_t num_values, uint32_t max_size, 1222 1277 bool strict); 1223 1224 1225 /** Loads a logical subkey list in its entirety which may span multiple records.1226 *1227 * XXX: finish documenting1228 *1229 * @ingroup regfiGlueLayer1230 */1231 REGFI_SUBKEY_LIST* regfi_load_subkeylist(REGFI_FILE* file, uint32_t offset,1232 uint32_t num_keys, uint32_t max_size,1233 bool strict);1234 1235 1236 /** Loads a valuelist.1237 *1238 * XXX: finish documenting1239 *1240 * @ingroup regfiGlueLayer1241 */1242 REGFI_VALUE_LIST* regfi_load_valuelist(REGFI_FILE* file, uint32_t offset,1243 uint32_t num_values, uint32_t max_size,1244 bool strict);1245 1278 1246 1279 … … 1252 1285 * @ingroup regfiGlueLayer 1253 1286 */ 1254 REGFI_BUFFER regfi_load_data(REGFI_FILE* file, uint32_t voffset, 1255 uint32_t length, bool data_in_offset, 1256 bool strict); 1287 _EXPORT 1288 REGFI_BUFFER regfi_load_data(REGFI_FILE* file, uint32_t voffset, 1289 uint32_t length, bool data_in_offset, 1290 bool strict); 1257 1291 1258 1292 … … 1263 1297 * @ingroup regfiGlueLayer 1264 1298 */ 1265 REGFI_BUFFER regfi_load_big_data(REGFI_FILE* file, uint32_t offset, 1266 uint32_t data_length,uint32_t cell_length, 1267 range_list* used_ranges, 1268 bool strict); 1299 _EXPORT 1300 REGFI_BUFFER regfi_load_big_data(REGFI_FILE* file, uint32_t offset, 1301 uint32_t data_length,uint32_t cell_length, 1302 range_list* used_ranges, 1303 bool strict); 1269 1304 1270 1305 … … 1276 1311 * @ingroup regfiGlueLayer 1277 1312 */ 1278 bool regfi_interpret_data(REGFI_FILE* file, 1279 REGFI_ENCODING string_encoding, 1280 uint32_t type, REGFI_DATA* data); 1313 _EXPORT 1314 bool regfi_interpret_data(REGFI_FILE* file, 1315 REGFI_ENCODING string_encoding, 1316 uint32_t type, REGFI_DATA* data); 1281 1317 1282 1318 … … 1290 1326 * @ingroup regfiGlueLayer 1291 1327 */ 1292 const REGFI_SK_REC* regfi_load_sk(REGFI_FILE* file, uint32_t offset, 1293 bool strict); 1328 _EXPORT 1329 const REGFI_SK_REC* regfi_load_sk(REGFI_FILE* file, uint32_t offset, 1330 bool strict); 1294 1331 1295 1332 … … 1300 1337 * @ingroup regfiGlueLayer 1301 1338 */ 1302 const REGFI_HBIN* regfi_lookup_hbin(REGFI_FILE* file, uint32_t offset); 1339 _EXPORT 1340 const REGFI_HBIN* regfi_lookup_hbin(REGFI_FILE* file, uint32_t offset); 1303 1341 1304 1342 … … 1310 1348 /******************************************************************************/ 1311 1349 1312 REGFI_FILE* regfi_parse_regf(REGFI_RAW_FILE* file_cb, bool strict); 1313 REGFI_HBIN* regfi_parse_hbin(REGFI_FILE* file, uint32_t offset, 1314 bool strict); 1350 _EXPORT 1351 REGFI_FILE* regfi_parse_regf(REGFI_RAW_FILE* file_cb, bool strict); 1352 1353 _EXPORT 1354 REGFI_HBIN* regfi_parse_hbin(REGFI_FILE* file, uint32_t offset, 1355 bool strict); 1315 1356 1316 1357 … … 1327 1368 * @ingroup regfiParseLayer 1328 1369 */ 1329 REGFI_NK_REC* regfi_parse_nk(REGFI_FILE* file, uint32_t offset, 1330 uint32_t max_size, bool strict); 1370 _EXPORT 1371 REGFI_NK_REC* regfi_parse_nk(REGFI_FILE* file, uint32_t offset, 1372 uint32_t max_size, bool strict); 1331 1373 1332 1374 … … 1337 1379 * @ingroup regfiParseLayer 1338 1380 */ 1339 REGFI_SUBKEY_LIST* regfi_parse_subkeylist(REGFI_FILE* file, uint32_t offset, 1340 uint32_t max_size, bool strict); 1381 _EXPORT 1382 REGFI_SUBKEY_LIST* regfi_parse_subkeylist(REGFI_FILE* file, uint32_t offset, 1383 uint32_t max_size, bool strict); 1341 1384 1342 1385 … … 1347 1390 * @ingroup regfiParseLayer 1348 1391 */ 1349 REGFI_VK_REC* regfi_parse_vk(REGFI_FILE* file, uint32_t offset, 1350 uint32_t max_size, bool strict); 1392 _EXPORT 1393 REGFI_VK_REC* regfi_parse_vk(REGFI_FILE* file, uint32_t offset, 1394 uint32_t max_size, bool strict); 1351 1395 1352 1396 … … 1357 1401 * @ingroup regfiParseLayer 1358 1402 */ 1359 REGFI_SK_REC* regfi_parse_sk(REGFI_FILE* file, uint32_t offset, 1360 uint32_t max_size, bool strict); 1403 _EXPORT 1404 REGFI_SK_REC* regfi_parse_sk(REGFI_FILE* file, uint32_t offset, 1405 uint32_t max_size, bool strict); 1361 1406 1362 1407 … … 1370 1415 * @ingroup regfiParseLayer 1371 1416 */ 1372 range_list* regfi_parse_unalloc_cells(REGFI_FILE* file); 1417 _EXPORT 1418 range_list* regfi_parse_unalloc_cells(REGFI_FILE* file); 1373 1419 1374 1420 … … 1379 1425 * @ingroup regfiParseLayer 1380 1426 */ 1381 bool regfi_parse_cell(REGFI_RAW_FILE* file_cb, uint32_t offset, 1382 uint8_t* hdr, uint32_t hdr_len, 1383 uint32_t* cell_length, bool* unalloc); 1427 _EXPORT 1428 bool regfi_parse_cell(REGFI_RAW_FILE* file_cb, uint32_t offset, 1429 uint8_t* hdr, uint32_t hdr_len, 1430 uint32_t* cell_length, bool* unalloc); 1384 1431 1385 1432 … … 1390 1437 * @ingroup regfiParseLayer 1391 1438 */ 1392 uint8_t* regfi_parse_classname(REGFI_FILE* file, uint32_t offset, 1393 uint16_t* name_length, 1394 uint32_t max_size, bool strict); 1439 _EXPORT 1440 uint8_t* regfi_parse_classname(REGFI_FILE* file, uint32_t offset, 1441 uint16_t* name_length, 1442 uint32_t max_size, bool strict); 1395 1443 1396 1444 … … 1401 1449 * @ingroup regfiParseLayer 1402 1450 */ 1403 REGFI_BUFFER regfi_parse_data(REGFI_FILE* file, uint32_t offset, 1404 uint32_t length, bool strict); 1451 _EXPORT 1452 REGFI_BUFFER regfi_parse_data(REGFI_FILE* file, uint32_t offset, 1453 uint32_t length, bool strict); 1405 1454 1406 1455 … … 1412 1461 * @ingroup regfiParseLayer 1413 1462 */ 1414 REGFI_BUFFER regfi_parse_little_data(REGFI_FILE* file, uint32_t voffset, 1415 uint32_t length, bool strict); 1463 _EXPORT 1464 REGFI_BUFFER regfi_parse_little_data(REGFI_FILE* file, uint32_t voffset, 1465 uint32_t length, bool strict); 1416 1466 1417 1467 … … 1426 1476 ssize_t regfi_raw_read(REGFI_RAW_FILE* self, 1427 1477 void* buf, size_t count); 1478 _EXPORT 1428 1479 off_t regfi_seek(REGFI_RAW_FILE* file_cb, 1429 1480 off_t offset, int whence); 1481 _EXPORT 1430 1482 uint32_t regfi_read(REGFI_RAW_FILE* file_cb, 1431 1483 uint8_t* buf, uint32_t* length); 1432 1484 1485 _EXPORT 1433 1486 const char* regfi_type_val2str(unsigned int val); 1487 _EXPORT 1434 1488 int regfi_type_str2val(const char* str); 1435 1489 1490 _EXPORT 1436 1491 char* regfi_get_sacl(WINSEC_DESC* sec_desc); 1492 _EXPORT 1437 1493 char* regfi_get_dacl(WINSEC_DESC* sec_desc); 1494 _EXPORT 1438 1495 char* regfi_get_owner(WINSEC_DESC* sec_desc); 1496 _EXPORT 1439 1497 char* regfi_get_group(WINSEC_DESC* sec_desc); 1440 1498 … … 1449 1507 REGFI_NK_REC* regfi_copy_nk(const REGFI_NK_REC* nk); 1450 1508 REGFI_VK_REC* regfi_copy_vk(const REGFI_VK_REC* vk); 1509 _EXPORT 1451 1510 int32_t regfi_calc_maxsize(REGFI_FILE* file, uint32_t offset); 1452 1511 int32_t regfi_conv_charset(const char* input_charset, … … 1454 1513 uint8_t* input, char* output, 1455 1514 uint32_t input_len, uint32_t output_max); 1515 _EXPORT 1456 1516 REGFI_DATA* regfi_buffer_to_data(REGFI_BUFFER raw_data); 1457 1517 1458 1518 /* XXX: move to base API and document */ 1519 _EXPORT 1459 1520 void regfi_unix2nt_time(REGFI_NTTIME* nt, time_t t); 1521 _EXPORT 1460 1522 time_t regfi_nt2unix_time(const REGFI_NTTIME* nt); 1461 1523 1462 1524 1525 _EXPORT 1463 1526 void regfi_interpret_keyname(REGFI_FILE* file, REGFI_NK_REC* nk, 1464 1527 REGFI_ENCODING output_encoding, bool strict); 1528 _EXPORT 1465 1529 void regfi_interpret_valuename(REGFI_FILE* file, REGFI_VK_REC* vk, 1466 1530 REGFI_ENCODING output_encoding, bool strict); -
trunk/include/void_stack.h
r169 r201 32 32 #include <stdbool.h> 33 33 #include <string.h> 34 #include "talloc.h" 34 #include <talloc.h> 35 36 /* GCC-specific macro for library exports */ 37 #ifdef _EXPORT 38 #undef _EXPORT 39 #endif 40 #define _EXPORT __attribute__((visibility("default"))) 35 41 36 42 /** XXX: document this. */ … … 59 65 * or NULL if an error occurred. 60 66 */ 67 _EXPORT 61 68 void_stack* void_stack_new(unsigned short max_size); 62 69 … … 68 75 * @return a pointer to the duplicate void_stack, or NULL if an error occurred. 69 76 */ 77 _EXPORT 70 78 void_stack* void_stack_copy(const void_stack* v); 71 79 … … 78 86 * (which will be in reverse order), or NULL if an error occurred. 79 87 */ 88 _EXPORT 80 89 void_stack* void_stack_copy_reverse(const void_stack* v); 81 90 … … 86 95 * @param stack the stack to be free()d. 87 96 */ 97 _EXPORT 88 98 void void_stack_free(void_stack* stack); 89 99 … … 98 108 * @param stack the stack to be free()d. 99 109 */ 110 _EXPORT 100 111 void void_stack_free_deep(void_stack* stack); 101 112 … … 107 118 * @return the number of elements currently on the stack. 108 119 */ 120 _EXPORT 109 121 unsigned short void_stack_size(const void_stack* stack); 110 122 … … 117 129 * on the stack. 118 130 */ 131 _EXPORT 119 132 void* void_stack_pop(void_stack* stack); 120 133 … … 127 140 * @return true if the element was successfully added, false otherwise. 128 141 */ 142 _EXPORT 129 143 bool void_stack_push(void_stack* stack, void* e); 130 144 … … 137 151 * no elements exist in the stack. 138 152 */ 153 _EXPORT 139 154 const void* void_stack_cur(const void_stack* stack); 140 155 … … 146 161 * @return a new void_stack_iterator, or NULL if an error occurred. 147 162 */ 163 _EXPORT 148 164 void_stack_iterator* void_stack_iterator_new(const void_stack* stack); 149 165 … … 155 171 * @param iter the void_stack_iterator to be free()d. 156 172 */ 173 _EXPORT 157 174 void void_stack_iterator_free(void_stack_iterator* iter); 158 175 … … 166 183 * @return a pointer to the next element. 167 184 */ 185 _EXPORT 168 186 const void* void_stack_iterator_next(void_stack_iterator* iter); 169 187 -
trunk/include/winsec.h
r169 r201 44 44 #include <sys/types.h> 45 45 #include <unistd.h> 46 47 #include "talloc.h" 46 #include <talloc.h> 47 48 48 #include "byteorder.h" 49 50 /* GCC-specific macro for library exports */ 51 #ifdef _EXPORT 52 #undef _EXPORT 53 #endif 54 #define _EXPORT __attribute__((visibility("default"))) 49 55 50 56 … … 217 223 * XXX: finish documenting 218 224 */ 225 _EXPORT 219 226 WINSEC_DESC* winsec_parse_descriptor(const uint8_t* buf, uint32_t buf_len); 220 227 … … 224 231 * XXX: finish documenting 225 232 */ 233 _EXPORT 226 234 void winsec_free_descriptor(WINSEC_DESC* desc); 227 235 … … 230 238 * XXX: finish documenting 231 239 */ 240 _EXPORT 232 241 WINSEC_DESC* winsec_parse_desc(void* talloc_ctx, 233 242 const uint8_t* buf, uint32_t buf_len); … … 237 246 * XXX: finish documenting 238 247 */ 248 _EXPORT 239 249 WINSEC_ACL* winsec_parse_acl(void* talloc_ctx, 240 250 const uint8_t* buf, uint32_t buf_len); … … 244 254 * XXX: finish documenting 245 255 */ 256 _EXPORT 246 257 WINSEC_ACE* winsec_parse_ace(void* talloc_ctx, 247 258 const uint8_t* buf, uint32_t buf_len); … … 251 262 * XXX: finish documenting 252 263 */ 264 _EXPORT 253 265 WINSEC_DOM_SID* winsec_parse_dom_sid(void* talloc_ctx, 254 266 const uint8_t* buf, uint32_t buf_len); … … 258 270 * XXX: finish documenting 259 271 */ 272 _EXPORT 260 273 WINSEC_UUID* winsec_parse_uuid(void* talloc_ctx, 261 274 const uint8_t* buf, uint32_t buf_len); … … 266 279 * XXX: finish documenting 267 280 */ 281 _EXPORT 268 282 size_t winsec_sid_size(const WINSEC_DOM_SID* sid); 269 283 … … 272 286 * XXX: finish documenting 273 287 */ 288 _EXPORT 274 289 int winsec_sid_compare_auth(const WINSEC_DOM_SID* sid1, const WINSEC_DOM_SID* sid2); 275 290 … … 278 293 * XXX: finish documenting 279 294 */ 295 _EXPORT 280 296 int winsec_sid_compare(const WINSEC_DOM_SID* sid1, const WINSEC_DOM_SID* sid2); 281 297 … … 284 300 * XXX: finish documenting 285 301 */ 302 _EXPORT 286 303 bool winsec_sid_equal(const WINSEC_DOM_SID* sid1, const WINSEC_DOM_SID* sid2); 287 304 … … 290 307 * XXX: finish documenting 291 308 */ 309 _EXPORT 292 310 bool winsec_desc_equal(WINSEC_DESC* s1, WINSEC_DESC* s2); 293 311 … … 296 314 * XXX: finish documenting 297 315 */ 316 _EXPORT 298 317 bool winsec_acl_equal(WINSEC_ACL* s1, WINSEC_ACL* s2); 299 318 … … 302 321 * XXX: finish documenting 303 322 */ 323 _EXPORT 304 324 bool winsec_ace_equal(WINSEC_ACE* s1, WINSEC_ACE* s2); 305 325 … … 308 328 * XXX: finish documenting 309 329 */ 330 _EXPORT 310 331 bool winsec_ace_object(uint8_t type); 311 332
Note: See TracChangeset
for help on using the changeset viewer.