003 File Manager
Current Path:
/usr/src/stand/common
usr
/
src
/
stand
/
common
/
📁
..
📄
Makefile.depend
(176 B)
📄
bcache.c
(13.36 KB)
📄
boot.c
(9.81 KB)
📄
bootstrap.h
(12.21 KB)
📄
commands.c
(11.33 KB)
📄
console.c
(7.79 KB)
📄
dev_net.c
(10.62 KB)
📄
dev_net.h
(1.48 KB)
📄
devopen.c
(2.36 KB)
📄
disk.c
(11.71 KB)
📄
disk.h
(4.1 KB)
📄
gfx_fb.c
(67.01 KB)
📄
gfx_fb.h
(8.12 KB)
📄
help.common
(13.34 KB)
📄
install.c
(8.46 KB)
📄
interp.c
(4.62 KB)
📄
interp_backslash.c
(3.35 KB)
📄
interp_forth.c
(12.43 KB)
📄
interp_lua.c
(5.31 KB)
📄
interp_parse.c
(4.8 KB)
📄
interp_simple.c
(4.77 KB)
📄
isapnp.c
(7.77 KB)
📄
isapnp.h
(10.19 KB)
📄
load_elf.c
(33.26 KB)
📄
load_elf32.c
(129 B)
📄
load_elf32_obj.c
(133 B)
📄
load_elf64.c
(97 B)
📄
load_elf64_obj.c
(101 B)
📄
load_elf_obj.c
(15.16 KB)
📄
ls.c
(5.52 KB)
📄
md.c
(3.64 KB)
📄
merge_help.awk
(2.11 KB)
📄
metadata.c
(9.89 KB)
📄
misc.c
(4.04 KB)
📄
module.c
(38.98 KB)
📄
newvers.sh
(2.31 KB)
📄
nvstore.c
(6.57 KB)
📄
part.c
(24.07 KB)
📄
part.h
(2.65 KB)
📄
paths.h
(1.74 KB)
📄
pnp.c
(3.76 KB)
📄
rbx.h
(1.97 KB)
📄
readin.h
(1.68 KB)
📄
reloc_elf.c
(6.05 KB)
📄
reloc_elf32.c
(98 B)
📄
reloc_elf64.c
(98 B)
📄
self_reloc.c
(3.72 KB)
📄
vdisk.c
(9.47 KB)
📄
zfs_cmd.c
(2.66 KB)
Editing: md.c
/*- * Copyright (c) 2009 Marcel Moolenaar * 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 * documentation and/or other materials provided with the distribution. * * 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. */ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); #include <stand.h> #include <sys/param.h> #include <sys/endian.h> #include <sys/queue.h> #include <machine/stdarg.h> #include "bootstrap.h" #define MD_BLOCK_SIZE 512 #ifndef MD_IMAGE_SIZE #error Must be compiled with MD_IMAGE_SIZE defined #endif #if (MD_IMAGE_SIZE == 0 || MD_IMAGE_SIZE % MD_BLOCK_SIZE) #error Image size must be a multiple of 512. #endif /* * Preloaded image gets put here. * Applications that patch the object with the image can determine * the size looking at the start and end markers (strings), * so we want them contiguous. */ static struct { u_char start[MD_IMAGE_SIZE]; u_char end[128]; } md_image = { .start = "MFS Filesystem goes here", .end = "MFS Filesystem had better STOP here", }; /* devsw I/F */ static int md_init(void); static int md_strategy(void *, int, daddr_t, size_t, char *, size_t *); static int md_open(struct open_file *, ...); static int md_close(struct open_file *); static int md_print(int); struct devsw md_dev = { "md", DEVT_DISK, md_init, md_strategy, md_open, md_close, noioctl, md_print, NULL }; static int md_init(void) { return (0); } static int md_strategy(void *devdata, int rw, daddr_t blk, size_t size, char *buf, size_t *rsize) { struct devdesc *dev = (struct devdesc *)devdata; size_t ofs; if (dev->d_unit != 0) return (ENXIO); if (blk < 0 || blk >= (MD_IMAGE_SIZE / MD_BLOCK_SIZE)) return (EIO); if (size % MD_BLOCK_SIZE) return (EIO); ofs = blk * MD_BLOCK_SIZE; if ((ofs + size) > MD_IMAGE_SIZE) size = MD_IMAGE_SIZE - ofs; if (rsize != NULL) *rsize = size; switch (rw & F_MASK) { case F_READ: bcopy(md_image.start + ofs, buf, size); return (0); case F_WRITE: bcopy(buf, md_image.start + ofs, size); return (0); } return (ENODEV); } static int md_open(struct open_file *f, ...) { va_list ap; struct devdesc *dev; va_start(ap, f); dev = va_arg(ap, struct devdesc *); va_end(ap); if (dev->d_unit != 0) return (ENXIO); return (0); } static int md_close(struct open_file *f) { struct devdesc *dev; dev = (struct devdesc *)(f->f_devdata); return ((dev->d_unit != 0) ? ENXIO : 0); } static int md_print(int verbose) { printf("%s devices:", md_dev.dv_name); if (pager_output("\n") != 0) return (1); printf("MD (%u bytes)", MD_IMAGE_SIZE); return (pager_output("\n")); }
Upload File
Create Folder