aboutsummaryrefslogtreecommitdiffstats
path: root/android_avm.c
diff options
context:
space:
mode:
Diffstat (limited to 'android_avm.c')
-rw-r--r--android_avm.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/android_avm.c b/android_avm.c
new file mode 100644
index 0000000..277233f
--- /dev/null
+++ b/android_avm.c
@@ -0,0 +1,42 @@
+#include "android_avm.h"
+#include "android_utils.h"
+#include <string.h>
+
+int
+avm_check_name( const char* avm_name )
+{
+ static const char* goodchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-0123456789.";
+ int len = strlen(avm_name);
+ int slen = strspn(avm_name, goodchars);
+
+ return (len == slen);
+}
+
+
+char*
+avm_bufprint_default_root( char* p, char* end )
+{
+ /* at the moment, store in $CONFIG_PATH/VMs */
+ return bufprint_config_path(p, end, "VMs" );
+}
+
+char*
+avm_bufprint_avm_dir( char* p, char* end, const char* avm_name, const char* root_dir )
+{
+ if (root_dir) {
+ int len = strlen(root_dir);
+ /* get rid of trailing path separators */
+ while (len > 0 && root_dir[len-1] == PATH_SEP[0])
+ len -= 1;
+
+ p = bufprint( p, end, "%.*s", len, root_dir );
+ } else {
+ p = avm_bufprint_default_root( p, end );
+
+ p = bufprint( p, end, PATH_SEP "%s", avm_name );
+
+ return p;
+}
+
+
+