summaryrefslogtreecommitdiff
path: root/src/analysis/scan/matches/pending.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/scan/matches/pending.h')
-rw-r--r--src/analysis/scan/matches/pending.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/analysis/scan/matches/pending.h b/src/analysis/scan/matches/pending.h
index 6df01c9..e430ca1 100644
--- a/src/analysis/scan/matches/pending.h
+++ b/src/analysis/scan/matches/pending.h
@@ -21,7 +21,7 @@
*/
-#ifndef _ANALYSIS_SCAN_MATCHES_PENDING_H
+#if 0 //ndef _ANALYSIS_SCAN_MATCHES_PENDING_H
#define _ANALYSIS_SCAN_MATCHES_PENDING_H
@@ -30,17 +30,28 @@
#include "../../content.h"
+#include "../../../common/dllist.h"
+
+
+
+// TODO : move vers ByteMatch
+typedef int GUMemCache;
/* Couverture d'une correspondance */
typedef struct _match_area_t
{
+ DL_LIST_ITEM(link); /* Lien vers les maillons */
+
phys_t start; /* Point de départ */
phys_t end; /* Point d'arrivée (exclus) */
unsigned long ttl; /* Durée de vie pour analyse */
+ size_t mod_path_index; /* Indice de construction */
+ bool has_mod_path; /* Validité du champ précédent */
+
} match_area_t;
/* Suivi de correspondances */
@@ -49,6 +60,7 @@ typedef struct _pending_matches_t
phys_t content_start; /* Point de début du contenu */
phys_t content_end; /* Point de fin du contenu */
+ GUMemCache *allocator; /* Allocateur pour zones */
match_area_t *areas; /* Zones couvertes */
size_t allocated; /* Nombre d'allocations */
size_t used; /* Nombre de zones */
@@ -86,6 +98,9 @@ match_area_t * const *get_all_pending_matches(const pending_matches_t *, size_t
/* Ajoute au suivi la définition d'une nouvelle correspondance. */
void add_pending_match(pending_matches_t *, phys_t, phys_t);
+/* Ajoute au suivi la définition d'une nouvelle correspondance. */
+void add_pending_match_with_path(pending_matches_t *, phys_t, phys_t, size_t);
+
/* Etend une zone couverte dans le suivi des correspondances. */
void extend_pending_match_beginning(pending_matches_t *, size_t, phys_t);