#pragma once
//#include <windows.h>
//#include "kpi.h"

/*
  [処理系無依存]
    システムコールをラップする低レベル関数群を宣言します。
    標準ライブラリとは少々仕様が異なります。
*/
#ifdef __cplusplus
extern "C" {
#endif

class IKpiFolder;

typedef void *XFILE;

//XFILE XOPENRB(const char *path);
XFILE XOPENRB(IKpiFolder *pFolder, const wchar_t *path);

void XCLOSE(XFILE f);
unsigned XREAD(XFILE f, void *b, unsigned l);
unsigned XSEEK(XFILE f, unsigned p);

//void *XMALLOC(unsigned l);
//void XFREE(void *p);

//void XMEMSET(void *d, int n, unsigned l);
int XMEMCMP(void *s1, void *s2, unsigned l);
int XMEMCMPI(void *s1, void *s2, unsigned l);
void XMEMCPY(void *d, void *s, unsigned l);

int XSTRCMPI(const char *s1, const char *s2);
unsigned XSTRLEN(const char *s);
unsigned XSTRCPYN(char *d, const char *s, unsigned l);
unsigned XMBLEN(const char *p);

unsigned XDIVPATH(char *d, const char *s, unsigned n);
unsigned XDELEXT(char *d, const char *s, unsigned n);

int XMULDIV(int n, int m, int d);

//char *XGETMODULEPATH(void);
//void *XGETMODULEINSTANCE(void);

//void XGETCURDIR(char *d, unsigned l);
//void XSETCURDIR(const char *s);

//int XISHDD(const char *s);

#ifdef __cplusplus
}
#endif
