Deleted Added
full compact
userboot_disk.c (315221) userboot_disk.c (328889)
1/*-
2 * Copyright (c) 2011 Google, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2011 Google, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: stable/11/sys/boot/userboot/userboot/userboot_disk.c 315221 2017-03-14 02:06:03Z pfg $");
28__FBSDID("$FreeBSD: stable/11/sys/boot/userboot/userboot/userboot_disk.c 328889 2018-02-05 17:01:18Z kevans $");
29
30/*
31 * Userboot disk image handling.
32 */
33
34#include <sys/disk.h>
35#include <stand.h>
36#include <stdarg.h>

--- 18 unchanged lines hidden (view full) ---

55static void userdisk_cleanup(void);
56static int userdisk_strategy(void *devdata, int flag, daddr_t dblk,
57 size_t size, char *buf, size_t *rsize);
58static int userdisk_realstrategy(void *devdata, int flag, daddr_t dblk,
59 size_t size, char *buf, size_t *rsize);
60static int userdisk_open(struct open_file *f, ...);
61static int userdisk_close(struct open_file *f);
62static int userdisk_ioctl(struct open_file *f, u_long cmd, void *data);
29
30/*
31 * Userboot disk image handling.
32 */
33
34#include <sys/disk.h>
35#include <stand.h>
36#include <stdarg.h>

--- 18 unchanged lines hidden (view full) ---

55static void userdisk_cleanup(void);
56static int userdisk_strategy(void *devdata, int flag, daddr_t dblk,
57 size_t size, char *buf, size_t *rsize);
58static int userdisk_realstrategy(void *devdata, int flag, daddr_t dblk,
59 size_t size, char *buf, size_t *rsize);
60static int userdisk_open(struct open_file *f, ...);
61static int userdisk_close(struct open_file *f);
62static int userdisk_ioctl(struct open_file *f, u_long cmd, void *data);
63static void userdisk_print(int verbose);
63static int userdisk_print(int verbose);
64
65struct devsw userboot_disk = {
66 "disk",
67 DEVT_DISK,
68 userdisk_init,
69 userdisk_strategy,
70 userdisk_open,
71 userdisk_close,

--- 39 unchanged lines hidden (view full) ---

111 if (userdisk_maxunit > 0)
112 free(ud_info);
113 disk_cleanup(&userboot_disk);
114}
115
116/*
117 * Print information about disks
118 */
64
65struct devsw userboot_disk = {
66 "disk",
67 DEVT_DISK,
68 userdisk_init,
69 userdisk_strategy,
70 userdisk_open,
71 userdisk_close,

--- 39 unchanged lines hidden (view full) ---

111 if (userdisk_maxunit > 0)
112 free(ud_info);
113 disk_cleanup(&userboot_disk);
114}
115
116/*
117 * Print information about disks
118 */
119static void
119static int
120userdisk_print(int verbose)
121{
122 struct disk_devdesc dev;
123 char line[80];
120userdisk_print(int verbose)
121{
122 struct disk_devdesc dev;
123 char line[80];
124 int i;
124 int i, ret = 0;
125
125
126 if (userdisk_maxunit == 0)
127 return (0);
128
129 printf("%s devices:", userboot_disk.dv_name);
130 if ((ret = pager_output("\n")) != 0)
131 return (ret);
132
126 for (i = 0; i < userdisk_maxunit; i++) {
133 for (i = 0; i < userdisk_maxunit; i++) {
127 sprintf(line, " disk%d: Guest drive image\n", i);
128 pager_output(line);
134 snprintf(line, sizeof(line),
135 " disk%d: Guest drive image\n", i);
136 ret = pager_output(line);
137 if (ret != 0)
138 break;
129 dev.d_dev = &userboot_disk;
130 dev.d_unit = i;
131 dev.d_slice = -1;
132 dev.d_partition = -1;
133 if (disk_open(&dev, ud_info[i].mediasize,
134 ud_info[i].sectorsize, 0) == 0) {
139 dev.d_dev = &userboot_disk;
140 dev.d_unit = i;
141 dev.d_slice = -1;
142 dev.d_partition = -1;
143 if (disk_open(&dev, ud_info[i].mediasize,
144 ud_info[i].sectorsize, 0) == 0) {
135 sprintf(line, " disk%d", i);
136 disk_print(&dev, line, verbose);
145 snprintf(line, sizeof(line), " disk%d", i);
146 ret = disk_print(&dev, line, verbose);
137 disk_close(&dev);
147 disk_close(&dev);
148 if (ret != 0)
149 break;
138 }
139 }
150 }
151 }
152 return (ret);
140}
141
142/*
143 * Attempt to open the disk described by (dev) for use by (f).
144 */
145static int
146userdisk_open(struct open_file *f, ...)
147{

--- 77 unchanged lines hidden ---
153}
154
155/*
156 * Attempt to open the disk described by (dev) for use by (f).
157 */
158static int
159userdisk_open(struct open_file *f, ...)
160{

--- 77 unchanged lines hidden ---