Home | History | Annotate | Download | only in utils
      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 
     13 #ifndef _ANDROID_UTILS_FILELOCK_H
     14 #define _ANDROID_UTILS_FILELOCK_H
     15 
     16 #include "android/utils/compiler.h"
     17 
     18 ANDROID_BEGIN_HEADER
     19 
     20 /** FILE LOCKS SUPPORT
     21  **
     22  ** a FileLock is useful to prevent several emulator instances from using the same
     23  ** writable file (e.g. the userdata.img disk images).
     24  **
     25  ** create a FileLock object with filelock_create(), the function will return
     26  ** NULL only if the corresponding path is already locked by another emulator
     27  ** of if the path is read-only.
     28  **
     29  ** note that 'path' can designate a non-existing path and that the lock creation
     30  ** function can detect stale file locks that can longer when the emulator
     31  ** crashes unexpectedly, and will happily clean them for you.
     32  **
     33  ** you can call filelock_release() to release a file lock explicitely. otherwise
     34  ** all file locks are automatically released when the program exits.
     35  **/
     36 
     37 typedef struct FileLock  FileLock;
     38 
     39 extern FileLock*  filelock_create ( const char*  path );
     40 extern void       filelock_release( FileLock*  lock );
     41 
     42 ANDROID_END_HEADER
     43 
     44 #endif /* _ANDROID_UTILS_FILELOCK_H */
     45