#ifndef KIfile #define KIfile #include #include #ifdef __cplusplus extern "C" { #endif typedef enum kfcond { kfcond_ok = 0, kfcond_fail = 1, // an unspecified error occurred kfcond_bad_domain, // the values passed to the function are not within // that function's domain and are invalid kfcond_overstep, // kfstep() was only able to move part of the // distance requested kfcond_bad_index, // the requested index is past the end of the file kfcond_notfound, // the specified object could not be found kfcond_unauth, // you do not have permission to open this object kfcond_mem, // there is not enough memory to complete the // requested operation } kfcond; typedef enum kfile_kind { kfile_closed, // the file object does not refer to an open file kfile_open, // the file object refers to an open file } kfile_kind; enum kfopen { /* file open modes */ kf_read = 1 << 9, kf_write = 1 << 10, kf_ascii = 1 << 11, kf_new = 1 << 12, kf_create = 1 << 13, kf_load = 1 << 14, kf_top = 1 << 15, kf_end = 1 << 16, kf_wipe = 1 << 17, kf_map = 1 << 18, /* file permission flags */ kf_ur = 4 << 6, kf_uw = 2 << 6, kf_ux = 1 << 6, kf_gr = 4 << 3, kf_gw = 2 << 3, kf_gx = 1 << 3, kf_or = 4 << 0, kf_ow = 2 << 0, kf_ox = 1 << 0, } typedef struct kfile { enum kfile_kind kind; enum kfopen mode; kiochan chan; u8* content; } kfile; enum kfset_mode { kfset_none, // do not move kfset_top, // move to x bytes from the start of the file kfset_end, // move to x bytes from the end of the file } enum kfplace { kfplace_none, kfplace_conf, kfplace_home, kfplace_desk, kfplace_dl, kfplace_img, kfplace_vid, kfplace_msc, kfplace_doc, kfplace_dat, kfplace_share, kfplace_share_global, kfplace_cache, } kfile kfplace(enum kfplace location, const char* file, enum kfopen mode); kfile kfopen (const char* file, enum kfopen mode); kfile kfopens(const ksraw file, enum kfopen mode); kfcond kfset (struct kfile file, enum kfset_mode mode, sz position); kfcond kfstep(struct kfile file, offset position); kfcond kfshred(struct kfile file, sz count); #ifdef __cplusplus } #endif #endif