4
die "Usage: $0 file.sym\n" unless (-r $ARGV[0]);
7
($KVERSION,$KPATCHLEVEL,$KSUBLEVEL)=split /\./, $KERNEL;
10
$BASE=basename($SRC,".sym");
20
if ($KPATCHLEVEL == 1) {
21
$XSYM1="EXPORT_SYMBOL(";
30
die "$SRC = $DEST: Error (1)\n" if ($SRC eq $DEST);
32
print "generating $DEST from $SRC... ";
34
open (SRC, "<$SRC") or die "Cannot open >> $SRC <<\n";
37
open (DEST, ">$DEST") or die "Cannot write to >> $DEST <<\n";
40
print DEST qq( * File generated by script export-symbols from file $SRC...\n);
41
print DEST qq( * Don\'t edit!!!\n);
44
print DEST qq(\#define EXPORT_SYMTAB\n);
45
print DEST qq(\#include "driver.h"\n);
47
foreach $line (@SRCtext) {
48
if ( substr($line,0,1) eq "+" ) {
49
print DEST substr($line , 2);
53
print DEST qq(\#ifndef LINUX_2_1\n);
54
print DEST qq(struct symbol_table snd_symbol_table_$BASE1 = \{\n);
55
print DEST qq(\#include <linux/symtab_begin.h>\n);
56
print DEST qq(\#endif\n);
58
foreach $line (@SRCtext) {
60
print DEST " /* ", substr($line,2), "*/\n"
61
if ( substr($line,0,1) eq "\#" );
62
print DEST $XSYM1, $line, $XSYM2
63
if ( substr($line,0,1) ne "\#" && substr($line,0,1) ne "+" );
66
print DEST qq(\#ifndef LINUX_2_1\n);
67
print DEST qq(\#include <linux/symtab_end.h>\n);
69
print DEST qq(\#endif\n);