|
@ -40,15 +40,8 @@ using std::vector; |
|
|
|
|
|
|
|
|
typedef char IOCTL_BUF[4096]; |
|
|
typedef char IOCTL_BUF[4096]; |
|
|
#define IOCTL_APP_TYPE 0xDF
|
|
|
#define IOCTL_APP_TYPE 0xDF
|
|
|
//#define IOCTL_READ_KEYS 0xD000DF00
|
|
|
|
|
|
//#define IOCTL_READ_VAL 0xD000DF01
|
|
|
|
|
|
//#define IOCTL_WRITE_VAL 0x5000DF02
|
|
|
|
|
|
//#define IOCTL_FILE_INFO 0xD000DF03
|
|
|
|
|
|
#define IOCTL_READ_KEYS _IOWR(IOCTL_APP_TYPE,0,IOCTL_BUF)
|
|
|
|
|
|
#define IOCTL_READ_VAL _IOWR(IOCTL_APP_TYPE,1,IOCTL_BUF)
|
|
|
|
|
|
#define IOCTL_WRITE_VAL _IOW(IOCTL_APP_TYPE,2,IOCTL_BUF)
|
|
|
|
|
|
#define IOCTL_FILE_INFO _IOWR(IOCTL_APP_TYPE,3,IOCTL_BUF)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//#define IOCTL_FILE_INFO 0xD000DF00
|
|
|
|
|
|
#define IOCTL_FILE_INFO _IOWR(IOCTL_APP_TYPE,0,IOCTL_BUF)
|
|
|
|
|
|
|
|
|
#ifndef FS_IOC_GETFLAGS
|
|
|
#ifndef FS_IOC_GETFLAGS
|
|
|
# define FS_IOC_GETFLAGS _IOR('f',1,long)
|
|
|
# define FS_IOC_GETFLAGS _IOR('f',1,long)
|
|
@ -199,58 +192,6 @@ namespace l |
|
|
return s_.size(); |
|
|
return s_.size(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static |
|
|
|
|
|
int |
|
|
|
|
|
read_keys(void *data_) |
|
|
|
|
|
{ |
|
|
|
|
|
Config::Read cfg; |
|
|
|
|
|
std::string keys; |
|
|
|
|
|
|
|
|
|
|
|
cfg->keys(keys); |
|
|
|
|
|
|
|
|
|
|
|
return l::strcpy(keys,data_); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static |
|
|
|
|
|
int |
|
|
|
|
|
read_val(void *data_) |
|
|
|
|
|
{ |
|
|
|
|
|
Config::Read cfg; |
|
|
|
|
|
int rv; |
|
|
|
|
|
char *data; |
|
|
|
|
|
std::string key; |
|
|
|
|
|
std::string val; |
|
|
|
|
|
|
|
|
|
|
|
data = (char*)data_; |
|
|
|
|
|
data[sizeof(IOCTL_BUF) - 1] = '\0'; |
|
|
|
|
|
|
|
|
|
|
|
key = data; |
|
|
|
|
|
rv = cfg->get(key,&val); |
|
|
|
|
|
if(rv < 0) |
|
|
|
|
|
return rv; |
|
|
|
|
|
|
|
|
|
|
|
return l::strcpy(val,data_); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static |
|
|
|
|
|
int |
|
|
|
|
|
write_val(void *data_) |
|
|
|
|
|
{ |
|
|
|
|
|
Config::Write cfg; |
|
|
|
|
|
char *data; |
|
|
|
|
|
std::string kv; |
|
|
|
|
|
std::string key; |
|
|
|
|
|
std::string val; |
|
|
|
|
|
|
|
|
|
|
|
data = (char*)data_; |
|
|
|
|
|
data[sizeof(IOCTL_BUF) - 1] = '\0'; |
|
|
|
|
|
|
|
|
|
|
|
kv = data; |
|
|
|
|
|
str::splitkv(kv,'=',&key,&val); |
|
|
|
|
|
|
|
|
|
|
|
return cfg->set(key,val); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static |
|
|
static |
|
|
int |
|
|
int |
|
|
file_basepath(const Policy::Search &searchFunc_, |
|
|
file_basepath(const Policy::Search &searchFunc_, |
|
@ -378,12 +319,6 @@ namespace FUSE |
|
|
{ |
|
|
{ |
|
|
switch(cmd_) |
|
|
switch(cmd_) |
|
|
{ |
|
|
{ |
|
|
case IOCTL_READ_KEYS: |
|
|
|
|
|
return l::read_keys(data_); |
|
|
|
|
|
case IOCTL_READ_VAL: |
|
|
|
|
|
return l::read_val(data_); |
|
|
|
|
|
case IOCTL_WRITE_VAL: |
|
|
|
|
|
return l::write_val(data_); |
|
|
|
|
|
case IOCTL_FILE_INFO: |
|
|
case IOCTL_FILE_INFO: |
|
|
return l::file_info(ffi_,data_); |
|
|
return l::file_info(ffi_,data_); |
|
|
} |
|
|
} |
|
|