⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apply_efi_prefix.pl

📁 网卡 BOOT ROM 的 64 住源程序。模块有:核心代码、H文件、网卡驱动程序、头代码文件。
💻 PL
字号:
#!/usr/bin/perl -w## Program to apply an efi header to an ia64 etherboot file.## GPL Eric Biederman 2002#use strict;use bytes;main(@ARGV);sub usage{	my ($err) = @_;	print STDERR $err , "\n";	die "Usage $0 prrefix file bss_size\n";}sub main{	my ($prefix_name, $suffix_name, $bss_size) = @_;	usage("No prefix") unless (defined($prefix_name));	usage("No suffix") unless (defined($suffix_name));	usage("No bss size") unless (defined($bss_size));	open(PREFIX, "<$prefix_name") or die "Cannot open $prefix_name";	open(SUFFIX, "<$suffix_name") or die "Cannot open $suffix_name";	$/ = undef;	my $prefix = <PREFIX>; close(PREFIX);	my $suffix = <SUFFIX>; close(SUFFIX);	# Payload sizes.	my $payload_size = length($suffix);	my $payload_bss  = $bss_size;	# Update the image size	my $hdr_off          = unpack("V",substr($prefix, 0x3c, 4));	my $image_size_off   = 0x050 + $hdr_off;	my $img_mem_size_off = 0x0c0 + $hdr_off;	my $img_size_off    =  0x0c8 + $hdr_off;	my $image_size   = unpack("V", substr($prefix, $image_size_off, 4));	my $img_mem_size = unpack("V", substr($prefix, $img_mem_size_off, 4));	my $img_size     = unpack("V", substr($prefix, $img_size_off, 4));	$image_size   += $payload_size + $payload_bss;	$img_mem_size += $payload_size + $payload_bss;	$img_size     += $payload_size;	substr($prefix, $image_size_off, 4)   = pack("V", $image_size);	substr($prefix, $img_mem_size_off, 4) = pack("V", $img_mem_size);	substr($prefix, $img_size_off, 4)     = pack("V", $img_size);	#print(STDERR "image_size:   $image_size\n");	#print(STDERR "img_mem_size: $img_mem_size\n");	#print(STDERR "img_size:     $img_size\n");	print $prefix;	print $suffix;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -