Skip to content

Commit 2e0a53e

Browse files
committed
made ZFS driver for future OS
Signed-off-by: Slice <[email protected]>
1 parent 3aa8de0 commit 2e0a53e

File tree

33 files changed

+146
-119
lines changed

33 files changed

+146
-119
lines changed

Clover.dsc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@
716716
FileSystems/GrubFS/src/ISO9660.inf
717717
FileSystems/GrubFS/src/NTFS.inf
718718
FileSystems/GrubFS/src/UDF.inf
719-
#FileSystems/GrubFS/src/ZFS.inf
719+
FileSystems/GrubFS/src/ZFS.inf
720720
#FileSystems/GrubFS/src/UFS.inf
721721
#FileSystems/GrubFS/src/UFS2.inf
722722
#FileSystems/GrubFS/src/XFS.inf

FileSystems/GrubFS/grub/grub-core/fs/fat.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ grub_fat_mount (grub_disk_t disk)
227227
goto fail;
228228

229229
/* Read the BPB. */
230-
if (grub_disk_read (disk, 0, 0, sizeof (bpb), &bpb))
230+
if (grub_disk_read_z (disk, 0, 0, sizeof (bpb), &bpb))
231231
goto fail;
232232

233233
#ifdef MODE_EXFAT
@@ -381,7 +381,7 @@ grub_fat_mount (grub_disk_t disk)
381381
if (data->num_sectors <= data->fat_sector)
382382
goto fail;
383383

