netdiskdev.h

来自「AMLOGIC DPF source code」· C头文件 代码 · 共 178 行

H
178
字号

#ifndef NETDISKDEV_H
#define NETDISKDEV_H

#define NETDISK_DEV_DIR "/dev/net_service"

/****************************************
* displayctl device defines
*
*****************************************/
#define NETDISK_CTLIO_START _IO('N',1)
#define NETDISK_CTLIO_STOP _IO('N',2)
#define NETDISK_CTLIO_OBJ_REQ_INFO _IO('N',3)
#define NETDISK_CTLIO_OBJ_OPEN _IO('N',4)
#define NETDISK_CTLIO_DEV_INFO _IO('N',5)
#define NETDISK_CTLIO_SET_OPT  _IO('N',6)
#define NETDISK_CTLIO_OPEN_DEV   _IO('N',7)
#define NETDISK_CTLIO_DEV_MKNOD  _IO('N',8)
#define NETDISK_CTLIO_DEV_WRITE  _IO('N',9)
#define NETDISK_CTLIO_DEV_WRITE_FINISH _IO('N',10)

#define NET_LOGTYPE_NORMAL              0
#define NET_LOGTYPE_ANONYMOUS           1

#define NETFS_DIRECTORY     AVFS_FILESYSTEM_DIRECTORY
#define NETFS_FILE          AVFS_FILESYSTEM_MEMORY_FILE

#define MAX_OBJ_ID_LEN 128
#define MAX_EXT_NAME_LEN 4
#define MIN_EXT_NAME_LEN 2
extern EventSubscriber_t *netdisk_event_subscriber;

typedef int (*netdisk_app_interrupt_cb_t)(void* arg);

typedef struct {
    unsigned char parent_obj_id_len;
    char* parent_obj_id;
    unsigned		type;
    int                 size; /* for container, this is the child count */
    unsigned16          ref_pos;
    unsigned char       obj_id_len;
    char*               obj_id;
    unsigned char	namlen;
    char*		name;
    unsigned char	lnamlen;
    char*		lname;
    char*               llname;
    char ext_name[MAX_EXT_NAME_LEN+1]; /* not include '.'*/
}NetDisk_Obj_Info_t;    

typedef void (*netdisk_obj_info_req_cb_t)(NetDisk_Obj_Info_t* info,void* arg);

typedef struct {
   unsigned char obj_id_len;
   char*  obj_id;
   int start_pos;
   int count; 
   netdisk_obj_info_req_cb_t netfs_readdir_cb;
   void* data_p;

   unsigned32 timeout;
   
   OS_EVENT * complete_sem;
   netdisk_app_interrupt_cb_t app_fs_interrupt_cb;
   void* app_fs_interrupt_cb_arg;
   
   int err;
}NetDisk_Obj_Info_Req_t;    

typedef struct {
   char* adr;
   int len;
}NetDisk_Dev_Write_t;    


#define NETDISK_DEV_LABEL_LEN 64

#define NETDISK_DEV_TYPE_UPNP 1
#define NETDISK_DEV_TYPE_KG   2
#define NETDISK_DEV_TYPE_RSS  3
#define NETDISK_DEV_TYPE_FLI  4
#define NETDISK_DEV_TYPE_PIC  5

#define FLI_SUB_NAME         "FLISUB"
#define PIC_SUB_NAME         "PICSUB"

typedef struct {
   unsigned char type;
   char label[NETDISK_DEV_LABEL_LEN+1];
   unsigned char mountable;
   unsigned char seekable;
   unsigned char  datachain_type;
   unsigned char disable_cache;
   unsigned16 root_size; /* child count */
   void* data_ext;
}NetDisk_Dev_Info_t;    

/*

*/
typedef int (*netdisk_obj_read_t)(void* file_handle, char **buf_addr, int len);
typedef int (*netdisk_obj_write_t)(void* file_handle, char *buf_addr, int len);
typedef int (*netdisk_obj_seek_t)(void* file_handle, long offset, int fromwhere);
typedef int (*netdisk_obj_close_t)(void* file_handle);
typedef int (*netdisk_obj_get_chain_t)(void* file_handle,void* pchain, int len); 

struct netdisk_obj_handlers_r {
    netdisk_obj_read_t read;
    netdisk_obj_write_t write;
    netdisk_obj_seek_t seek;
    netdisk_obj_close_t close;
    netdisk_obj_get_chain_t get_chain;
    void* file_handle;
};

typedef struct {
   unsigned char obj_id_len;
   char*  obj_id;
   unsigned16 ref_pos;  /* 0xffff: mknod */
   unsigned char parent_obj_id_len;
   char*  parent_obj_id;
   char*  llname;
   netdisk_obj_info_req_cb_t netfs_readdir_cb;
   void* data_p;
   
   unsigned32 timeout;
   
   struct netdisk_obj_handlers_r* obj_handler;
   netdisk_app_interrupt_cb_t app_rdwr_interrupt_cb;
   void* app_rdwr_interrupt_cb_arg;
   
   netdisk_app_interrupt_cb_t app_fs_interrupt_cb;
   void* app_fs_interrupt_cb_arg;
   OS_EVENT * complete_sem;
   
   int err;
}NetDisk_Obj_Open_Req_t;    

typedef struct {
    struct netif * netif;
    char* adr;
    INT32U log_type;
    char* username;
    char* password;
    netdisk_app_interrupt_cb_t interrupt_cb;
}NetDisk_Start_Req_t;    

typedef struct {
    INT16U width;
    INT16U height;
}NetDisk_SetOpt_Req_t;    

typedef void (*msg_process_t)(void* arg1,void* arg2,void* arg3,void* arg4); 
typedef struct NETDISK_MSG{
    msg_process_t msg_process;
    void* arg1;
    void* arg2;
    void* arg3;
    void* arg4;
}NETDISK_MSG_t;

#ifndef RC_OK
#define RC_OK 0x00000000
#endif

#define NETDISK_RC_UNKNOWN_ERR              0x00000001
#define NETDISK_RC_NETWORK_ERR              0x00000002
#define NETDISK_RC_USERNAME_PASSWORD_ERR    0x00000003

extern void netdisk_url2filename(char* url, char* name, int max_len, char* ext_name);
extern INT32S netdisk_init_devdir();
extern OS_EVENT  * pNetDiskMsgQueue ;  
extern AVSysEvent_t EV_NETDISK_SIGNAL;
INT32U netdisk_get_empty_rss_slot(char* adr);
INT32U netdisk_release_empty_rss_slot(char* adr);

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?