ARM Packages: Fixed line endings
This large code change only modifies the line endings to be CRLF to be compliant with the EDK2 coding convention document. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14088 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -1,41 +1,41 @@
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Copyright (c) 2008 - 2010, 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
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
.text
|
||||
.align 2
|
||||
|
||||
.globl ASM_PFX(GccSemihostCall)
|
||||
INTERWORK_FUNC(GccSemihostCall)
|
||||
|
||||
/*
|
||||
Semihosting operation request mechanism
|
||||
|
||||
SVC 0x123456 in ARM state (for all architectures)
|
||||
SVC 0xAB in Thumb state (excluding ARMv7-M)
|
||||
BKPT 0xAB for ARMv7-M (Thumb-2 only)
|
||||
|
||||
R0 - operation type
|
||||
R1 - block containing all other parametes
|
||||
|
||||
lr - must be saved as svc instruction will cause an svc exception and write
|
||||
the svc lr register. That happens to be the one we are using, so we must
|
||||
save it or we will not be able to return.
|
||||
*/
|
||||
ASM_PFX(GccSemihostCall):
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Copyright (c) 2008 - 2010, 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
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
.text
|
||||
.align 2
|
||||
|
||||
.globl ASM_PFX(GccSemihostCall)
|
||||
INTERWORK_FUNC(GccSemihostCall)
|
||||
|
||||
/*
|
||||
Semihosting operation request mechanism
|
||||
|
||||
SVC 0x123456 in ARM state (for all architectures)
|
||||
SVC 0xAB in Thumb state (excluding ARMv7-M)
|
||||
BKPT 0xAB for ARMv7-M (Thumb-2 only)
|
||||
|
||||
R0 - operation type
|
||||
R1 - block containing all other parametes
|
||||
|
||||
lr - must be saved as svc instruction will cause an svc exception and write
|
||||
the svc lr register. That happens to be the one we are using, so we must
|
||||
save it or we will not be able to return.
|
||||
*/
|
||||
ASM_PFX(GccSemihostCall):
|
||||
stmfd sp!, {lr}
|
||||
svc #0x123456
|
||||
svc #0x123456
|
||||
ldmfd sp!, {lr}
|
||||
bx lr
|
||||
|
||||
|
||||
bx lr
|
||||
|
||||
|
||||
|
@@ -1,184 +1,184 @@
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2008 - 2009, 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
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __SEMIHOST_PRIVATE_H__
|
||||
#define __SEMIHOST_PRIVATE_H__
|
||||
|
||||
typedef struct {
|
||||
CHAR8 *FileName;
|
||||
UINT32 Mode;
|
||||
UINT32 NameLength;
|
||||
} SEMIHOST_FILE_OPEN_BLOCK;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Handle;
|
||||
VOID *Buffer;
|
||||
UINT32 Length;
|
||||
} SEMIHOST_FILE_READ_WRITE_BLOCK;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Handle;
|
||||
UINT32 Location;
|
||||
} SEMIHOST_FILE_SEEK_BLOCK;
|
||||
|
||||
typedef struct {
|
||||
CHAR8 *FileName;
|
||||
UINT32 NameLength;
|
||||
} SEMIHOST_FILE_REMOVE_BLOCK;
|
||||
|
||||
typedef struct {
|
||||
CHAR8 *CommandLine;
|
||||
UINT32 CommandLength;
|
||||
} SEMIHOST_SYSTEM_BLOCK;
|
||||
|
||||
#if defined(__CC_ARM)
|
||||
|
||||
#if defined(__thumb__)
|
||||
#define SWI 0xAB
|
||||
#else
|
||||
#define SWI 0x123456
|
||||
#endif
|
||||
|
||||
#define SEMIHOST_SUPPORTED TRUE
|
||||
|
||||
__swi(SWI)
|
||||
INT32
|
||||
_Semihost_SYS_OPEN(
|
||||
IN UINTN SWI_0x01,
|
||||
IN SEMIHOST_FILE_OPEN_BLOCK *OpenBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
INT32
|
||||
_Semihost_SYS_CLOSE(
|
||||
IN UINTN SWI_0x02,
|
||||
IN UINT32 *Handle
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
VOID
|
||||
_Semihost_SYS_WRITEC(
|
||||
IN UINTN SWI_0x03,
|
||||
IN CHAR8 *Character
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
VOID
|
||||
_Semihost_SYS_WRITE0(
|
||||
IN UINTN SWI_0x04,
|
||||
IN CHAR8 *String
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
UINT32
|
||||
_Semihost_SYS_WRITE(
|
||||
IN UINTN SWI_0x05,
|
||||
IN OUT SEMIHOST_FILE_READ_WRITE_BLOCK *WriteBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
UINT32
|
||||
_Semihost_SYS_READ(
|
||||
IN UINTN SWI_0x06,
|
||||
IN OUT SEMIHOST_FILE_READ_WRITE_BLOCK *ReadBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
CHAR8
|
||||
_Semihost_SYS_READC(
|
||||
IN UINTN SWI_0x07,
|
||||
IN UINTN Zero
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
INT32
|
||||
_Semihost_SYS_SEEK(
|
||||
IN UINTN SWI_0x0A,
|
||||
IN SEMIHOST_FILE_SEEK_BLOCK *SeekBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
INT32
|
||||
_Semihost_SYS_FLEN(
|
||||
IN UINTN SWI_0x0C,
|
||||
IN UINT32 *Handle
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
UINT32
|
||||
_Semihost_SYS_REMOVE(
|
||||
IN UINTN SWI_0x0E,
|
||||
IN SEMIHOST_FILE_REMOVE_BLOCK *RemoveBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
UINT32
|
||||
_Semihost_SYS_SYSTEM(
|
||||
IN UINTN SWI_0x12,
|
||||
IN SEMIHOST_SYSTEM_BLOCK *SystemBlock
|
||||
);
|
||||
|
||||
#define Semihost_SYS_OPEN(OpenBlock) _Semihost_SYS_OPEN(0x01, OpenBlock)
|
||||
#define Semihost_SYS_CLOSE(Handle) _Semihost_SYS_CLOSE(0x02, Handle)
|
||||
#define Semihost_SYS_WRITE0(String) _Semihost_SYS_WRITE0(0x04, String)
|
||||
#define Semihost_SYS_WRITEC(Character) _Semihost_SYS_WRITEC(0x03, Character)
|
||||
#define Semihost_SYS_WRITE(WriteBlock) _Semihost_SYS_WRITE(0x05, WriteBlock)
|
||||
#define Semihost_SYS_READ(ReadBlock) _Semihost_SYS_READ(0x06, ReadBlock)
|
||||
#define Semihost_SYS_READC() _Semihost_SYS_READC(0x07, 0)
|
||||
#define Semihost_SYS_SEEK(SeekBlock) _Semihost_SYS_SEEK(0x0A, SeekBlock)
|
||||
#define Semihost_SYS_FLEN(Handle) _Semihost_SYS_FLEN(0x0C, Handle)
|
||||
#define Semihost_SYS_REMOVE(RemoveBlock) _Semihost_SYS_REMOVE(0x0E, RemoveBlock)
|
||||
#define Semihost_SYS_SYSTEM(SystemBlock) _Semihost_SYS_SYSTEM(0x12, SystemBlock)
|
||||
|
||||
#elif defined(__GNUC__) // __CC_ARM
|
||||
|
||||
#define SEMIHOST_SUPPORTED TRUE
|
||||
|
||||
UINT32
|
||||
GccSemihostCall (
|
||||
IN UINT32 Operation,
|
||||
IN UINTN SystemBlockAddress
|
||||
); // __attribute__ ((interrupt ("SVC")));
|
||||
|
||||
#define Semihost_SYS_OPEN(OpenBlock) GccSemihostCall(0x01, (UINTN)(OpenBlock))
|
||||
#define Semihost_SYS_CLOSE(Handle) GccSemihostCall(0x02, (UINTN)(Handle))
|
||||
#define Semihost_SYS_WRITE0(String) GccSemihostCall(0x04, (UINTN)(String))
|
||||
#define Semihost_SYS_WRITEC(Character) GccSemihostCall(0x03, (UINTN)(Character))
|
||||
#define Semihost_SYS_WRITE(WriteBlock) GccSemihostCall(0x05, (UINTN)(WriteBlock))
|
||||
#define Semihost_SYS_READ(ReadBlock) GccSemihostCall(0x06, (UINTN)(ReadBlock))
|
||||
#define Semihost_SYS_READC() GccSemihostCall(0x07, (UINTN)(0))
|
||||
#define Semihost_SYS_SEEK(SeekBlock) GccSemihostCall(0x0A, (UINTN)(SeekBlock))
|
||||
#define Semihost_SYS_FLEN(Handle) GccSemihostCall(0x0C, (UINTN)(Handle))
|
||||
#define Semihost_SYS_REMOVE(RemoveBlock) GccSemihostCall(0x0E, (UINTN)(RemoveBlock))
|
||||
#define Semihost_SYS_SYSTEM(SystemBlock) GccSemihostCall(0x12, (UINTN)(SystemBlock))
|
||||
|
||||
#else // __CC_ARM
|
||||
|
||||
#define SEMIHOST_SUPPORTED FALSE
|
||||
|
||||
#define Semihost_SYS_OPEN(OpenBlock) (-1)
|
||||
#define Semihost_SYS_CLOSE(Handle) (-1)
|
||||
#define Semihost_SYS_WRITE0(String)
|
||||
#define Semihost_SYS_WRITEC(Character)
|
||||
#define Semihost_SYS_WRITE(WriteBlock) (0)
|
||||
#define Semihost_SYS_READ(ReadBlock) ((ReadBlock)->Length)
|
||||
#define Semihost_SYS_READC() ('x')
|
||||
#define Semihost_SYS_SEEK(SeekBlock) (-1)
|
||||
#define Semihost_SYS_FLEN(Handle) (-1)
|
||||
#define Semihost_SYS_REMOVE(RemoveBlock) (-1)
|
||||
#define Semihost_SYS_SYSTEM(SystemBlock) (-1)
|
||||
|
||||
#endif // __CC_ARM
|
||||
|
||||
#endif //__SEMIHOST_PRIVATE_H__
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2008 - 2009, 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
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __SEMIHOST_PRIVATE_H__
|
||||
#define __SEMIHOST_PRIVATE_H__
|
||||
|
||||
typedef struct {
|
||||
CHAR8 *FileName;
|
||||
UINT32 Mode;
|
||||
UINT32 NameLength;
|
||||
} SEMIHOST_FILE_OPEN_BLOCK;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Handle;
|
||||
VOID *Buffer;
|
||||
UINT32 Length;
|
||||
} SEMIHOST_FILE_READ_WRITE_BLOCK;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Handle;
|
||||
UINT32 Location;
|
||||
} SEMIHOST_FILE_SEEK_BLOCK;
|
||||
|
||||
typedef struct {
|
||||
CHAR8 *FileName;
|
||||
UINT32 NameLength;
|
||||
} SEMIHOST_FILE_REMOVE_BLOCK;
|
||||
|
||||
typedef struct {
|
||||
CHAR8 *CommandLine;
|
||||
UINT32 CommandLength;
|
||||
} SEMIHOST_SYSTEM_BLOCK;
|
||||
|
||||
#if defined(__CC_ARM)
|
||||
|
||||
#if defined(__thumb__)
|
||||
#define SWI 0xAB
|
||||
#else
|
||||
#define SWI 0x123456
|
||||
#endif
|
||||
|
||||
#define SEMIHOST_SUPPORTED TRUE
|
||||
|
||||
__swi(SWI)
|
||||
INT32
|
||||
_Semihost_SYS_OPEN(
|
||||
IN UINTN SWI_0x01,
|
||||
IN SEMIHOST_FILE_OPEN_BLOCK *OpenBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
INT32
|
||||
_Semihost_SYS_CLOSE(
|
||||
IN UINTN SWI_0x02,
|
||||
IN UINT32 *Handle
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
VOID
|
||||
_Semihost_SYS_WRITEC(
|
||||
IN UINTN SWI_0x03,
|
||||
IN CHAR8 *Character
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
VOID
|
||||
_Semihost_SYS_WRITE0(
|
||||
IN UINTN SWI_0x04,
|
||||
IN CHAR8 *String
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
UINT32
|
||||
_Semihost_SYS_WRITE(
|
||||
IN UINTN SWI_0x05,
|
||||
IN OUT SEMIHOST_FILE_READ_WRITE_BLOCK *WriteBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
UINT32
|
||||
_Semihost_SYS_READ(
|
||||
IN UINTN SWI_0x06,
|
||||
IN OUT SEMIHOST_FILE_READ_WRITE_BLOCK *ReadBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
CHAR8
|
||||
_Semihost_SYS_READC(
|
||||
IN UINTN SWI_0x07,
|
||||
IN UINTN Zero
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
INT32
|
||||
_Semihost_SYS_SEEK(
|
||||
IN UINTN SWI_0x0A,
|
||||
IN SEMIHOST_FILE_SEEK_BLOCK *SeekBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
INT32
|
||||
_Semihost_SYS_FLEN(
|
||||
IN UINTN SWI_0x0C,
|
||||
IN UINT32 *Handle
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
UINT32
|
||||
_Semihost_SYS_REMOVE(
|
||||
IN UINTN SWI_0x0E,
|
||||
IN SEMIHOST_FILE_REMOVE_BLOCK *RemoveBlock
|
||||
);
|
||||
|
||||
__swi(SWI)
|
||||
UINT32
|
||||
_Semihost_SYS_SYSTEM(
|
||||
IN UINTN SWI_0x12,
|
||||
IN SEMIHOST_SYSTEM_BLOCK *SystemBlock
|
||||
);
|
||||
|
||||
#define Semihost_SYS_OPEN(OpenBlock) _Semihost_SYS_OPEN(0x01, OpenBlock)
|
||||
#define Semihost_SYS_CLOSE(Handle) _Semihost_SYS_CLOSE(0x02, Handle)
|
||||
#define Semihost_SYS_WRITE0(String) _Semihost_SYS_WRITE0(0x04, String)
|
||||
#define Semihost_SYS_WRITEC(Character) _Semihost_SYS_WRITEC(0x03, Character)
|
||||
#define Semihost_SYS_WRITE(WriteBlock) _Semihost_SYS_WRITE(0x05, WriteBlock)
|
||||
#define Semihost_SYS_READ(ReadBlock) _Semihost_SYS_READ(0x06, ReadBlock)
|
||||
#define Semihost_SYS_READC() _Semihost_SYS_READC(0x07, 0)
|
||||
#define Semihost_SYS_SEEK(SeekBlock) _Semihost_SYS_SEEK(0x0A, SeekBlock)
|
||||
#define Semihost_SYS_FLEN(Handle) _Semihost_SYS_FLEN(0x0C, Handle)
|
||||
#define Semihost_SYS_REMOVE(RemoveBlock) _Semihost_SYS_REMOVE(0x0E, RemoveBlock)
|
||||
#define Semihost_SYS_SYSTEM(SystemBlock) _Semihost_SYS_SYSTEM(0x12, SystemBlock)
|
||||
|
||||
#elif defined(__GNUC__) // __CC_ARM
|
||||
|
||||
#define SEMIHOST_SUPPORTED TRUE
|
||||
|
||||
UINT32
|
||||
GccSemihostCall (
|
||||
IN UINT32 Operation,
|
||||
IN UINTN SystemBlockAddress
|
||||
); // __attribute__ ((interrupt ("SVC")));
|
||||
|
||||
#define Semihost_SYS_OPEN(OpenBlock) GccSemihostCall(0x01, (UINTN)(OpenBlock))
|
||||
#define Semihost_SYS_CLOSE(Handle) GccSemihostCall(0x02, (UINTN)(Handle))
|
||||
#define Semihost_SYS_WRITE0(String) GccSemihostCall(0x04, (UINTN)(String))
|
||||
#define Semihost_SYS_WRITEC(Character) GccSemihostCall(0x03, (UINTN)(Character))
|
||||
#define Semihost_SYS_WRITE(WriteBlock) GccSemihostCall(0x05, (UINTN)(WriteBlock))
|
||||
#define Semihost_SYS_READ(ReadBlock) GccSemihostCall(0x06, (UINTN)(ReadBlock))
|
||||
#define Semihost_SYS_READC() GccSemihostCall(0x07, (UINTN)(0))
|
||||
#define Semihost_SYS_SEEK(SeekBlock) GccSemihostCall(0x0A, (UINTN)(SeekBlock))
|
||||
#define Semihost_SYS_FLEN(Handle) GccSemihostCall(0x0C, (UINTN)(Handle))
|
||||
#define Semihost_SYS_REMOVE(RemoveBlock) GccSemihostCall(0x0E, (UINTN)(RemoveBlock))
|
||||
#define Semihost_SYS_SYSTEM(SystemBlock) GccSemihostCall(0x12, (UINTN)(SystemBlock))
|
||||
|
||||
#else // __CC_ARM
|
||||
|
||||
#define SEMIHOST_SUPPORTED FALSE
|
||||
|
||||
#define Semihost_SYS_OPEN(OpenBlock) (-1)
|
||||
#define Semihost_SYS_CLOSE(Handle) (-1)
|
||||
#define Semihost_SYS_WRITE0(String)
|
||||
#define Semihost_SYS_WRITEC(Character)
|
||||
#define Semihost_SYS_WRITE(WriteBlock) (0)
|
||||
#define Semihost_SYS_READ(ReadBlock) ((ReadBlock)->Length)
|
||||
#define Semihost_SYS_READC() ('x')
|
||||
#define Semihost_SYS_SEEK(SeekBlock) (-1)
|
||||
#define Semihost_SYS_FLEN(Handle) (-1)
|
||||
#define Semihost_SYS_REMOVE(RemoveBlock) (-1)
|
||||
#define Semihost_SYS_SYSTEM(SystemBlock) (-1)
|
||||
|
||||
#endif // __CC_ARM
|
||||
|
||||
#endif //__SEMIHOST_PRIVATE_H__
|
||||
|
@@ -32,11 +32,11 @@
|
||||
Arm/SemihostLib.c
|
||||
|
||||
|
||||
[Packages]
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
ArmPkg/ArmPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
[LibraryClasses]
|
||||
BaseLib
|
||||
|
||||
[Protocols]
|
||||
@@ -44,4 +44,4 @@
|
||||
[Guids]
|
||||
|
||||
[Pcd]
|
||||
|
||||
|
Reference in New Issue
Block a user