Play with some possible *.api code.
authorRichard W.M. Jones <rjones@redhat.com>
Wed, 28 Dec 2011 20:43:27 +0000 (20:43 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Wed, 28 Dec 2011 20:43:27 +0000 (20:43 +0000)
APIs/block_devices.api [new file with mode: 0644]
APIs/mkdir.api [new file with mode: 0644]
APIs/mknod.api [new file with mode: 0644]
APIs/processes.api [new file with mode: 0644]

diff --git a/APIs/block_devices.api b/APIs/block_devices.api
new file mode 100644 (file)
index 0000000..8d4fc30
--- /dev/null
@@ -0,0 +1,4 @@
+object block_device
+  dir_list "/sys/block/[hsv]d[a-z]*"
+
+  property string name << return safe_strdup ($basename); >>
diff --git a/APIs/mkdir.api b/APIs/mkdir.api
new file mode 100644 (file)
index 0000000..2070c41
--- /dev/null
@@ -0,0 +1 @@
+function err mkdir (pathname path, fileperm perm) (* implicit *);;
diff --git a/APIs/mknod.api b/APIs/mknod.api
new file mode 100644 (file)
index 0000000..3ed3c55
--- /dev/null
@@ -0,0 +1,18 @@
+function
+err mknod_char (pathname path, fileperm perm, int<??> major, int<??> minor)
+<<
+  return mknod (path, S_IFCHR | perm, makedev (major, minor));
+>>
+<:doc<
+
+
+
+>>
+
+;;
+
+(*
+mknod_block
+mkfifo
+mknod_socket
+*)
diff --git a/APIs/processes.api b/APIs/processes.api
new file mode 100644 (file)
index 0000000..090245e
--- /dev/null
@@ -0,0 +1,34 @@
+object process
+  dir_list "/proc/[1-9]*"
+
+  constructor <<
+    $pid = atoi ($basename);
+  >>
+
+  property int pid (* implicit *)
+
+  property string short_command
+  <<
+    // some code to parse $filename/stat
+  >>
+  property char state
+  <<
+    // some code to parse $filename/stat
+  >>
+
+  writable property foo << ... >>
+
+  method err kill (signal sig)
+  <<
+    return kill ($pid, sig);
+  >>
+  method bool exists ()
+  <<
+    int r = kill ($pid, 0);
+    if (r == 0)
+      return 1;
+    if (r == -1 && errno == ESRCH)
+      return 0;
+    save_errno ();
+    return -1;
+  >>