528 lines
13 KiB
C
528 lines
13 KiB
C
#ifndef _SF_MCU_H
|
|
#define _SF_MCU_H
|
|
|
|
|
|
|
|
#ifdef __KERNEL__
|
|
#include <linux/delay.h>
|
|
//#include <mach/rcw_macro.h>
|
|
#include "kwrap/type.h"
|
|
//#include "kwrap/semaphore.h"
|
|
#include "kwrap/flag.h"
|
|
//#include "sf_ip6303.h"
|
|
#include <linux/i2c.h>
|
|
#include <linux/slab.h>
|
|
//#include "kflow_audiocapture/ctl_aud.h"
|
|
#else
|
|
#include "kwrap/type.h"
|
|
//#include "kwrap/semaphore.h"
|
|
#include "kwrap/flag.h"
|
|
//#include "sf_ip6303.h"
|
|
//#include "kflow_audiocapture/ctl_aud.h"
|
|
#include "rtos_na51089/kdrv_i2c.h"
|
|
#endif
|
|
|
|
#define SUCCESS 0
|
|
#define FAIL 1
|
|
|
|
|
|
#define SF_SEND_LIST_ITEM_LENGTH 15
|
|
|
|
#define SF_MCU_NIGHT_MODE_LUMINANCE 600
|
|
|
|
#define DIGITAL_PIR 1
|
|
|
|
#define SF_DC_IN_VOLATAGE 70
|
|
#define SF_LI_IN_VOLATAGE 99
|
|
#define SF_LI_BATT_RECOVERY 99
|
|
#define SF_OTHER_BATT_RECOVERY 99
|
|
#define SF_BATT_RECOVERY 72 //S530
|
|
|
|
#define SF_DATE_TIME_YEAR_MAX 2050
|
|
#define SF_DATE_TIME_YEAR_MIN 2021
|
|
|
|
/*REG START MODE*/
|
|
#define MCU_MODE_AUTO 0x00
|
|
#define MCU_MODE_OFF 0x40
|
|
#define MCU_MODE_SETUP 0x80
|
|
|
|
#define PWR_OFF 0x00
|
|
#define PWR_ON_SETUP 0x01
|
|
#define PWR_ON_TIMELAPSE 0x02
|
|
#define PWR_ON_AUTO 0x03
|
|
#define PWR_ON_SMS 0x04
|
|
#define PWR_ON_PIR 0x05
|
|
#define PWR_ON_LBAT 0x06
|
|
#define PWR_ON_SERVER 0x07
|
|
#define PWR_ON_DAILY_REPORT 0x08
|
|
#define PWR_ON_USB 0x09
|
|
#define PWR_ON_GPRS_INIT 0x0A
|
|
#define PWR_ON_TIME_SYNC 0x0B
|
|
#define PWR_ON_TIME_SEND 0x0C
|
|
|
|
/*REG FUNCTION_SWTICH*/
|
|
#define PIR_OFF 0x00
|
|
#define PIR_ON 0x01
|
|
#define TIMELAPSE_ON 0x02
|
|
#define PIR_DELAY_ON 0x04
|
|
#define TIME_SYNC_ON 0x08
|
|
#define DAILY_REPORT_ON 0x10
|
|
#define DAILY_SEND1_ON 0x20
|
|
#define DAILY_SEND2_ON 0x40
|
|
#define GPS_ALWAYS_ON 0x80
|
|
|
|
/*REG PIR_SENSITIVITY*/
|
|
#define DIGITAL_PIR_SENSITIVITY_MASK 0xFF
|
|
#define GPRS_ON 0x80
|
|
#define GPRS_MODE_MASK 0x60
|
|
#define GPRS_DAILY 0x00
|
|
#define GPRS_INSTANT 0x40
|
|
#define GPRS_HYBRID 0x20
|
|
#define TIME_SYNC_RESET 0x10
|
|
#define PIR_SEN_HIGH 0x00
|
|
#define PIR_SEN_MIDDLE 0x01
|
|
#define PIR_SEN_LOW 0x02
|
|
|
|
/*REG DSP_BUSY*/
|
|
#define DSP_BUSY 0x01
|
|
#define DSP_IDLE 0x00
|
|
|
|
/*REG SYS_STATUS*/
|
|
#define SYS_SD_INSERT 0x01
|
|
#define SYS_MENORY_FULL 0x02
|
|
#define SYS_USB_INSERT 0x04
|
|
#define SYS_SOFT_UPDATE 0x08
|
|
#define GPRS_RESTART 0x10
|
|
#define POWER_CYCLE 0x20
|
|
#define SYS_CAM_OFF 0x40
|
|
#define PIR_RESTART 0x80
|
|
|
|
/*REG POWEROFF_TYPE*/
|
|
#define PWROFF_NOUSE 0x00
|
|
#define PWROFF_GPRS_INIT 0x01
|
|
#define PWROFF_SMS_RESTART 0x02
|
|
#define PWROFF_LBAT 0x40
|
|
#define PWROFF_TIMEOUT 0x80
|
|
|
|
/*REG GPS_POWER_TIMER_CLEAR */
|
|
#define GPS_COUNTDOWM_RESET 0x01
|
|
|
|
/*REG GPS_POWER_CTRL */
|
|
#define GPS_PWR_ON 0x01
|
|
|
|
/*REG FUNCTION_SWTICH1*/
|
|
#define DAILY_SEND3_ON 0x01
|
|
#define DAILY_SEND4_ON 0x02
|
|
|
|
/*REG FUNCTION_SWTICH2*/
|
|
#define WDT_OFF 0x01
|
|
#define DEBUG_MODE_ON 0x02
|
|
|
|
#if 0//defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_)
|
|
#define REG_SIZE 82
|
|
|
|
typedef enum
|
|
{
|
|
MCU_SUB_VER,
|
|
MCU_VER,
|
|
START_MODE,
|
|
LUMINANCE_L,
|
|
LUMINANCE_H,
|
|
SF_RTC_YEAR,
|
|
SF_RTC_MONTH,
|
|
SF_RTC_DAY,
|
|
SF_RTC_HOUR,
|
|
SF_RTC_MINUTE,
|
|
SF_RTC_SEC,//10
|
|
SF_RTC_WEEK,
|
|
FUNCTION_SWTICH,
|
|
TIMELAPSE_HOUR,
|
|
TIMELAPSE_MINUTE,
|
|
TIMELAPSE_SEC,
|
|
PIR_DELAY_HOUR,
|
|
PIR_DELAY_MINUTE,
|
|
PIR_DELAY_SEC,
|
|
TIME_SYNC_HOUR,
|
|
TIME_SYNC_MINUTE,//20
|
|
TIME_SYNC_SEC,
|
|
DAILY_REPORT_HOUR,
|
|
DAILY_REPORT_MINUTE,
|
|
DAILY_SEND1_HOUR,
|
|
DAILY_SEND1_MINUTE,
|
|
DAILY_SEND2_HOUR,
|
|
DAILY_SEND2_MINUTE,
|
|
ANALOG_PIR_SENSITIVITY,
|
|
DIGITAL_PIR_SENSITIVITY,
|
|
DIGITAL_PIR_CFG,//30
|
|
DSP_BUSY_STATUS,
|
|
SF_SYS_STATUS,
|
|
POWEROFF_TYPE,
|
|
WDT_TIME,
|
|
VBAT_LOW_WARN_VAL,
|
|
VBAT_RECOVER_VAL,
|
|
|
|
WORKTIME1_SWITCH,
|
|
WORKTIME1_START_HOUR,
|
|
WORKTIME1_START_MINUTE,
|
|
WORKTIME1_STOP_HOUR,//40
|
|
WORKTIME1_STOP_MINUTE,
|
|
|
|
WORKTIME2_SWITCH,
|
|
WORKTIME2_START_HOUR,
|
|
WORKTIME2_START_MINUTE,
|
|
WORKTIME2_STOP_HOUR,
|
|
WORKTIME2_STOP_MINUTE,
|
|
|
|
WORKTIME3_SWITCH,
|
|
WORKTIME3_START_HOUR,
|
|
WORKTIME3_START_MINUTE,
|
|
WORKTIME3_STOP_HOUR,//50
|
|
WORKTIME3_STOP_MINUTE,
|
|
|
|
WORKTIME4_SWITCH,
|
|
WORKTIME4_START_HOUR,
|
|
WORKTIME4_START_MINUTE,
|
|
WORKTIME4_STOP_HOUR,
|
|
WORKTIME4_STOP_MINUTE,
|
|
|
|
WORKTIME5_SWITCH,
|
|
WORKTIME5_START_HOUR,
|
|
WORKTIME5_START_MINUTE,
|
|
WORKTIME5_STOP_HOUR,//60
|
|
WORKTIME5_STOP_MINUTE,
|
|
|
|
WORKTIME6_SWITCH,
|
|
WORKTIME6_START_HOUR,
|
|
WORKTIME6_START_MINUTE,
|
|
WORKTIME6_STOP_HOUR,
|
|
WORKTIME6_STOP_MINUTE,
|
|
|
|
GPS_POWER_TIMER_CLEAR,
|
|
GPS_POWER_CTRL,
|
|
DSP_WRITE_FLG,
|
|
FUNCTION_SWTICH1,//70
|
|
DAILY_SEND3_HOUR,
|
|
DAILY_SEND3_MINUTE,
|
|
DAILY_SEND4_HOUR,
|
|
DAILY_SEND4_MINUTE,
|
|
FUNCTION_SWTICH2,
|
|
RESERVER7,
|
|
RESERVER8,
|
|
RESERVER9,
|
|
RESERVER10,
|
|
RESERVER11,//80
|
|
RESERVER12,
|
|
RESERVER13,
|
|
RESERVER14,
|
|
}PARA_REG;
|
|
#endif
|
|
typedef enum {
|
|
POWEROFF_COUNTDOWN = 1,
|
|
POWEROFF_PVDOWN,
|
|
POWEROFF_KEYDOWN,
|
|
POWEROFF_KEYREBOOT,
|
|
POWEROFF_GPRSREBOOT,
|
|
POWEROFF_KEYOFF
|
|
}POWEROFF_MODE;
|
|
|
|
typedef enum {
|
|
TRIG_MOTION = 1,
|
|
TRIG_TIMELAPSE,
|
|
TRIG_SETUP,
|
|
TRIG_COMMOND,
|
|
}TRIG_TYPE;
|
|
|
|
|
|
typedef enum {
|
|
WORKING_TIME_0 = 0,
|
|
WORKING_TIME_1,
|
|
WORKING_TIME_2,
|
|
WORKING_TIME_3,
|
|
WORKING_TIME_4,
|
|
WORKING_TIME_5,
|
|
WORKING_TIME_ALL = 0xff,
|
|
}WORKING_TIME_TYPE;
|
|
|
|
//#elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_)
|
|
#if 1
|
|
#define REG_SIZE 91
|
|
|
|
typedef enum
|
|
{
|
|
MCU_SUB_VER = 0,
|
|
MCU_VER_L = 1,
|
|
MCU_VER_H = 2,
|
|
MCU_PRODUCT_INFO = 3,
|
|
START_MODE = 4,
|
|
LUMINANCE_L = 5,
|
|
LUMINANCE_H = 6,
|
|
RESERVER1 = 7,
|
|
|
|
SF_RTC_YEAR = 8,
|
|
SF_RTC_MONTH = 9,
|
|
SF_RTC_DAY = 10,
|
|
SF_RTC_HOUR = 11,
|
|
SF_RTC_MINUTE = 12,
|
|
SF_RTC_SEC = 13,
|
|
SF_RTC_WEEK = 14,
|
|
FUNCTION_SWTICH0 = 15,
|
|
FUNCTION_SWTICH1 = 16,
|
|
FUNCTION_SWTICH2 = 17,
|
|
RESERVER2 = 18,
|
|
|
|
GPS_POWER_TIMER_CLEAR = 19,
|
|
GPS_POWER_CTRL = 20,
|
|
ANALOG_PIR_SENSITIVITY = 21,
|
|
DIGITAL_PIR_SENSITIVITY= 22,
|
|
DIGITAL_PIR_CFG = 23,
|
|
DSP_BUSY_STATUS = 24,
|
|
SF_SYS_STATUS = 25,
|
|
RESERVER3 = 26,
|
|
|
|
POWEROFF_TYPE = 27,
|
|
WDT_TIME = 28,
|
|
VBAT_LOW_WARN_VAL = 29,
|
|
VBAT_RECOVER_VAL = 30,
|
|
RESERVER4 = 31,
|
|
|
|
TIMELAPSE_HOUR = 32,
|
|
TIMELAPSE_MINUTE = 33,
|
|
TIMELAPSE_SEC = 34,
|
|
PIR_DELAY_HOUR = 35,
|
|
PIR_DELAY_MINUTE = 36,
|
|
PIR_DELAY_SEC = 37,
|
|
TIME_SYNC_HOUR = 38,
|
|
TIME_SYNC_MINUTE = 39,
|
|
TIME_SYNC_SEC = 40,
|
|
DAILY_REPORT_HOUR = 41,
|
|
DAILY_REPORT_MINUTE = 42,
|
|
DAILY_SEND1_HOUR = 43,
|
|
DAILY_SEND1_MINUTE = 44,
|
|
DAILY_SEND2_HOUR = 45,
|
|
DAILY_SEND2_MINUTE = 46,
|
|
DAILY_SEND3_HOUR = 47,
|
|
DAILY_SEND3_MINUTE = 48,
|
|
DAILY_SEND4_HOUR = 49,
|
|
DAILY_SEND4_MINUTE = 50,
|
|
RESERVER5 = 51,
|
|
RESERVER6 = 52,
|
|
RESERVER7 = 53,
|
|
|
|
WORKTIME1_SWITCH = 54,
|
|
WORKTIME1_START_HOUR = 55,
|
|
WORKTIME1_START_MINUTE = 56,
|
|
WORKTIME1_STOP_HOUR = 57,
|
|
WORKTIME1_STOP_MINUTE = 58,
|
|
|
|
WORKTIME2_SWITCH = 59,
|
|
WORKTIME2_START_HOUR = 60,
|
|
WORKTIME2_START_MINUTE = 61,
|
|
WORKTIME2_STOP_HOUR = 62,
|
|
WORKTIME2_STOP_MINUTE = 63,
|
|
|
|
WORKTIME3_SWITCH = 64,
|
|
WORKTIME3_START_HOUR = 65,
|
|
WORKTIME3_START_MINUTE = 66,
|
|
WORKTIME3_STOP_HOUR = 67,
|
|
WORKTIME3_STOP_MINUTE = 68,
|
|
|
|
WORKTIME4_SWITCH = 69,
|
|
WORKTIME4_START_HOUR = 70,
|
|
WORKTIME4_START_MINUTE = 71,
|
|
WORKTIME4_STOP_HOUR = 72,
|
|
WORKTIME4_STOP_MINUTE = 73,
|
|
|
|
WORKTIME5_SWITCH = 74,
|
|
WORKTIME5_START_HOUR = 75,
|
|
WORKTIME5_START_MINUTE = 76,
|
|
WORKTIME5_STOP_HOUR = 77,
|
|
WORKTIME5_STOP_MINUTE = 78,
|
|
|
|
WORKTIME6_SWITCH = 79,
|
|
WORKTIME6_START_HOUR = 80,
|
|
WORKTIME6_START_MINUTE = 81,
|
|
WORKTIME6_STOP_HOUR = 82,
|
|
WORKTIME6_STOP_MINUTE = 83,
|
|
|
|
DSP_WRITE_FLG = 84,
|
|
|
|
RESERVER8 = 85,
|
|
RESERVER9 = 86,
|
|
RESERVER10 = 87,
|
|
RESERVER11 = 88,
|
|
RESERVER12 = 89,
|
|
RESERVER13 = 90,
|
|
}PARA_REG;
|
|
#endif
|
|
|
|
|
|
typedef enum {
|
|
SF_MCU_STARTMODE = 0,
|
|
SF_MCU_POWERON,
|
|
SF_MCU_POWEROFF,
|
|
SF_MCU_CTRL_MODULE_PIR,
|
|
SF_MCU_PARA,
|
|
SF_MCU_RESET_MODULE,
|
|
SF_MCU_SOFT_UPDATE,
|
|
SF_MCU_POWER_RESTART,
|
|
SF_MCU_PIR_RESTART,
|
|
SF_MCU_TEST_PIR,
|
|
SF_MCU_PARAM_MAX
|
|
} MCUParam_t;
|
|
|
|
|
|
|
|
typedef enum {
|
|
APP_POWER_OFF_NORMAL,
|
|
APP_POWER_OFF_LENS_ERROR,
|
|
APP_POWER_OFF_BATT_EMPTY,
|
|
APP_POWER_OFF_CHARGE_ERROR,
|
|
APP_POWER_OFF_CARD_PLUG,
|
|
APP_POWER_OFF_USB_PLUG,
|
|
APP_POWER_OFF_TV_PLUG,
|
|
APP_POWER_OFF_HDMI_PLUG,
|
|
APP_POWER_OFF_VIDEO_REC_ERROR, /*slow card, fail to video recording*/
|
|
APP_POWER_OFF_APO,
|
|
} appUiPowerOff_e;
|
|
|
|
typedef enum _SF_I2C_ID {
|
|
SF_I2C_ID_1 = 0,
|
|
SF_I2C_ID_2 = 1,
|
|
SF_I2C_ID_3 = 2,
|
|
SF_I2C_ID_4 = 3,
|
|
SF_I2C_ID_5 = 4,
|
|
ENUM_DUMMY4WORD(SF_I2C_ID)
|
|
} SF_I2C_ID;
|
|
|
|
typedef struct _SF_I2C {
|
|
SF_I2C_ID id;
|
|
UINT32 addr;
|
|
} SF_I2C;
|
|
|
|
typedef struct sfCAMERA_CMD_S
|
|
{
|
|
UINT8 setPara;
|
|
UINT8 moduleUpdateOTA;
|
|
UINT8 moduleUpdateSD;
|
|
UINT8 firmwareUpdateOTA;
|
|
UINT8 getLog;
|
|
UINT8 takePhotoAndSend;
|
|
UINT8 sendHD;
|
|
UINT8 sendVideo;
|
|
UINT8 formatSD;
|
|
UINT8 cameraReset;
|
|
UINT8 cameraRestart;
|
|
UINT8 GotoServerGetPara;
|
|
} SF_CAMERA_CMD_S;
|
|
|
|
#define SF_MAX_PATH_LEN 128
|
|
#define SF_MAX_PIC_LEN 64
|
|
#define SF_SRCFILE_MAX 201
|
|
|
|
typedef enum sf_FILE_TYPE_E
|
|
|
|
{
|
|
SF_FILE_TYPE_PIC_THUM_3M = 0x00,
|
|
SF_FILE_TYPE_PIC_3M = 0x01,
|
|
SF_FILE_TYPE_VIDEO_THUM_WVGA = 0X02,
|
|
SF_FILE_TYPE_VIDEO_WVGA = 0X03,
|
|
SF_FILE_TYPE_VIDEO_THUM_720P = 0X04,
|
|
SF_FILE_TYPE_VIDEO_720P = 0X05,
|
|
SF_FILE_TYPE_VIDEO_THUM_1080P = 0X06,
|
|
SF_FILE_TYPE_VIDEO_1080P = 0X07,
|
|
SF_FILE_TYPE_PIC_THUM_5M = 0x08,
|
|
SF_FILE_TYPE_PIC_5M = 0x09,
|
|
SF_FILE_TYPE_LOG_ERROR = 0x0A,
|
|
SF_FILE_TYPE_CFG = 0x0B,
|
|
SF_FILE_TYPE_TRIGGER = 0x0C,
|
|
|
|
SF_FILE_TYPE_PIC_BIG,
|
|
SF_FILE_TYPE_PIC_SMALL,
|
|
SF_FILE_TYPE_PIC_VIDEO,
|
|
SF_FILE_TYPE_VIDEO,
|
|
SF_FILE_TYPE_LOG_DP, /*dailyreport file*/
|
|
SF_FILE_TYPE_GPS,
|
|
SF_FILE_TYPE_TXT,
|
|
SF_FILE_TYPE_UPDATE,
|
|
SF_FILE_TYPE_FOTA,
|
|
SF_FILE_TYPE_BT_ALARM, /*Bettery Alarm*/
|
|
SF_FILE_TYPE_OTHER,
|
|
SF_FILE_TYPE_BUTT,
|
|
}SF_FILE_TYPE_E;
|
|
|
|
typedef struct sf_FILE_ATTR_S {
|
|
|
|
SF_FILE_TYPE_E enFileTye;
|
|
char thumbfileName[SF_SEND_LIST_ITEM_LENGTH];
|
|
char thumbfilePath[SF_MAX_PATH_LEN];
|
|
char txtfilePath[SF_MAX_PATH_LEN];
|
|
char txtfileName[SF_MAX_PIC_LEN];
|
|
UINT32 thumbfileSize;
|
|
|
|
}SF_FILE_ATTR_S;
|
|
|
|
typedef enum MCU_FLAG_INIT {
|
|
MCU_FLAG_INITT_SYSTEM = 0x00,
|
|
MCU_FLAG_INIT_SENSOR = 0x01,
|
|
MCU_FLAG_INIT_CAPTURE = 0x02,
|
|
MCU_FLAG_INIT_DISPLAY = 0x03,
|
|
MCU_FLAG_INIT_STORAGE = 0x04,
|
|
MCU_FLAG_INIT_FILESYSOK = 0x05,
|
|
MCU_FLAG_INIT_FILENAMINGOK,
|
|
MCU_FLAG_INIT_MEIDA_ENCODER,
|
|
MCU_FLAG_INIT_MEIDA_DECODER,
|
|
MCU_FLAG_INIT_BOOTLOGO,
|
|
MCU_FLAG_INIT_OTHERS,
|
|
MCU_FLAG_INIT_BOOT,
|
|
MCU_FLAG_INIT_MAX_CNT = 32, //flag max bit cnt is 32
|
|
} MCU_FLAG_INIT;
|
|
|
|
typedef struct sf_SRCFILE_ATTR_S {
|
|
UINT8 filecnt;
|
|
SF_FILE_ATTR_S stfileattr[SF_SRCFILE_MAX];
|
|
}SF_SRCFILE_ATTR_S;
|
|
|
|
extern int sf_mcu_test(void);
|
|
extern int sf_mod_init(void);
|
|
extern void sf_mod_exit(void);
|
|
extern UINT8 sf_mcu_wdg_set(UINT8 value);
|
|
extern UINT8 sf_get_power_on_mode(void);
|
|
UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val);
|
|
BOOL sf_is_night_mode(BOOL isRefresh);
|
|
UINT16 sf_mcu_get_irshtter(void);
|
|
|
|
BOOL sf_is_card_full(void);
|
|
UINT32 sf_check_card_full(void);
|
|
|
|
typedef BOOL (*SF_CALLBACK_SD_CMD)(void);
|
|
|
|
void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB);
|
|
|
|
BOOL sf_in_card_exist(void);
|
|
BOOL sf_get_mode_flag(void);
|
|
BOOL sf_is_usb_flag(void);
|
|
void sf_calculate_daily_report(UINT8*dailyHour, UINT8*dailyMin);
|
|
int sf_while_flag(void);
|
|
int sf_init_mcu(void);
|
|
UINT8 sf_get_mcu_rtc_set_sys(void);
|
|
UINT8 sf_get_power_off_flag(void);
|
|
void sf_set_power_off_flag(UINT8 flag);
|
|
UINT32 sf_set_pir_sensitivity(UINT8 pirs);
|
|
void sf_set_module_sleep_flag(UINT8 flag);
|
|
|
|
void sf_file_thumb_cfg_fill(char* filepath,char* fileName,UINT32 size, SF_FILE_TYPE_E enFileType);
|
|
void sf_file_thumb_cfg_set(SF_SRCFILE_ATTR_S *pThumbFileCfgl);
|
|
void sf_file_thumb_cfg_clear(void);
|
|
void sf_file_thumb_cfg_sava(void);
|
|
void sf_add_file_name_to_send_list(char *sendfname);
|
|
UINT8 sf_mcu_power_on_para_get(MCUParam_t attrId);
|
|
void sf_mcu_flag_init(void);
|
|
void sf_mcu_flag_set_done(MCU_FLAG_INIT boot_init);
|
|
void sf_mcu_flag_wait_done(MCU_FLAG_INIT boot_init);
|
|
int sf_mcu_flag_wait_done_timeout(MCU_FLAG_INIT boot_init, int timeout_ms);
|
|
void sf_mcu_flag_clear_done(MCU_FLAG_INIT boot_init);
|
|
UINT32 sf_get_send_pic_sieze(void);
|
|
|
|
#endif
|
|
|