mirror of https://github.com/acidanthera/audk.git
EmulatorPkg: Move Unix/UnixX64.* to EmulatorPkg.*
EmulatorPkg/Unix/UnixX64.dsc => EmulatorPkg/EmulatorPkg.dsc EmulatorPkg/Unix/UnixX64.fdf => EmulatorPkg/EmulatorPkg.fdf Signed-off-by: jljusten git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11925 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
59ad461d9d
commit
e23e488ec6
|
@ -1,56 +1,41 @@
|
|||
## @file
|
||||
#
|
||||
# UEFI/PI Emulation Platform with UEFI HII interface supported.
|
||||
#
|
||||
# The Emulation Platform can be used to debug individual modules, prior to creating
|
||||
# a real platform. This also provides an example for how an DSC is created.
|
||||
# a real platform. This also provides an example for how an DSC is created.
|
||||
#
|
||||
# Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
# Portions copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
##
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Defines Section - statements that will be processed to create a Makefile.
|
||||
#
|
||||
################################################################################
|
||||
[Defines]
|
||||
PLATFORM_NAME = EmuUnix
|
||||
PLATFORM_NAME = EmulatorPkg
|
||||
PLATFORM_GUID = 05FD064D-1073-E844-936C-A0E16317107D
|
||||
PLATFORM_VERSION = 0.3
|
||||
DSC_ SPECIFICATION = 0x00010005
|
||||
!if $(BUILD_32)
|
||||
OUTPUT_DIRECTORY = Build/EmuUnixIa32
|
||||
OUTPUT_DIRECTORY = Build/Emulator32
|
||||
!else
|
||||
OUTPUT_DIRECTORY = Build/EmuUnixX64
|
||||
OUTPUT_DIRECTORY = Build/Emulator
|
||||
!endif
|
||||
|
||||
SUPPORTED_ARCHITECTURES = X64|IA32
|
||||
BUILD_TARGETS = DEBUG|RELEASE
|
||||
SKUID_IDENTIFIER = DEFAULT
|
||||
FLASH_DEFINITION = EmulatorPkg/Unix/UnixX64.fdf
|
||||
FLASH_DEFINITION = EmulatorPkg/EmulatorPkg.fdf
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SKU Identification section - list of all SKU IDs supported by this Platform.
|
||||
#
|
||||
################################################################################
|
||||
[SkuIds]
|
||||
0|DEFAULT
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Library Class section - list of all Library Classes needed by this Platform.
|
||||
#
|
||||
################################################################################
|
||||
[LibraryClasses]
|
||||
#
|
||||
# Entry point
|
||||
|
@ -183,11 +168,6 @@
|
|||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform.
|
||||
#
|
||||
################################################################################
|
||||
[PcdsFeatureFlag]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE
|
||||
|
@ -243,12 +223,6 @@
|
|||
# 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[PcdsDynamicDefault.common.DEFAULT]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0
|
||||
|
@ -260,25 +234,6 @@
|
|||
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|10
|
||||
|
||||
|
||||
###################################################################################################
|
||||
#
|
||||
# Components Section - list of the modules and components that will be processed by compilation
|
||||
# tools and the EDK II tools to generate PE32/PE32+/Coff image files.
|
||||
#
|
||||
# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
|
||||
# into firmware volume images. This section is just a list of modules to compile from
|
||||
# source into UEFI-compliant binaries.
|
||||
# It is the FDF file that contains information on combining binary files into firmware
|
||||
# volume images, whose concept is beyond UEFI and is described in PI specification.
|
||||
# Binary modules do not need to be listed in this section, as they should be
|
||||
# specified in the FDF file. For example: Shell binary (Shell_Full.efi), FAT binary (Fat.efi),
|
||||
# Logo (Logo.bmp), and etc.
|
||||
# There may also be modules listed in this section that are not required in the FDF file,
|
||||
# When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
|
||||
# generated for it, but the binary will not be put into any firmware volume.
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
!ifndef $(SKIP_MAIN_BUILD)
|
||||
[Components.X64]
|
||||
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
|
@ -1,31 +1,18 @@
|
|||
## @file
|
||||
# This is Unix FDF file with UEFI HII features enabled
|
||||
# This is Emulator FDF file with UEFI HII features enabled
|
||||
#
|
||||
# Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
# Portions copyright (c) 2009 - 2011, Apple Inc. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# FD Section
|
||||
# The [FD] Section is made up of the definition statements and a
|
||||
# description of what goes into the Flash Device Image. Each FD section
|
||||
# defines one flash "device" image. A flash device image may be one of
|
||||
# the following: Removable media bootable image (like a boot floppy
|
||||
# image,) an Option ROM image (that would be "flashed" into an add-in
|
||||
# card,) a System "Flash" image (that would be burned into a system's
|
||||
# flash) or an Update ("Capsule") image that will be used to update and
|
||||
# existing system flash.
|
||||
#
|
||||
################################################################################
|
||||
[FD.Fv_Recovery]
|
||||
#
|
||||
# In OS X PEIMs are really XIP, so we need to make this address match the malloced
|
||||
|
@ -38,21 +25,6 @@ ErasePolarity = 1
|
|||
BlockSize = 0x10000
|
||||
NumBlocks = 0x5a
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Following are lists of FD Region layout which correspond to the locations of different
|
||||
# images within the flash device.
|
||||
#
|
||||
# Regions must be defined in ascending order and may not overlap.
|
||||
#
|
||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
||||
# "0x" characters. Like:
|
||||
# Offset|Size
|
||||
# PcdOffsetCName|PcdSizeCName
|
||||
# RegionType <FV, DATA, or FILE>
|
||||
#
|
||||
################################################################################
|
||||
0x00000000|0x00580000
|
||||
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoveryBase|gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoverySize
|
||||
FV = FvRecovery
|
||||
|
@ -113,16 +85,6 @@ DATA = {
|
|||
#NV_FTW_SPARE
|
||||
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# FV Section
|
||||
#
|
||||
# [FV] section is used to define what components or modules are placed within a flash
|
||||
# device file. This section also defines order the components and modules are positioned
|
||||
# within the image. The [FV] section consists of define statements, set statements and
|
||||
# module statements.
|
||||
#
|
||||
################################################################################
|
||||
[FV.FvRecovery]
|
||||
FvAlignment = 16 #FV alignment and FV attributes setting.
|
||||
ERASE_POLARITY = 1
|
||||
|
@ -141,23 +103,13 @@ READ_STATUS = TRUE
|
|||
READ_LOCK_CAP = TRUE
|
||||
READ_LOCK_STATUS = TRUE
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# The INF statements point to EDK component and EDK II module INF files, which will be placed into this FV image.
|
||||
# Parsing tools will scan the INF file to determine the type of component or module.
|
||||
# The component or module type is used to reference the standard rules
|
||||
# defined elsewhere in the FDF file.
|
||||
#
|
||||
# The format for INF statements is:
|
||||
# INF $(PathAndInfFileName)
|
||||
#
|
||||
################################################################################
|
||||
##
|
||||
# PEI Phase modules
|
||||
##
|
||||
##
|
||||
#
|
||||
|
||||
#
|
||||
# PEI Apriori file example, more PEIM module added later.
|
||||
##
|
||||
#
|
||||
APRIORI PEI {
|
||||
INF MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf
|
||||
INF MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
|
||||
|
@ -180,9 +132,9 @@ INF EmulatorPkg/ThunkPpiToProtocolPei/ThunkPpiToProtocolPei.inf
|
|||
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
||||
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
||||
|
||||
##
|
||||
#
|
||||
# DXE Phase modules
|
||||
##
|
||||
#
|
||||
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
||||
INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
||||
|
@ -272,33 +224,6 @@ FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
|
|||
}
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Rules are use with the [FV] section's module INF type to define
|
||||
# how an FFS file is created for a given INF file. The following Rule are the default
|
||||
# rules for the different module type. User can add the customized rules to define the
|
||||
# content of the FFS file.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
############################################################################
|
||||
# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section #
|
||||
############################################################################
|
||||
#
|
||||
#[Rule.Common.DXE_DRIVER]
|
||||
# FILE DRIVER = $(NAMED_GUID) {
|
||||
# DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
||||
# COMPRESS PI_STD {
|
||||
# GUIDED {
|
||||
# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
||||
# UI STRING="$(MODULE_NAME)" Optional
|
||||
# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
#
|
||||
############################################################################
|
||||
[Rule.Common.SEC]
|
||||
FILE SEC = $(NAMED_GUID) {
|
||||
PE32 PE32 Align=32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
@ -71,7 +71,7 @@ then
|
|||
TARGET_TOOLS=$UNIXPKG_TOOLS
|
||||
fi
|
||||
|
||||
BUILD_ROOT_ARCH=$WORKSPACE/Build/EmuUnixIa32/DEBUG_"$UNIXPKG_TOOLS"/IA32
|
||||
BUILD_ROOT_ARCH=$WORKSPACE/Build/Emulator32/DEBUG_"$UNIXPKG_TOOLS"/IA32
|
||||
|
||||
if [[ ! -f `which build` || ! -f `which GenFv` ]];
|
||||
then
|
||||
|
@ -108,15 +108,15 @@ do
|
|||
|
||||
if [[ $arg == cleanall ]]; then
|
||||
make -C $WORKSPACE/BaseTools clean
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a IA32 -t $TARGET_TOOLS -D SEC_ONLY -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a IA32 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a IA32 -t $TARGET_TOOLS -D SEC_ONLY -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a IA32 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
build -p $WORKSPACE/ShellPkg/ShellPkg.dsc -a IA32 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
exit $?
|
||||
fi
|
||||
|
||||
if [[ $arg == clean ]]; then
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a IA32 -t $TARGET_TOOLS -D SEC_ONLY -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a IA32 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a IA32 -t $TARGET_TOOLS -D SEC_ONLY -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a IA32 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
exit $?
|
||||
fi
|
||||
|
||||
|
@ -127,10 +127,10 @@ done
|
|||
# Build the edk2 UnixPkg
|
||||
#
|
||||
if [[ $TARGET_TOOLS == $UNIXPKG_TOOLS ]]; then
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a IA32 -t $UNIXPKG_TOOLS -D BUILD_32 -D UNIX_SEC_BUILD $NETWORK_SUPPORT $BUILD_NEW_SHELL $BUILD_FAT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a IA32 -t $UNIXPKG_TOOLS -D BUILD_32 -D UNIX_SEC_BUILD $NETWORK_SUPPORT $BUILD_NEW_SHELL $BUILD_FAT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||
else
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a IA32 -t $TARGET_TOOLS -D BUILD_32 -D UNIX_SEC_BUILD -D SKIP_MAIN_BUILD -n 3 $1 $2 $3 $4 $5 $6 $7 $8 modules
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a IA32 -t $UNIXPKG_TOOLS -D BUILD_32 $NETWORK_SUPPORT $BUILD_NEW_SHELL $BUILD_FAT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a IA32 -t $TARGET_TOOLS -D BUILD_32 -D UNIX_SEC_BUILD -D SKIP_MAIN_BUILD -n 3 $1 $2 $3 $4 $5 $6 $7 $8 modules
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a IA32 -t $UNIXPKG_TOOLS -D BUILD_32 $NETWORK_SUPPORT $BUILD_NEW_SHELL $BUILD_FAT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||
cp $WORKSPACE/Build/EmuUnixIa32/DEBUG_"$TARGET_TOOLS"/IA32/Host $WORKSPACE/Build/EmuUnixIa32/DEBUG_"$UNIXPKG_TOOLS"/IA32
|
||||
fi
|
||||
exit $?
|
||||
|
|
|
@ -72,7 +72,7 @@ then
|
|||
TARGET_TOOLS=$UNIXPKG_TOOLS
|
||||
fi
|
||||
|
||||
BUILD_ROOT_ARCH=$WORKSPACE/Build/EmuUnixX64/DEBUG_"$UNIXPKG_TOOLS"/X64
|
||||
BUILD_ROOT_ARCH=$WORKSPACE/Build/Emulator/DEBUG_"$UNIXPKG_TOOLS"/X64
|
||||
|
||||
if [[ ! -f `which build` || ! -f `which GenFv` ]];
|
||||
then
|
||||
|
@ -109,15 +109,15 @@ do
|
|||
|
||||
if [[ $arg == cleanall ]]; then
|
||||
make -C $WORKSPACE/BaseTools clean
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a X64 -t $TARGET_TOOLS -D SEC_ONLY -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a X64 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -t $TARGET_TOOLS -D SEC_ONLY -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
build -p $WORKSPACE/ShellPkg/ShellPkg.dsc -a X64 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
exit $?
|
||||
fi
|
||||
|
||||
if [[ $arg == clean ]]; then
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a X64 -t $TARGET_TOOLS -D SEC_ONLY -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a X64 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -t $TARGET_TOOLS -D SEC_ONLY -n 3 clean
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -t $UNIXPKG_TOOLS -n 3 clean
|
||||
exit $?
|
||||
fi
|
||||
|
||||
|
@ -128,10 +128,10 @@ done
|
|||
# Build the edk2 UnixPkg
|
||||
#
|
||||
if [[ $TARGET_TOOLS == $UNIXPKG_TOOLS ]]; then
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a X64 -t $UNIXPKG_TOOLS -D UNIX_SEC_BUILD $NETWORK_SUPPORT $BUILD_NEW_SHELL $BUILD_FAT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -t $UNIXPKG_TOOLS -D UNIX_SEC_BUILD $NETWORK_SUPPORT $BUILD_NEW_SHELL $BUILD_FAT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||
else
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a X64 -t $TARGET_TOOLS -D UNIX_SEC_BUILD -D SKIP_MAIN_BUILD -n 3 $1 $2 $3 $4 $5 $6 $7 $8 modules
|
||||
build -p $WORKSPACE/EmulatorPkg/Unix/UnixX64.dsc -a X64 -t $UNIXPKG_TOOLS $NETWORK_SUPPORT $BUILD_NEW_SHELL $BUILD_FAT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -t $TARGET_TOOLS -D UNIX_SEC_BUILD -D SKIP_MAIN_BUILD -n 3 $1 $2 $3 $4 $5 $6 $7 $8 modules
|
||||
build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -t $UNIXPKG_TOOLS $NETWORK_SUPPORT $BUILD_NEW_SHELL $BUILD_FAT -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||
cp $WORKSPACE/Build/EmuUnixX64/DEBUG_"$TARGET_TOOLS"/X64/Host $WORKSPACE/Build/EmuUnixX64/DEBUG_"$UNIXPKG_TOOLS"/X64
|
||||
fi
|
||||
exit $?
|
||||
|
|
Loading…
Reference in New Issue