Partially make EdkModulePkg pass intel IPF compiler with /W4 /WX switched on.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2313 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
xli24
2007-01-25 06:15:58 +00:00
parent 582510249f
commit 1cc8ee7861
123 changed files with 1256 additions and 851 deletions

View File

@@ -18,72 +18,6 @@ Abstract:
#include "Snp.h"
EFI_STATUS
pxe_start (
SNP_DRIVER *snp
);
EFI_STATUS
pxe_stop (
SNP_DRIVER *snp
);
EFI_STATUS
pxe_init (
SNP_DRIVER *snp,
UINT16 OpFlags
);
EFI_STATUS
pxe_shutdown (
SNP_DRIVER *snp
);
EFI_STATUS
pxe_get_stn_addr (
SNP_DRIVER *snp
);
EFI_STATUS
EFIAPI
InitializeSnpNiiDriver (
IN EFI_HANDLE image_handle,
IN EFI_SYSTEM_TABLE *system_table
);
EFI_STATUS
EFIAPI
SimpleNetworkDriverSupported (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
EFI_STATUS
EFIAPI
SimpleNetworkDriverStart (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
EFI_STATUS
EFIAPI
SimpleNetworkDriverStop (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN UINTN NumberOfChildren,
IN EFI_HANDLE *ChildHandleBuffer
);
//
// Simple Network Protocol Driver Global Variables
//
EFI_DRIVER_BINDING_PROTOCOL mSimpleNetworkDriverBinding = {
SimpleNetworkDriverSupported,
SimpleNetworkDriverStart,
SimpleNetworkDriverStop,
0xa,
NULL,
NULL
};
//
// Module global variables needed to support undi 3.0 interface
//
@@ -91,202 +25,6 @@ EFI_PCI_IO_PROTOCOL *mPciIoFncs;
struct s_v2p *_v2p = NULL; // undi3.0 map_list head
// End Global variables
//
EFI_STATUS
add_v2p (
IN OUT struct s_v2p **v2p,
EFI_PCI_IO_PROTOCOL_OPERATION type,
VOID *vaddr,
UINTN bsize
)
/*++
Routine Description:
This routine maps the given CPU address to a Device address. It creates a
an entry in the map list with the virtual and physical addresses and the
un map cookie.
Arguments:
v2p - pointer to return a map list node pointer.
type - the direction in which the data flows from the given virtual address
device->cpu or cpu->device or both ways.
vaddr - virtual address (or CPU address) to be mapped
bsize - size of the buffer to be mapped.
Returns:
EFI_SUCEESS - routine has completed the mapping
other - error as indicated.
--*/
{
EFI_STATUS Status;
if ((v2p == NULL) || (vaddr == NULL) || (bsize == 0)) {
return EFI_INVALID_PARAMETER;
}
Status = gBS->AllocatePool (
EfiBootServicesData,
sizeof (struct s_v2p),
(VOID **) v2p
);
if (Status != EFI_SUCCESS) {
return Status;
}
Status = mPciIoFncs->Map (
mPciIoFncs,
type,
vaddr,
&bsize,
&(*v2p)->paddr,
&(*v2p)->unmap
);
if (Status != EFI_SUCCESS) {
gBS->FreePool (*v2p);
return Status;
}
(*v2p)->vaddr = vaddr;
(*v2p)->bsize = bsize;
(*v2p)->next = _v2p;
_v2p = *v2p;
return EFI_SUCCESS;
}
EFI_STATUS
find_v2p (
struct s_v2p **v2p,
VOID *vaddr
)
/*++
Routine Description:
This routine searches the linked list of mapped address nodes (for undi3.0
interface) to find the node that corresponds to the given virtual address and
returns a pointer to that node.
Arguments:
v2p - pointer to return a map list node pointer.
vaddr - virtual address (or CPU address) to be searched in the map list
Returns:
EFI_SUCEESS - if a match found!
Other - match not found
--*/
{
struct s_v2p *v;
if (v2p == NULL || vaddr == NULL) {
return EFI_INVALID_PARAMETER;
}
for (v = _v2p; v != NULL; v = v->next) {
if (v->vaddr == vaddr) {
*v2p = v;
return EFI_SUCCESS;
}
}
return EFI_NOT_FOUND;
}
EFI_STATUS
del_v2p (
VOID *vaddr
)
/*++
Routine Description:
This routine unmaps the given virtual address and frees the memory allocated
for the map list node corresponding to that address.
Arguments:
vaddr - virtual address (or CPU address) to be unmapped
Returns:
EFI_SUCEESS - if successfully unmapped
Other - as indicated by the error
--*/
{
struct s_v2p *v;
struct s_v2p *t;
EFI_STATUS Status;
if (vaddr == NULL) {
return EFI_INVALID_PARAMETER;
}
if (_v2p == NULL) {
return EFI_NOT_FOUND;
}
//
// Is our node at the head of the list??
//
if ((v = _v2p)->vaddr == vaddr) {
_v2p = _v2p->next;
Status = mPciIoFncs->Unmap (mPciIoFncs, v->unmap);
gBS->FreePool (v);
#if SNP_DEBUG
if (Status) {
Print (L"Unmap failed with status = %x\n", Status);
}
#endif
return Status;
}
for (; v->next != NULL; v = t) {
if ((t = v->next)->vaddr == vaddr) {
v->next = t->next;
Status = mPciIoFncs->Unmap (mPciIoFncs, t->unmap);
gBS->FreePool (t);
#if SNP_DEBUG
if (Status) {
Print (L"Unmap failed with status = %x\n", Status);
}
#endif
return Status;
}
}
return EFI_NOT_FOUND;
}
#if SNP_DEBUG
VOID
snp_wait_for_key (
VOID
)
/*++
Routine Description:
Wait for a key stroke, used for debugging purposes
Arguments:
none
Returns:
none
--*/
{
EFI_INPUT_KEY key;
Aprint ("\nPress any key to continue\n");
while (gST->ConIn->ReadKeyStroke (gST->ConIn, &key) == EFI_NOT_READY) {
;
}
}
#endif
STATIC
EFI_STATUS
@@ -355,6 +93,7 @@ Returns:
return cksum;
}
STATIC
EFI_STATUS
EFIAPI
SimpleNetworkDriverSupported (
@@ -531,6 +270,7 @@ Done:
return Status;
}
STATIC
EFI_STATUS
EFIAPI
SimpleNetworkDriverStart (
@@ -1190,6 +930,7 @@ NiiError:
return Status;
}
STATIC
EFI_STATUS
EFIAPI
SimpleNetworkDriverStop (
@@ -1313,3 +1054,211 @@ Returns:
return Status;
}
//
// Simple Network Protocol Driver Global Variables
//
EFI_DRIVER_BINDING_PROTOCOL mSimpleNetworkDriverBinding = {
SimpleNetworkDriverSupported,
SimpleNetworkDriverStart,
SimpleNetworkDriverStop,
0xa,
NULL,
NULL
};
EFI_STATUS
add_v2p (
IN OUT struct s_v2p **v2p,
EFI_PCI_IO_PROTOCOL_OPERATION type,
VOID *vaddr,
UINTN bsize
)
/*++
Routine Description:
This routine maps the given CPU address to a Device address. It creates a
an entry in the map list with the virtual and physical addresses and the
un map cookie.
Arguments:
v2p - pointer to return a map list node pointer.
type - the direction in which the data flows from the given virtual address
device->cpu or cpu->device or both ways.
vaddr - virtual address (or CPU address) to be mapped
bsize - size of the buffer to be mapped.
Returns:
EFI_SUCEESS - routine has completed the mapping
other - error as indicated.
--*/
{
EFI_STATUS Status;
if ((v2p == NULL) || (vaddr == NULL) || (bsize == 0)) {
return EFI_INVALID_PARAMETER;
}
Status = gBS->AllocatePool (
EfiBootServicesData,
sizeof (struct s_v2p),
(VOID **) v2p
);
if (Status != EFI_SUCCESS) {
return Status;
}
Status = mPciIoFncs->Map (
mPciIoFncs,
type,
vaddr,
&bsize,
&(*v2p)->paddr,
&(*v2p)->unmap
);
if (Status != EFI_SUCCESS) {
gBS->FreePool (*v2p);
return Status;
}
(*v2p)->vaddr = vaddr;
(*v2p)->bsize = bsize;
(*v2p)->next = _v2p;
_v2p = *v2p;
return EFI_SUCCESS;
}
EFI_STATUS
find_v2p (
struct s_v2p **v2p,
VOID *vaddr
)
/*++
Routine Description:
This routine searches the linked list of mapped address nodes (for undi3.0
interface) to find the node that corresponds to the given virtual address and
returns a pointer to that node.
Arguments:
v2p - pointer to return a map list node pointer.
vaddr - virtual address (or CPU address) to be searched in the map list
Returns:
EFI_SUCEESS - if a match found!
Other - match not found
--*/
{
struct s_v2p *v;
if (v2p == NULL || vaddr == NULL) {
return EFI_INVALID_PARAMETER;
}
for (v = _v2p; v != NULL; v = v->next) {
if (v->vaddr == vaddr) {
*v2p = v;
return EFI_SUCCESS;
}
}
return EFI_NOT_FOUND;
}
EFI_STATUS
del_v2p (
VOID *vaddr
)
/*++
Routine Description:
This routine unmaps the given virtual address and frees the memory allocated
for the map list node corresponding to that address.
Arguments:
vaddr - virtual address (or CPU address) to be unmapped
Returns:
EFI_SUCEESS - if successfully unmapped
Other - as indicated by the error
--*/
{
struct s_v2p *v;
struct s_v2p *t;
EFI_STATUS Status;
if (vaddr == NULL) {
return EFI_INVALID_PARAMETER;
}
if (_v2p == NULL) {
return EFI_NOT_FOUND;
}
//
// Is our node at the head of the list??
//
if ((v = _v2p)->vaddr == vaddr) {
_v2p = _v2p->next;
Status = mPciIoFncs->Unmap (mPciIoFncs, v->unmap);
gBS->FreePool (v);
#if SNP_DEBUG
if (Status) {
Print (L"Unmap failed with status = %x\n", Status);
}
#endif
return Status;
}
for (; v->next != NULL; v = t) {
if ((t = v->next)->vaddr == vaddr) {
v->next = t->next;
Status = mPciIoFncs->Unmap (mPciIoFncs, t->unmap);
gBS->FreePool (t);
#if SNP_DEBUG
if (Status) {
Print (L"Unmap failed with status = %x\n", Status);
}
#endif
return Status;
}
}
return EFI_NOT_FOUND;
}
#if SNP_DEBUG
VOID
snp_wait_for_key (
VOID
)
/*++
Routine Description:
Wait for a key stroke, used for debugging purposes
Arguments:
none
Returns:
none
--*/
{
EFI_INPUT_KEY key;
Aprint ("\nPress any key to continue\n");
while (gST->ConIn->ReadKeyStroke (gST->ConIn, &key) == EFI_NOT_READY) {
;
}
}
#endif