384-
if (grub_disk_read (disk,
384+
if (grub_disk_read_z (disk,
385385
data->fat_sector,
386386
0,
387387
sizeof (first_fat),
@@ -463,7 +463,7 @@ grub_fat_read_data (grub_disk_t disk, struct grub_fat_data *data,
463463
if (size > len)
464464
size = len;
465465

466-
if (grub_disk_read (disk, data->root_sector, offset, size, buf))
466+
if (grub_disk_read_z (disk, data->root_sector, offset, size, buf))
467467
return -1;
468468

469469
return size;
@@ -480,7 +480,7 @@ grub_fat_read_data (grub_disk_t disk, struct grub_fat_data *data,
480480

481481
disk->read_hook = read_hook;
482482
disk->read_hook_data = read_hook_data;
483-
grub_disk_read (disk, sector + (offset >> GRUB_DISK_SECTOR_BITS),
483+
grub_disk_read_z (disk, sector + (offset >> GRUB_DISK_SECTOR_BITS),
484484
offset & (GRUB_DISK_SECTOR_SIZE - 1), len, buf);
485485
disk->read_hook = 0;
486486
if (grub_errno)
@@ -525,7 +525,7 @@ grub_fat_read_data (grub_disk_t disk, struct grub_fat_data *data,
525525
}
526526

527527
/* Read the FAT. */
528-
if (grub_disk_read (disk, data->fat_sector, fat_offset,
528+
if (grub_disk_read_z (disk, data->fat_sector, fat_offset,
529529
(data->fat_size + 7) >> 3,
530530
(char *) &next_cluster))
531531
return -1;
@@ -572,7 +572,7 @@ grub_fat_read_data (grub_disk_t disk, struct grub_fat_data *data,
572572

573573
disk->read_hook = read_hook;
574574
disk->read_hook_data = read_hook_data;
575-
grub_disk_read (disk, sector, offset, size, buf);
575+
grub_disk_read_z (disk, sector, offset, size, buf);
576576
disk->read_hook = 0;
577577
if (grub_errno)
578578
return -1;

FileSystems/GrubFS/grub/grub-core/fs/fshelp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ grub_fshelp_read_file (grub_disk_t disk, grub_fshelp_node_t node,
283283
disk->read_hook = read_hook;
284284
disk->read_hook_data = read_hook_data;
285285

286-
grub_disk_read (disk, blknr + blocks_start, skipfirst,
286+
grub_disk_read_z (disk, blknr + blocks_start, skipfirst,
287287
blockend, buf);
288288
disk->read_hook = 0;
289289
if (grub_errno) {

FileSystems/GrubFS/grub/grub-core/fs/hfsplus.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ grub_hfsplus_mount (grub_disk_t disk)
236236
data->disk = disk;
237237

238238
/* Read the bootblock. */
239-
grub_disk_read (disk, GRUB_HFSPLUS_SBLOCK, 0, sizeof (volheader),
239+
grub_disk_read_z (disk, GRUB_HFSPLUS_SBLOCK, 0, sizeof (volheader),
240240
&volheader);
241241
if (grub_errno)
242242
goto fail;
@@ -261,7 +261,7 @@ grub_hfsplus_mount (grub_disk_t disk)
261261
+ extent_start
262262
* (ablk_size >> GRUB_DISK_SECTOR_BITS));
263263

264-
grub_disk_read (disk, data->embedded_offset + GRUB_HFSPLUS_SBLOCK, 0,
264+
grub_disk_read_z (disk, data->embedded_offset + GRUB_HFSPLUS_SBLOCK, 0,
265265
sizeof (volheader), &volheader);
266266
if (grub_errno) {
267267
goto fail;

FileSystems/GrubFS/grub/grub-core/fs/iso9660.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ read_node (grub_fshelp_node_t node, grub_off_t off, grub_size_t len, char *buf)
242242
toread = grub_le_to_cpu32 (node->dirents[i].size);
243243
if (toread > len)
244244
toread = len;
245-
err = grub_disk_read (node->data->disk,
245+
err = grub_disk_read_z (node->data->disk,
246246
((grub_disk_addr_t) grub_le_to_cpu32 (node->dirents[i].first_sector)) << GRUB_ISO9660_LOG2_BLKSZ,
247247
off, toread, buf);
248248
if (err)
@@ -305,7 +305,7 @@ grub_iso9660_susp_iterate (grub_fshelp_node_t node, grub_off_t off,
305305
return grub_errno;
306306

307307
/* Load a part of the System Usage Area. */
308-
err = grub_disk_read (node->data->disk, ce_block, off,
308+
err = grub_disk_read_z (node->data->disk, ce_block, off,
309309
sua_size, sua);
310310
if (err)
311311
return err;
@@ -371,7 +371,7 @@ set_rockridge (struct grub_iso9660_data *data)
371371

372372
/* Read the system use area and test it to see if SUSP is
373373
supported. */
374-
if (grub_disk_read (data->disk,
374+
if (grub_disk_read_z (data->disk,
375375
(grub_le_to_cpu32 (data->voldesc.rootdir.first_sector)
376376
<< GRUB_ISO9660_LOG2_BLKSZ), 0,
377377
sizeof (rootdir), (char *) &rootdir))
@@ -388,7 +388,7 @@ set_rockridge (struct grub_iso9660_data *data)
388388
if (! sua)
389389
return grub_errno;
390390

391-
if (grub_disk_read (data->disk,
391+
if (grub_disk_read_z (data->disk,
392392
(grub_le_to_cpu32 (data->voldesc.rootdir.first_sector)
393393
<< GRUB_ISO9660_LOG2_BLKSZ), sua_pos,
394394
sua_size, sua))
@@ -449,7 +449,7 @@ grub_iso9660_mount (grub_disk_t disk)
449449
int copy_voldesc = 0;
450450

451451
/* Read the superblock. */
452-
if (grub_disk_read (disk, block << GRUB_ISO9660_LOG2_BLKSZ, 0,
452+
if (grub_disk_read_z (disk, block << GRUB_ISO9660_LOG2_BLKSZ, 0,
453453
sizeof (struct grub_iso9660_primary_voldesc),
454454
(char *) &voldesc))
455455
{

FileSystems/GrubFS/grub/grub-core/fs/ntfs.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,11 @@ find_attr (struct grub_ntfs_attr *at, grub_uint8_t attr)
132132

133133
if (at->flags & GRUB_NTFS_AF_MMFT)
134134
{
135-
if ((grub_disk_read
135+
if ((grub_disk_read_z
136136
(at->mft->data->disk, u32at (at->attr_cur, 0x10), 0,
137137
512, at->emft_buf))
138138
||
139-
(grub_disk_read
139+
(grub_disk_read_z
140140
(at->mft->data->disk, u32at (at->attr_cur, 0x14), 0,
141141
512, at->emft_buf + 512)))
142142
return NULL;
@@ -893,7 +893,7 @@ grub_ntfs_mount (grub_disk_t disk)
893893
data->disk = disk;
894894

895895
/* Read the BPB. */
896-
if (grub_disk_read (disk, 0, 0, sizeof (bpb), &bpb))
896+
if (grub_disk_read_z (disk, 0, 0, sizeof (bpb), &bpb))
897897
goto fail;
898898

899899
if (grub_memcmp ((char *) &bpb.oem_name, "NTFS", 4) != 0
@@ -934,7 +934,7 @@ grub_ntfs_mount (grub_disk_t disk)
934934
if (!data->mmft.buf)
935935
goto fail;
936936

937-
if (grub_disk_read
937+
if (grub_disk_read_z
938938
(disk, data->mft_start, 0, data->mft_size << GRUB_NTFS_BLK_SHR, data->mmft.buf))
939939
goto fail;
940940

FileSystems/GrubFS/grub/grub-core/fs/ntfscomp.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ decomp_nextvcn (struct grub_ntfs_comp *cc)
3030
{
3131
if (cc->comp_head >= cc->comp_tail)
3232
return grub_error (GRUB_ERR_BAD_FS, "compression block overflown");
33-
if (grub_disk_read
33+
if (grub_disk_read_z
3434
(cc->disk,
3535
(cc->comp_table[cc->comp_head].next_lcn -
3636
(cc->comp_table[cc->comp_head].next_vcn - cc->cbuf_vcn)) << cc->log_spc,
@@ -261,7 +261,7 @@ read_block (struct grub_ntfs_rlst *ctx, grub_uint8_t *buf, grub_size_t num)
261261
ctx->target_vcn += tt;
262262
if (buf)
263263
{
264-
if (grub_disk_read
264+
if (grub_disk_read_z
265265
(ctx->comp.disk,
266266
(ctx->comp.comp_table[ctx->comp.comp_head].next_lcn -
267267
(ctx->comp.comp_table[ctx->comp.comp_head].next_vcn -
@@ -284,7 +284,7 @@ read_block (struct grub_ntfs_rlst *ctx, grub_uint8_t *buf, grub_size_t num)
284284
{
285285
if (buf)
286286
{
287-
if (grub_disk_read
287+
if (grub_disk_read_z
288288
(ctx->comp.disk,
289289
(ctx->target_vcn - ctx->curr_vcn +
290290
ctx->curr_lcn) << ctx->comp.log_spc, 0,

FileSystems/GrubFS/grub/grub-core/fs/proc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include <grub/mm.h>
2424
#include <grub/dl.h>
2525

26-
GRUB_MOD_LICENSE ("GPLv3+");
26+
//GRUB_MOD_LICENSE ("GPLv3+");
2727

2828
grub_disk_dev_t grub_disk_dev_list;
2929

FileSystems/GrubFS/grub/grub-core/fs/udf.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ grub_udf_read_icb (struct grub_udf_data *data,
408408
if (grub_errno)
409409
return grub_errno;
410410

411-
if (grub_disk_read (data->disk, block << data->lbshift, 0,
411+
if (grub_disk_read_z (data->disk, block << data->lbshift, 0,
412412
1 << (GRUB_DISK_SECTOR_BITS
413413
+ data->lbshift),
414414
&node->block))
@@ -470,7 +470,7 @@ grub_udf_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock)
470470
if (!buf)
471471
return 0;
472472
}
473-
if (grub_disk_read (node->data->disk, sec << node->data->lbshift,
473+
if (grub_disk_read_z (node->data->disk, sec << node->data->lbshift,
474474
0, adlen, buf))
475475
goto fail;
476476

@@ -523,7 +523,7 @@ grub_udf_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock)
523523
if (!buf)
524524
return 0;
525525
}
526-
if (grub_disk_read (node->data->disk, sec << node->data->lbshift,
526+
if (grub_disk_read_z (node->data->disk, sec << node->data->lbshift,
527527
0, adlen, buf))
528528
goto fail;
529529

@@ -622,7 +622,7 @@ grub_udf_mount (grub_disk_t disk)
622622
for (sblklist = sblocklist; *sblklist; sblklist++) {
623623
struct grub_udf_avdp avdp;
624624

625-
if (grub_disk_read (disk, *sblklist << lbshift, 0,
625+
if (grub_disk_read_z (disk, *sblklist << lbshift, 0,
626626
sizeof (struct grub_udf_avdp), &avdp)) {
627627
grub_error (GRUB_ERR_BAD_FS, "not an UDF filesystem");
628628
goto fail;
@@ -650,7 +650,7 @@ grub_udf_mount (grub_disk_t disk)
650650
vblock += (2047 >> (lbshift + GRUB_DISK_SECTOR_BITS)) + 1) {
651651
struct grub_udf_vrs vrs;
652652

653-
if (grub_disk_read (disk, vblock << lbshift, 0,
653+
if (grub_disk_read_z (disk, vblock << lbshift, 0,
654654
sizeof (struct grub_udf_vrs), &vrs)) {
655655
grub_error (GRUB_ERR_BAD_FS, "not an UDF filesystem");
656656
goto fail;
@@ -675,7 +675,7 @@ grub_udf_mount (grub_disk_t disk)
675675
while (1) {
676676
struct grub_udf_tag tag;
677677

678-
if (grub_disk_read (disk, block << lbshift, 0,
678+
if (grub_disk_read_z (disk, block << lbshift, 0,
679679
sizeof (struct grub_udf_tag), &tag)) {
680680
grub_error (GRUB_ERR_BAD_FS, "not an UDF filesystem");
681681
goto fail;
@@ -688,7 +688,7 @@ grub_udf_mount (grub_disk_t disk)
688688
goto fail;
689689
}
690690

691-
if (grub_disk_read (disk, block << lbshift, 0,
691+
if (grub_disk_read_z (disk, block << lbshift, 0,
692692
sizeof (struct grub_udf_pd),
693693
&data->pds[data->npd])) {
694694
grub_error (GRUB_ERR_BAD_FS, "not an UDF filesystem");
@@ -702,7 +702,7 @@ grub_udf_mount (grub_disk_t disk)
702702

703703
struct grub_udf_partmap *ppm;
704704

705-
if (grub_disk_read (disk, block << lbshift, 0,
705+
if (grub_disk_read_z (disk, block << lbshift, 0,
706706
sizeof (struct grub_udf_lvd),
707707
&data->lvd)) {
708708
grub_error (GRUB_ERR_BAD_FS, "not an UDF filesystem");
@@ -758,7 +758,7 @@ grub_udf_mount (grub_disk_t disk)
758758
if (grub_errno)
759759
goto fail;
760760

761-
if (grub_disk_read (disk, block << lbshift, 0,
761+
if (grub_disk_read_z (disk, block << lbshift, 0,
762762
sizeof (struct grub_udf_fileset), &root_fs)) {
763763
grub_error (GRUB_ERR_BAD_FS, "not an UDF filesystem");
764764
goto fail;

FileSystems/GrubFS/grub/grub-core/fs/zfs/zfs.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ zfs_fetch_nvlist (struct grub_zfs_device_desc *diskdesc, char **nvlist)
611611
*nvlist = grub_malloc (VDEV_PHYS_SIZE);
612612

613613
/* Read in the vdev name-value pair list (112K). */
614-
err = grub_disk_read (diskdesc->dev->disk, diskdesc->vdev_phys_sector, 0,
614+
err = grub_disk_read_z (diskdesc->dev->disk, diskdesc->vdev_phys_sector, 0,
615615
VDEV_PHYS_SIZE, *nvlist);
616616
if (err)
617617
{
@@ -1168,7 +1168,7 @@ scan_disk (grub_device_t dev, struct grub_zfs_data *data,
11681168
desc.original = original;
11691169

11701170
/* Don't check back labels on CDROM. */
1171-
if (grub_disk_get_size (dev->disk) == GRUB_DISK_SIZE_UNKNOWN)
1171+
if (grub_disk_get_size_z (dev->disk) == GRUB_DISK_SIZE_UNKNOWN)
11721172
vdevnum = VDEV_LABELS / 2;
11731173

11741174
for (label = 0; ubbest == NULL && label < vdevnum; label++)
@@ -1177,11 +1177,11 @@ scan_disk (grub_device_t dev, struct grub_zfs_data *data,
11771177
= label * (sizeof (vdev_label_t) >> SPA_MINBLOCKSHIFT)
11781178
+ ((VDEV_SKIP_SIZE + VDEV_BOOT_HEADER_SIZE) >> SPA_MINBLOCKSHIFT)
11791179
+ (label < VDEV_LABELS / 2 ? 0 :
1180-
ALIGN_DOWN (grub_disk_get_size (dev->disk), sizeof (vdev_label_t))
1180+
ALIGN_DOWN (grub_disk_get_size_z (dev->disk), sizeof (vdev_label_t))
11811181
- VDEV_LABELS * (sizeof (vdev_label_t) >> SPA_MINBLOCKSHIFT));
11821182

11831183
/* Read in the uberblock ring (128K). */
1184-
err = grub_disk_read (dev->disk, desc.vdev_phys_sector
1184+
err = grub_disk_read_z (dev->disk, desc.vdev_phys_sector
11851185
+ (VDEV_PHYS_SIZE >> SPA_MINBLOCKSHIFT),
11861186
0, VDEV_UBERBLOCK_RING, (char *) ub_array);
11871187
if (err)
@@ -1466,7 +1466,7 @@ read_device (grub_uint64_t offset, struct grub_zfs_device_desc *desc,
14661466
"of multi-device filesystem"));
14671467
}
14681468
/* read in a data block */
1469-
return grub_disk_read (desc->dev->disk, sector, 0, len, buf);
1469+
return grub_disk_read_z (desc->dev->disk, sector, 0, len, buf);
14701470
}
14711471
case DEVICE_MIRROR:
14721472
{

FileSystems/GrubFS/grub/grub-core/kern/disk.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ grub_disk_read_small (grub_disk_t disk, grub_disk_addr_t sector,
400400

401401
/* Read data from the disk. */
402402
grub_err_t
403-
grub_disk_read (grub_disk_t disk, grub_disk_addr_t sector,
403+
grub_disk_read_z (grub_disk_t disk, grub_disk_addr_t sector,
404404
grub_off_t offset, grub_size_t size, void *buf)
405405
{
406406
/* First of all, check if the region is within the disk. */
@@ -519,7 +519,7 @@ grub_disk_read (grub_disk_t disk, grub_disk_addr_t sector,
519519
}
520520

521521
grub_uint64_t
522-
grub_disk_get_size (grub_disk_t disk)
522+
grub_disk_get_size_z (grub_disk_t disk)
523523
{
524524
if (disk->partition)
525525
return grub_partition_get_len (disk->partition);

FileSystems/GrubFS/grub/grub-core/lib/libgcrypt/cipher/rijndael.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
#include "../src/types.h" /* for byte and u32 typedefs */
4646
#include "../src/g10lib.h"
47-
#include "cipher.h"
47+
#include "../src/cipher.h"
4848

4949
#define MAXKC (256/32)
5050
#define MAXROUNDS 14

FileSystems/GrubFS/grub/grub-core/lib/libgcrypt/src/cipher.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@
2020
#ifndef G10_CIPHER_H
2121
#define G10_CIPHER_H
2222

23-
#include <gcrypt.h>
23+
#include "gcrypt.h"
2424

2525
#define DBG_CIPHER _gcry_get_debug_flag( 1 )
2626

27-
#include "../random/random.h"
27+
//#include "../random/random.h"
28+
//#include <sys/random.h>
2829

2930
#define PUBKEY_FLAG_NO_BLINDING (1 << 0)
3031

0 commit comments

Comments
 (0)