summaryrefslogtreecommitdiff
path: root/src/user/include/knob/file.h
blob: d28328896efb9e1cf8d044c3e1ad63c9642f93a8 (plain) (blame)
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
#ifndef KNOB_FILE_H
#define KNOB_FILE_H

#include <stdint.h>
#include <pland/syscall.h>

struct file;

const char *remove_prefix(const char *path, uint8_t *dn_out);

struct file *open_file(const char *path);
void close_file(struct file *f);

uint32_t read_from_file(struct file *f, uint32_t max, void *buf);
uint32_t write_to_file(struct file *f, uint32_t max, void *buf);
//return value and max_length don't include null terminator
uint32_t read_line_from_file(struct file *f, char *sz, uint32_t max_length);
uint32_t seek_file_to(struct file *f, uint32_t to);
int32_t seek_file_by(struct file *f, int32_t by);

uint32_t file_size(struct file *f) __attribute__ ((pure));
void trunc_file(struct file *f);

//return value must be manually freed, unless it is a null pointer
_dir_info_entry_t *get_directory_info(const char *path, uint32_t *count_out);

#endif