/* Copyright (C) 2007-2008 The Android Open Source Project ** ** This software is licensed under the terms of the GNU General Public ** License version 2, as published by the Free Software Foundation, and ** may be copied, distributed, and modified under those terms. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. */ #ifndef _android_sim_card_h #define _android_sim_card_h #include "gsm.h" typedef struct ASimCardRec_* ASimCard; extern ASimCard asimcard_create( int from_port ); extern void asimcard_destroy( ASimCard sim ); typedef enum { A_SIM_STATUS_ABSENT = 0, A_SIM_STATUS_NOT_READY, A_SIM_STATUS_READY, A_SIM_STATUS_PIN, A_SIM_STATUS_PUK, A_SIM_STATUS_NETWORK_PERSONALIZATION } ASimStatus; extern ASimStatus asimcard_get_status( ASimCard sim ); extern void asimcard_set_status( ASimCard sim, ASimStatus status ); extern const char* asimcard_get_pin( ASimCard sim ); extern const char* asimcard_get_puk( ASimCard sim ); extern void asimcard_set_pin( ASimCard sim, const char* pin ); extern void asimcard_set_puk( ASimCard sim, const char* puk ); extern int asimcard_check_pin( ASimCard sim, const char* pin ); extern int asimcard_check_puk( ASimCard sim, const char* puk, const char* pin ); /* Restricted SIM Access command, as defined by 8.18 of 3GPP 27.007 */ typedef enum { A_SIM_CMD_READ_BINARY = 176, A_SIM_CMD_READ_RECORD = 178, A_SIM_CMD_GET_RESPONSE = 192, A_SIM_CMD_UPDATE_BINARY = 214, A_SIM_CMD_UPDATE_RECORD = 220, A_SIM_CMD_STATUS = 242 } ASimCommand; extern const char* asimcard_io( ASimCard sim, const char* cmd ); #endif /* _android_sim_card_h */