1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#ifndef _kernel_abi_checker_h_
#define _kernel_abi_checker_h_
#include <stdio.h>
#include <glib.h>
/*
* Definitions
*/
#define KERNEL_SYMBOL_NAME_LENGTH 64
#define KERNEL_SYMBOL_NAME_CRC 32
#define KERNEL_SYMBOL_MODULE 256
#define KERNEL_SYMBOL_FLAG 256
#define KERNEL_SYMBOL_STATUS_NO_TESTED 0
#define KERNEL_SYMBOL_STATUS_NO_CHANGES 1
#define KERNEL_SYMBOL_STATUS_NEW 2
#define KERNEL_SYMBOL_STATUS_REMOVED 3
#define KERNEL_SYMBOL_STATUS_CHANGED 4
#define KERNEL_SYMBOL_STATUS_VIEWED 5
#define _LINE_LENGTH_ 4096
/*
* Data types
*/
typedef struct KernelSymbol
{
char symbolName[KERNEL_SYMBOL_NAME_LENGTH + 1];
char symbolNameCrc[KERNEL_SYMBOL_NAME_CRC + 1];
char symbolModule[KERNEL_SYMBOL_MODULE + 1];
char flag[KERNEL_SYMBOL_FLAG + 1];
int status;
} KernelSymbol;
typedef struct KernelSymbolStatistics
{
int symver_current_count;
int symver_new_count;
int new_symbols_count;
int removed_symbols_count;
int changed_symbols_count;
int no_changed_symbols_count;
} KernelSymbolStatistics;
extern int writeKernelSymbolsFile( FILE *, char *, char *, char *, char * );
extern int addKernelSymboltoHashBase( void *, char *, GHashTable * );
extern int dumpModuleSymbols( char *, GHashTable *, GHashTable * );
extern void destroyHashTable( GHashTable * );
extern GHashTable *createHashTable( void );
extern FILE *getOutputFile( char * );
extern void releaseFile( FILE * );
GHashTable *readEfl( char * );
#define PRINT_ERROR(...) do { fprintf( stderr, "ERROR : " ); fprintf( stderr, __VA_ARGS__ ); } while( 0 )
#define PRINT_INFO_RAW(...) do { fprintf( stdout, __VA_ARGS__ ); } while( 0 )
#define PRINT_INFO(...) do { fprintf( stderr, "INFO : " ); fprintf( stdout, __VA_ARGS__ ); } while( 0 )
#endif
|