/*-
* Copyright (c) 1998 Michael Smith <msmith@freebsd.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
__FBSDID("$FreeBSD$");
#include <string.h>
#include <stand.h>
#include <bootstrap.h>
/*
* Concatenate the (argc) elements of (argv) into a single string, and return
* a copy of same.
*/
char *
{
int i;
char *cp;
if(hlong == 0)
return(NULL);
cp[0] = 0;
for (i = 0; i < argc; i++) {
if (i < (argc - 1))
}
return(cp);
}
/*
* Get the length of a string in kernel space
*/
{
char c;
if (c == 0)
break;
}
return(len);
}
/*
* Make a duplicate copy of a string in kernel space
*/
char *
{
if (*cp == 0)
break;
}
return(result);
}
/* Zero a region in kernel space. */
void
{
while (resid > 0) {
}
}
/*
* Read the specified part of a file to kernel space. Unlike regular
* pread, the file pointer is advanced to the end of the read data,
* and it just returns 0 if successful.
*/
int
{
#ifdef DEBUG
printf("\nlseek failed\n");
#endif
return (-1);
}
#ifdef DEBUG
printf("\nreadin failed\n");
#endif
return (-1);
}
return (0);
}
/*
* Read the specified part of a file to a malloced buffer. The file
* pointer is advanced to the end of the read data.
*/
void *
{
void *buf;
#ifdef DEBUG
#endif
return (NULL);
}
#ifdef DEBUG
printf("\nlseek failed\n");
#endif
return (NULL);
}
#ifdef DEBUG
printf("\nread failed\n");
#endif
return (NULL);
}
return (buf);
}
/*
* Display a region in traditional hexdump format.
*/
void
{
int x, c;
pager_open();
for (x = 0; x < 16; x++) {
} else {
emit("-- ");
}
if (x == 7)
emit(" ");
}
emit(" |");
for (x = 0; x < 16; x++) {
if ((c < ' ') || (c > '~')) /* !isprint(c) */
c = '.';
emit("%c", c);
} else {
emit(" ");
}
}
emit("|\n");
}
pager_close();
}
void
dev_cleanup(void)
{
int i;
/* Call cleanup routines */
(devsw[i]->dv_cleanup)();
}