File: diskio.c

package info (click to toggle)
syslinux 3%3A6.03%2Bdfsg-14.1%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 41,508 kB
  • sloc: ansic: 358,767; asm: 9,608; pascal: 4,809; perl: 3,894; makefile: 2,486; sh: 315; python: 266; xml: 39
file content (34 lines) | stat: -rw-r--r-- 769 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <dprintf.h>
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <klibc/compiler.h>
#include <core.h>
#include <fs.h>
#include <disk.h>
#include <ilog2.h>
#include <minmax.h>

#include <syslinux/firmware.h>

void getoneblk(struct disk *disk, char *buf, block_t block, int block_size)
{
    int sec_per_block = block_size / disk->sector_size;

    disk->rdwr_sectors(disk, buf, block * sec_per_block, sec_per_block, 0);
}

/*
 * Initialize the device structure.
 */
struct device * device_init(void *args)
{
    static struct device dev;

    dev.disk = firmware->disk_init(args);
    dev.cache_size = 128*1024;
    dev.cache_data = malloc(dev.cache_size);
    dev.cache_init = 0; /* Explicitly set cache as uninitialized */

    return &dev;
}