• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <dprintf.h>
2 #include <stdio.h>
3 #include <string.h>
4 #include <stdbool.h>
5 #include <klibc/compiler.h>
6 #include <core.h>
7 #include <fs.h>
8 #include <disk.h>
9 #include <ilog2.h>
10 #include <minmax.h>
11 
12 #include <syslinux/firmware.h>
13 
getoneblk(struct disk * disk,char * buf,block_t block,int block_size)14 void getoneblk(struct disk *disk, char *buf, block_t block, int block_size)
15 {
16     int sec_per_block = block_size / disk->sector_size;
17 
18     disk->rdwr_sectors(disk, buf, block * sec_per_block, sec_per_block, 0);
19 }
20 
21 /*
22  * Initialize the device structure.
23  */
device_init(void * args)24 struct device * device_init(void *args)
25 {
26     static struct device dev;
27 
28     dev.disk = firmware->disk_init(args);
29     dev.cache_size = 128*1024;
30     dev.cache_data = malloc(dev.cache_size);
31     dev.cache_init = 0; /* Explicitly set cache as uninitialized */
32 
33     return &dev;
34 }
35