1/* Copyright (C) 2007-2008 The Android Open Source Project 2** 3** This software is licensed under the terms of the GNU General Public 4** License version 2, as published by the Free Software Foundation, and 5** may be copied, distributed, and modified under those terms. 6** 7** This program is distributed in the hope that it will be useful, 8** but WITHOUT ANY WARRANTY; without even the implied warranty of 9** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10** GNU General Public License for more details. 11*/ 12#ifndef _android_sim_card_h 13#define _android_sim_card_h 14 15#include "gsm.h" 16 17typedef struct ASimCardRec_* ASimCard; 18 19extern ASimCard asimcard_create( int from_port ); 20extern void asimcard_destroy( ASimCard sim ); 21 22typedef enum { 23 A_SIM_STATUS_ABSENT = 0, 24 A_SIM_STATUS_NOT_READY, 25 A_SIM_STATUS_READY, 26 A_SIM_STATUS_PIN, 27 A_SIM_STATUS_PUK, 28 A_SIM_STATUS_NETWORK_PERSONALIZATION 29} ASimStatus; 30 31extern ASimStatus asimcard_get_status( ASimCard sim ); 32extern void asimcard_set_status( ASimCard sim, ASimStatus status ); 33 34extern const char* asimcard_get_pin( ASimCard sim ); 35extern const char* asimcard_get_puk( ASimCard sim ); 36extern void asimcard_set_pin( ASimCard sim, const char* pin ); 37extern void asimcard_set_puk( ASimCard sim, const char* puk ); 38 39extern int asimcard_check_pin( ASimCard sim, const char* pin ); 40extern int asimcard_check_puk( ASimCard sim, const char* puk, const char* pin ); 41 42/* Restricted SIM Access command, as defined by 8.18 of 3GPP 27.007 */ 43typedef enum { 44 A_SIM_CMD_READ_BINARY = 176, 45 A_SIM_CMD_READ_RECORD = 178, 46 A_SIM_CMD_GET_RESPONSE = 192, 47 A_SIM_CMD_UPDATE_BINARY = 214, 48 A_SIM_CMD_UPDATE_RECORD = 220, 49 A_SIM_CMD_STATUS = 242 50} ASimCommand; 51 52extern const char* asimcard_io( ASimCard sim, const char* cmd ); 53 54#endif /* _android_sim_card_h */ 55