Changeset View
Changeset View
Standalone View
Standalone View
sys/boot/common/bootstrap.h
Show All 27 Lines | |||||
#ifndef _BOOTSTRAP_H_ | #ifndef _BOOTSTRAP_H_ | ||||
#define _BOOTSTRAP_H_ | #define _BOOTSTRAP_H_ | ||||
#include <sys/types.h> | #include <sys/types.h> | ||||
#include <sys/queue.h> | #include <sys/queue.h> | ||||
#include <sys/linker_set.h> | #include <sys/linker_set.h> | ||||
/* | |||||
* Generic device specifier; architecture-dependant | |||||
* versions may be larger, but should be allowed to | |||||
* overlap. | |||||
*/ | |||||
struct devdesc | |||||
{ | |||||
struct devsw *d_dev; | |||||
int d_type; | |||||
#define DEVT_NONE 0 | |||||
#define DEVT_DISK 1 | |||||
#define DEVT_NET 2 | |||||
#define DEVT_CD 3 | |||||
#define DEVT_ZFS 4 | |||||
int d_unit; | |||||
void *d_opendata; | |||||
}; | |||||
/* Commands and return values; nonzero return sets command_errmsg != NULL */ | /* Commands and return values; nonzero return sets command_errmsg != NULL */ | ||||
typedef int (bootblk_cmd_t)(int argc, char *argv[]); | typedef int (bootblk_cmd_t)(int argc, char *argv[]); | ||||
extern char *command_errmsg; | extern char *command_errmsg; | ||||
extern char command_errbuf[]; /* XXX blah, length */ | extern char command_errbuf[]; /* XXX blah, length */ | ||||
#define CMD_OK 0 | #define CMD_OK 0 | ||||
#define CMD_WARN 1 | #define CMD_WARN 1 | ||||
#define CMD_ERROR 2 | #define CMD_ERROR 2 | ||||
#define CMD_CRIT 3 | #define CMD_CRIT 3 | ||||
Show All 23 Lines | |||||
void hexdump(caddr_t region, size_t len); | void hexdump(caddr_t region, size_t len); | ||||
size_t strlenout(vm_offset_t str); | size_t strlenout(vm_offset_t str); | ||||
char *strdupout(vm_offset_t str); | char *strdupout(vm_offset_t str); | ||||
void kern_bzero(vm_offset_t dest, size_t len); | void kern_bzero(vm_offset_t dest, size_t len); | ||||
int kern_pread(int fd, vm_offset_t dest, size_t len, off_t off); | int kern_pread(int fd, vm_offset_t dest, size_t len, off_t off); | ||||
void *alloc_pread(int fd, off_t off, size_t len); | void *alloc_pread(int fd, off_t off, size_t len); | ||||
/* bcache.c */ | /* bcache.c */ | ||||
int bcache_init(u_int nblks, size_t bsize); | void bcache_init(u_int nblks, size_t bsize); | ||||
void bcache_flush(void); | void bcache_add_dev(int); | ||||
int bcache_strategy(void *devdata, int unit, int rw, daddr_t blk, | void *bcache_allocate(void); | ||||
void bcache_free(void *); | |||||
int bcache_strategy(void *devdata, int rw, daddr_t blk, size_t offset, | |||||
size_t size, char *buf, size_t *rsize); | size_t size, char *buf, size_t *rsize); | ||||
/* | /* | ||||
* Disk block cache | * Disk block cache | ||||
*/ | */ | ||||
struct bcache_devdata | struct bcache_devdata | ||||
{ | { | ||||
int (*dv_strategy)(void *devdata, int rw, daddr_t blk, size_t size, char *buf, size_t *rsize); | int (*dv_strategy)(void *devdata, int rw, daddr_t blk, | ||||
size_t offset, size_t size, char *buf, size_t *rsize); | |||||
void *dv_devdata; | void *dv_devdata; | ||||
void *dv_cache; | |||||
}; | }; | ||||
/* | /* | ||||
* Modular console support. | * Modular console support. | ||||
*/ | */ | ||||
struct console | struct console | ||||
{ | { | ||||
const char *c_name; | const char *c_name; | ||||
▲ Show 20 Lines • Show All 235 Lines • Show Last 20 Lines |