xref: /aosp_15_r20/external/intel-media-driver/Tools/MediaDriverTools/GenKrnBin/linkfile.h (revision ba62d9d3abf0e404f2022b4cd7a85e107f48596f)
1*ba62d9d3SAndroid Build Coastguard Worker #ifndef __LINKFILE_H__
2*ba62d9d3SAndroid Build Coastguard Worker #define __LINKFILE_H__
3*ba62d9d3SAndroid Build Coastguard Worker 
4*ba62d9d3SAndroid Build Coastguard Worker #include <list>
5*ba62d9d3SAndroid Build Coastguard Worker 
6*ba62d9d3SAndroid Build Coastguard Worker using namespace std;
7*ba62d9d3SAndroid Build Coastguard Worker 
8*ba62d9d3SAndroid Build Coastguard Worker #define MAX_STRING_SIZE  4096
9*ba62d9d3SAndroid Build Coastguard Worker 
10*ba62d9d3SAndroid Build Coastguard Worker #pragma pack(4)
11*ba62d9d3SAndroid Build Coastguard Worker #define LINKFILE_VERSION 0x00010000
12*ba62d9d3SAndroid Build Coastguard Worker typedef struct tagLinkFileHeader
13*ba62d9d3SAndroid Build Coastguard Worker {
14*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    dwVersion;
15*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    dwSize;
16*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    dwImports;
17*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    dwExports;
18*ba62d9d3SAndroid Build Coastguard Worker } LinkFileHeader;
19*ba62d9d3SAndroid Build Coastguard Worker 
20*ba62d9d3SAndroid Build Coastguard Worker typedef struct tagLinkData
21*ba62d9d3SAndroid Build Coastguard Worker {
22*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    dwKernelID    : 16;     // Kernel ID
23*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    dwLabelID     : 16;     // Label ID
24*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    bExport       : 1;      // 0 - import; 1 - export;
25*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    bResolved     : 1;      // MBZ
26*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    dwOffset      : 20;     // Offset in DWORDs
27*ba62d9d3SAndroid Build Coastguard Worker     unsigned int    bInline       : 1;      // 0 - none; 1 - inline;
28*ba62d9d3SAndroid Build Coastguard Worker     unsigned int                  : 9;      // MBZ
29*ba62d9d3SAndroid Build Coastguard Worker } LinkData;
30*ba62d9d3SAndroid Build Coastguard Worker #pragma pack()
31*ba62d9d3SAndroid Build Coastguard Worker 
32*ba62d9d3SAndroid Build Coastguard Worker void CreateLinkFile(char *pDirectoryName, list <string> &kernels);
33*ba62d9d3SAndroid Build Coastguard Worker void DeleteLinkFile(char *pDirectoryName);
34*ba62d9d3SAndroid Build Coastguard Worker 
35*ba62d9d3SAndroid Build Coastguard Worker #endif // __LINKFILE_H__
36