StdLib: Change the last argument of the ioctl helper functions to va_list* from void*.

Functions which call these helper functions always pass the last parameter as a va_list argument.
Add a conditional block around a MSFT-only pragma so that stringlist.c will compile with GCC.
Comment-out the Socket Library components within StdLib.dsc.  These components are still in development.

Signed-off-by: darylm503
Reviewed by:   geekboy15A

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12369 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
darylm503 2011-09-16 23:16:56 +00:00
parent c614ca505d
commit 76beedc09c
6 changed files with 68 additions and 63 deletions

View File

@ -26,6 +26,7 @@
#include <errno.h> #include <errno.h>
#include <wctype.h> #include <wctype.h>
#include <wchar.h> #include <wchar.h>
#include <stdarg.h>
#include <sys/fcntl.h> #include <sys/fcntl.h>
#include <kfile.h> #include <kfile.h>
#include <Device/Device.h> #include <Device/Device.h>
@ -377,7 +378,7 @@ EFIAPI
da_ConIoctl( da_ConIoctl(
struct __filedes *filp, struct __filedes *filp,
ULONGN cmd, ULONGN cmd,
void *argp va_list argp
) )
{ {
return -EPERM; return -EPERM;

View File

@ -26,6 +26,7 @@
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdarg.h>
#include <wctype.h> #include <wctype.h>
#include <wchar.h> #include <wchar.h>
#include <sys/fcntl.h> #include <sys/fcntl.h>
@ -319,7 +320,7 @@ EFIAPI
da_ShellIoctl( da_ShellIoctl(
struct __filedes *filp, struct __filedes *filp,
ULONGN cmd, ULONGN cmd,
void *argp ///< May be a pointer or a value va_list argp
) )
{ {
return -EPERM; return -EPERM;

View File

@ -17,6 +17,7 @@
#include <LibConfig.h> #include <LibConfig.h>
#include <errno.h> #include <errno.h>
#include <stdarg.h>
#include <sys/poll.h> #include <sys/poll.h>
#include <kfile.h> #include <kfile.h>
#include <Device/Device.h> #include <Device/Device.h>
@ -45,7 +46,7 @@ int EFIAPI fnullop_flush (struct __filedes *filp)
int EFIAPI fbadop_stat (struct __filedes *filp, struct stat *StatBuf, void *Buf) int EFIAPI fbadop_stat (struct __filedes *filp, struct stat *StatBuf, void *Buf)
{ return -EPERM; } { return -EPERM; }
int EFIAPI fbadop_ioctl (struct __filedes *filp, ULONGN Cmd, void *argp) int EFIAPI fbadop_ioctl (struct __filedes *filp, ULONGN Cmd, va_list argp)
{ return -EPERM; } { return -EPERM; }
int EFIAPI fbadop_delete (struct __filedes *filp) int EFIAPI fbadop_delete (struct __filedes *filp)

View File

@ -1,4 +1,4 @@
/* $NetBSD: stringlist.c,v 1.13 2008/04/28 20:22:59 martin Exp $ /* $NetBSD: stringlist.c,v 1.13 2008/04/28 20:22:59 martin Exp $
* Copyright (c) 1994, 1999 The NetBSD Foundation, Inc. * Copyright (c) 1994, 1999 The NetBSD Foundation, Inc.
* All rights reserved. * All rights reserved.
@ -27,8 +27,9 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
#if defined(_MSC_VER) /* Handle Microsoft VC++ compiler specifics. */
#pragma warning ( disable : 4018 ) #pragma warning ( disable : 4018 )
#endif
#include <sys/cdefs.h> #include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint) #if defined(LIBC_SCCS) && !defined(lint)
@ -49,7 +50,7 @@ __weak_alias(sl_init,_sl_init)
__weak_alias(sl_delete,_sl_delete) __weak_alias(sl_delete,_sl_delete)
#endif #endif
#define _SL_CHUNKSIZE 20 #define _SL_CHUNKSIZE 20
/* /*
* sl_init(): Initialize a string list * sl_init(): Initialize a string list
@ -57,20 +58,20 @@ __weak_alias(sl_delete,_sl_delete)
StringList * StringList *
sl_init(void) sl_init(void)
{ {
StringList *sl; StringList *sl;
sl = malloc(sizeof(StringList)); sl = malloc(sizeof(StringList));
if (sl == NULL) if (sl == NULL)
return NULL; return NULL;
sl->sl_cur = 0; sl->sl_cur = 0;
sl->sl_max = _SL_CHUNKSIZE; sl->sl_max = _SL_CHUNKSIZE;
sl->sl_str = malloc(sl->sl_max * sizeof(char *)); sl->sl_str = malloc(sl->sl_max * sizeof(char *));
if (sl->sl_str == NULL) { if (sl->sl_str == NULL) {
free(sl); free(sl);
sl = NULL; sl = NULL;
} }
return sl; return sl;
} }
@ -81,20 +82,20 @@ int
sl_add(StringList *sl, char *name) sl_add(StringList *sl, char *name)
{ {
_DIAGASSERT(sl != NULL); _DIAGASSERT(sl != NULL);
if (sl->sl_cur == sl->sl_max - 1) { if (sl->sl_cur == sl->sl_max - 1) {
char **new; char **new;
new = realloc(sl->sl_str, new = realloc(sl->sl_str,
(sl->sl_max + _SL_CHUNKSIZE) * sizeof(char *)); (sl->sl_max + _SL_CHUNKSIZE) * sizeof(char *));
if (new == NULL) if (new == NULL)
return -1; return -1;
sl->sl_max += _SL_CHUNKSIZE; sl->sl_max += _SL_CHUNKSIZE;
sl->sl_str = new; sl->sl_str = new;
} }
sl->sl_str[sl->sl_cur++] = name; sl->sl_str[sl->sl_cur++] = name;
return 0; return 0;
} }
@ -104,17 +105,17 @@ sl_add(StringList *sl, char *name)
void void
sl_free(StringList *sl, int all) sl_free(StringList *sl, int all)
{ {
size_t i; size_t i;
if (sl == NULL) if (sl == NULL)
return; return;
if (sl->sl_str) { if (sl->sl_str) {
if (all) if (all)
for (i = 0; i < sl->sl_cur; i++) for (i = 0; i < sl->sl_cur; i++)
free(sl->sl_str[i]); free(sl->sl_str[i]);
free(sl->sl_str); free(sl->sl_str);
} }
free(sl); free(sl);
} }
@ -124,31 +125,31 @@ sl_free(StringList *sl, int all)
char * char *
sl_find(StringList *sl, const char *name) sl_find(StringList *sl, const char *name)
{ {
size_t i; size_t i;
_DIAGASSERT(sl != NULL); _DIAGASSERT(sl != NULL);
for (i = 0; i < sl->sl_cur; i++) for (i = 0; i < sl->sl_cur; i++)
if (strcmp(sl->sl_str[i], name) == 0) if (strcmp(sl->sl_str[i], name) == 0)
return sl->sl_str[i]; return sl->sl_str[i];
return NULL; return NULL;
} }
int int
sl_delete(StringList *sl, const char *name, int all) sl_delete(StringList *sl, const char *name, int all)
{ {
size_t i, j; size_t i, j;
for (i = 0; i < sl->sl_cur; i++) for (i = 0; i < sl->sl_cur; i++)
if (strcmp(sl->sl_str[i], name) == 0) { if (strcmp(sl->sl_str[i], name) == 0) {
if (all) if (all)
free(sl->sl_str[i]); free(sl->sl_str[i]);
for (j = i + 1; j < sl->sl_cur; j++) for (j = i + 1; j < sl->sl_cur; j++)
sl->sl_str[j - 1] = sl->sl_str[j]; sl->sl_str[j - 1] = sl->sl_str[j];
sl->sl_str[--sl->sl_cur] = NULL; sl->sl_str[--sl->sl_cur] = NULL;
return 0; return 0;
} }
return -1; return -1;
} }

View File

@ -120,9 +120,9 @@
StdLib/PosixLib/Stringlist/LibStringlist.inf StdLib/PosixLib/Stringlist/LibStringlist.inf
# Socket Libraries - LibC based # Socket Libraries - LibC based
StdLib/BsdSocketLib/BsdSocketLib.inf # StdLib/BsdSocketLib/BsdSocketLib.inf
StdLib/EfiSocketLib/EfiSocketLib.inf # StdLib/EfiSocketLib/EfiSocketLib.inf
StdLib/UseSocketDxe/UseSocketDxe.inf # StdLib/UseSocketDxe/UseSocketDxe.inf
############################################################################## ##############################################################################
# #

View File

@ -48,6 +48,7 @@
#include <Protocol/SimpleFileSystem.h> #include <Protocol/SimpleFileSystem.h>
#include <wchar.h> #include <wchar.h>
#include <stdarg.h>
#include <sys/fcntl.h> #include <sys/fcntl.h>
#include <sys/unistd.h> #include <sys/unistd.h>
@ -104,7 +105,7 @@ struct fileops {
/* Call the fbadop_* version of these functions if not implemented by the device. */ /* Call the fbadop_* version of these functions if not implemented by the device. */
int (EFIAPI *fo_stat) (struct __filedes *filp, struct stat *StatBuf, void *Buf); int (EFIAPI *fo_stat) (struct __filedes *filp, struct stat *StatBuf, void *Buf);
int (EFIAPI *fo_ioctl) (struct __filedes *filp, ULONGN Cmd, void *argp); int (EFIAPI *fo_ioctl) (struct __filedes *filp, ULONGN Cmd, va_list argp);
int (EFIAPI *fo_delete) (struct __filedes *filp); int (EFIAPI *fo_delete) (struct __filedes *filp);
int (EFIAPI *fo_rmdir) (struct __filedes *filp); int (EFIAPI *fo_rmdir) (struct __filedes *filp);
int (EFIAPI *fo_mkdir) (const char *path, __mode_t perms); int (EFIAPI *fo_mkdir) (const char *path, __mode_t perms);
@ -159,7 +160,7 @@ short EFIAPI fnullop_poll (struct __filedes *filp, short Events);
int EFIAPI fnullop_flush (struct __filedes *filp); int EFIAPI fnullop_flush (struct __filedes *filp);
int EFIAPI fbadop_stat (struct __filedes *filp, struct stat *StatBuf, void *Buf); int EFIAPI fbadop_stat (struct __filedes *filp, struct stat *StatBuf, void *Buf);
int EFIAPI fbadop_ioctl (struct __filedes *filp, ULONGN Cmd, void *argp); int EFIAPI fbadop_ioctl (struct __filedes *filp, ULONGN Cmd, va_list argp);
int EFIAPI fbadop_delete (struct __filedes *filp); int EFIAPI fbadop_delete (struct __filedes *filp);
int EFIAPI fbadop_rmdir (struct __filedes *filp); int EFIAPI fbadop_rmdir (struct __filedes *filp);
int EFIAPI fbadop_mkdir (const char *path, __mode_t perms); int EFIAPI fbadop_mkdir (const char *path, __mode_t perms);