[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] merge with xen-unstable.hg



# HG changeset patch
# User awilliam@xxxxxxxxxxxx
# Date 1175019708 21600
# Node ID 14aeb7981e4ebbbdc2d7d171a2b55b79642bc0a1
# Parent  2c59917255f7f41952bd522a20f3ea022d67f2c4
# Parent  10fcea8f51cd28bd7970efb561da9fba879b151f
merge with xen-unstable.hg
---
 .hgignore                                |    1 
 tools/python/xen/xend/XendDomainInfo.py  |   29 ++-
 tools/security/python/xensec_gen/main.py |  226 +++++++++++++++----------------
 xen/arch/x86/hvm/pmtimer.c               |    2 
 xen/include/public/hvm/save.h            |    2 
 5 files changed, 131 insertions(+), 129 deletions(-)

diff -r 2c59917255f7 -r 14aeb7981e4e .hgignore
--- a/.hgignore Tue Mar 27 09:07:51 2007 -0600
+++ b/.hgignore Tue Mar 27 12:21:48 2007 -0600
@@ -18,6 +18,7 @@
 ^cscope.*$
 ^[^/]*\.bz2$
 ^\.config$
+^\.pc
 ^TAGS$
 ^tags$
 ^build.*$
diff -r 2c59917255f7 -r 14aeb7981e4e tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py   Tue Mar 27 09:07:51 2007 -0600
+++ b/tools/python/xen/xend/XendDomainInfo.py   Tue Mar 27 12:21:48 2007 -0600
@@ -556,7 +556,8 @@ class XendDomainInfo:
         return self.getDeviceController(deviceClass).destroyDevice(devid, 
force)
 
     def getDeviceSxprs(self, deviceClass):
-        if self.state == DOM_STATE_RUNNING:
+        if self.state == DOM_STATE_RUNNING \
+               or self.state == DOM_STATE_PAUSED:
             return self.getDeviceController(deviceClass).sxprs()
         else:
             sxprs = []
@@ -572,8 +573,8 @@ class XendDomainInfo:
         """Set the memory target of this domain.
         @param target: In MiB.
         """
-        log.debug("Setting memory target of domain %s (%d) to %d MiB.",
-                  self.info['name_label'], self.domid, target)
+        log.debug("Setting memory target of domain %s (%s) to %d MiB.",
+                  self.info['name_label'], str(self.domid), target)
         
         if target <= 0:
             raise XendError('Invalid memory size')
@@ -585,29 +586,28 @@ class XendDomainInfo:
         if self.domid >= 0:
             self.storeVm("memory", target)
             self.storeDom("memory/target", target << 10)
-        else:
-            xen.xend.XendDomain.instance().managed_config_save(self)
+        xen.xend.XendDomain.instance().managed_config_save(self)
 
     def setMemoryMaximum(self, limit):
         """Set the maximum memory limit of this domain
         @param limit: In MiB.
         """
-        log.debug("Setting memory maximum of domain %s (%d) to %d MiB.",
-                  self.info['name_label'], self.domid, limit)
+        log.debug("Setting memory maximum of domain %s (%s) to %d MiB.",
+                  self.info['name_label'], str(self.domid), limit)
 
         if limit <= 0:
             raise XendError('Invalid memory size')
 
-        self.info['memory_static_max'] = limit
+        MiB = 1024 * 1024
+        self.info['memory_static_max'] = limit * MiB
+
         if self.domid >= 0:
             maxmem = int(limit) * 1024
             try:
                 return xc.domain_setmaxmem(self.domid, maxmem)
             except Exception, ex:
                 raise XendError(str(ex))
-        else:
-            self.info['memory_dynamic_max'] = limit
-            xen.xend.XendDomain.instance().managed_config_save(self)
+        xen.xend.XendDomain.instance().managed_config_save(self)
 
 
     def getVCPUInfo(self):
@@ -2302,8 +2302,8 @@ class XendDomainInfo:
         if not dev_uuid:
             raise XendError('Failed to create device')
 
-        if self.state == XEN_API_VM_POWER_STATE_RUNNING:
-            
+        if self.state == XEN_API_VM_POWER_STATE_RUNNING or \
+               self.state == XEN_API_VM_POWER_STATE_PAUSED:
             _, config = self.info['devices'][dev_uuid]
             
             if vdi_image_path.startswith('tap'):
@@ -2409,7 +2409,8 @@ class XendDomainInfo:
             raise XendError('Device does not exist')
 
         try:
-            if self.state == XEN_API_VM_POWER_STATE_RUNNING:
+            if self.state == XEN_API_VM_POWER_STATE_RUNNING \
+                   or self.state == XEN_API_VM_POWER_STATE_PAUSED:
                 _, config = self.info['devices'][dev_uuid]
                 devid = config.get('devid')
                 if devid != None:
diff -r 2c59917255f7 -r 14aeb7981e4e tools/security/python/xensec_gen/main.py
--- a/tools/security/python/xensec_gen/main.py  Tue Mar 27 09:07:51 2007 -0600
+++ b/tools/security/python/xensec_gen/main.py  Tue Mar 27 12:21:48 2007 -0600
@@ -39,147 +39,147 @@ gGroup    = 'nobody'
 gGroup    = 'nobody'
 
 def usage( ):
-       print >>sys.stderr, 'Usage:  ' + sys.argv[0] + ' [OPTIONS]'
-       print >>sys.stderr, '  OPTIONS:'
-       print >>sys.stderr, '  -p, --httpport'
-       print >>sys.stderr, '     The port on which the http server is to 
listen'
-       print >>sys.stderr, '     (default: ' + str( gHttpPort ) + ')'
-       print >>sys.stderr, '  -d, --httpdir'
-       print >>sys.stderr, '     The directory where the http server is to 
serve pages from'
-       print >>sys.stderr, '     (default: ' + gHttpDir + ')'
-       print >>sys.stderr, '  -l, --logfile'
-       print >>sys.stderr, '     The file in which to log messages generated 
by this command'
-       print >>sys.stderr, '     (default: ' + gLogFile + ')'
-       print >>sys.stderr, '  -u, --user'
-       print >>sys.stderr, '     The user under which this command is to run.  
This parameter'
-       print >>sys.stderr, '     is only used when invoked under the "root" 
user'
-       print >>sys.stderr, '     (default: ' + gUser + ')'
-       print >>sys.stderr, '  -g, --group'
-       print >>sys.stderr, '     The group under which this command is to run. 
 This parameter'
-       print >>sys.stderr, '     is only used when invoked under the "root" 
user'
-       print >>sys.stderr, '     (default: ' + gGroup + ')'
-       print >>sys.stderr, '  -f'
-       print >>sys.stderr, '     Run the command in the foreground.  The 
logfile option will be'
-       print >>sys.stderr, '     ignored and all output will be directed to 
stdout and stderr.'
-       print >>sys.stderr, '  -h, --help'
-       print >>sys.stderr, '     Display the command usage information'
+    print >>sys.stderr, 'Usage:  ' + sys.argv[0] + ' [OPTIONS]'
+    print >>sys.stderr, '  OPTIONS:'
+    print >>sys.stderr, '  -p, --httpport'
+    print >>sys.stderr, '     The port on which the http server is to listen'
+    print >>sys.stderr, '     (default: ' + str( gHttpPort ) + ')'
+    print >>sys.stderr, '  -d, --httpdir'
+    print >>sys.stderr, '     The directory where the http server is to serve 
pages from'
+    print >>sys.stderr, '     (default: ' + gHttpDir + ')'
+    print >>sys.stderr, '  -l, --logfile'
+    print >>sys.stderr, '     The file in which to log messages generated by 
this command'
+    print >>sys.stderr, '     (default: ' + gLogFile + ')'
+    print >>sys.stderr, '  -u, --user'
+    print >>sys.stderr, '     The user under which this command is to run.  
This parameter'
+    print >>sys.stderr, '     is only used when invoked under the "root" user'
+    print >>sys.stderr, '     (default: ' + gUser + ')'
+    print >>sys.stderr, '  -g, --group'
+    print >>sys.stderr, '     The group under which this command is to run.  
This parameter'
+    print >>sys.stderr, '     is only used when invoked under the "root" user'
+    print >>sys.stderr, '     (default: ' + gGroup + ')'
+    print >>sys.stderr, '  -f'
+    print >>sys.stderr, '     Run the command in the foreground.  The logfile 
option will be'
+    print >>sys.stderr, '     ignored and all output will be directed to 
stdout and stderr.'
+    print >>sys.stderr, '  -h, --help'
+    print >>sys.stderr, '     Display the command usage information'
 
 def runServer( aServerPort,
                aServerClass  = BaseHTTPServer.HTTPServer,
                aHandlerClass = CGIHTTPServer.CGIHTTPRequestHandler ):
-       serverAddress = ( '', aServerPort )
-       httpd = aServerClass( serverAddress, aHandlerClass )
-       httpd.serve_forever( )
+    serverAddress = ( '', aServerPort )
+    httpd = aServerClass( serverAddress, aHandlerClass )
+    httpd.serve_forever( )
 
 def daemonize( aHttpDir, aLogFile, aUser, aGroup, aFork = 'true' ):
-       # Do some pre-daemon activities
-       os.umask( 027 )
-       if os.getuid( ) == 0:
-               # If we are running as root, we will change that
-               uid = pwd.getpwnam( aUser )[2]
-               gid = grp.getgrnam( aGroup )[2]
+    # Do some pre-daemon activities
+    os.umask( 027 )
+    if os.getuid( ) == 0:
+        # If we are running as root, we will change that
+        uid = pwd.getpwnam( aUser )[2]
+        gid = grp.getgrnam( aGroup )[2]
 
-               if aFork == 'true':
-                       # Change the owner of the log file to the user/group
-                       #   under which the daemon is to run
-                       flog = open( aLogFile, 'a' )
-                       flog.close( )
-                       os.chown( aLogFile, uid, gid )
+        if aFork == 'true':
+            # Change the owner of the log file to the user/group
+            #   under which the daemon is to run
+            flog = open( aLogFile, 'a' )
+            flog.close( )
+            os.chown( aLogFile, uid, gid )
 
-               # Change the uid/gid of the process
-               os.setgid( gid )
-               os.setuid( uid )
+        # Change the uid/gid of the process
+        os.setgid( gid )
+        os.setuid( uid )
 
-       # Change to the HTTP directory
-       os.chdir( aHttpDir )
+    # Change to the HTTP directory
+    os.chdir( aHttpDir )
 
-       if aFork == 'true':
-               # Do first fork
-               try:
-                       pid = os.fork( )
-                       if pid:
-                               # Parent process
-                               return pid
+    if aFork == 'true':
+        # Do first fork
+        try:
+            pid = os.fork( )
+            if pid:
+            # Parent process
+                return pid
 
-               except OSError, e:
-                       raise Exception, e
+        except OSError, e:
+            raise Exception, e
 
-               # First child process, create a new session
-               os.setsid( )
+        # First child process, create a new session
+        os.setsid( )
 
-               # Do second fork
-               try:
-                       pid = os.fork( )
-                       if pid:
-                               # Parent process
-                               os._exit( 0 )
+        # Do second fork
+        try:
+            pid = os.fork( )
+            if pid:
+                # Parent process
+                os._exit( 0 )
 
-               except OSError, e:
-                       raise Exception, e
+        except OSError, e:
+            raise Exception, e
 
-               # Reset stdin/stdout/stderr
-               fin  = open( '/dev/null',  'r' )
-               flog = open( aLogFile, 'a' )
-               os.dup2( fin.fileno( ),  sys.stdin.fileno( ) )
-               os.dup2( flog.fileno( ), sys.stdout.fileno( ) )
-               os.dup2( flog.fileno( ), sys.stderr.fileno( ) )
+        # Reset stdin/stdout/stderr
+        fin  = open( '/dev/null',  'r' )
+        flog = open( aLogFile, 'a' )
+        os.dup2( fin.fileno( ),  sys.stdin.fileno( ) )
+        os.dup2( flog.fileno( ), sys.stdout.fileno( ) )
+        os.dup2( flog.fileno( ), sys.stderr.fileno( ) )
 
 def main( ):
-       httpPort = gHttpPort
-       httpDir  = gHttpDir
-       logFile  = gLogFile
-       user     = gUser
-       group    = gGroup
-       doFork   = 'true'
+    httpPort = gHttpPort
+    httpDir  = gHttpDir
+    logFile  = gLogFile
+    user     = gUser
+    group    = gGroup
+    doFork   = 'true'
 
-       shortOpts = 'd:p:l:u:g:fh'
-       longOpts  = [ 'httpdir=', 'httpport=', 'logfile=', 'user=', 'group=', 
'help' ]
-       try:
-               opts, args = getopt.getopt( sys.argv[1:], shortOpts, longOpts )
+    shortOpts = 'd:p:l:u:g:fh'
+    longOpts  = [ 'httpdir=', 'httpport=', 'logfile=', 'user=', 'group=', 
'help' ]
+    try:
+        opts, args = getopt.getopt( sys.argv[1:], shortOpts, longOpts )
 
-       except getopt.GetoptError, e:
-               print >>sys.stderr, e
-               usage( )
-               sys.exit( )
+    except getopt.GetoptError, e:
+        print >>sys.stderr, e
+        usage( )
+        sys.exit( )
 
-       if len( args ) != 0:
-               print >>sys.stderr, 'Error: command arguments are not supported'
-               usage( )
-               sys.exit( )
+    if len( args ) != 0:
+        print >>sys.stderr, 'Error: command arguments are not supported'
+        usage( )
+        sys.exit( )
 
-       for opt, opt_value in opts:
-               if opt in ( '-h', '--help' ):
-                       usage( )
-                       sys.exit( )
+    for opt, opt_value in opts:
+        if opt in ( '-h', '--help' ):
+            usage( )
+            sys.exit( )
 
-               if opt in ( '-d', '--httpdir' ):
-                       httpDir = opt_value
+        if opt in ( '-d', '--httpdir' ):
+            httpDir = opt_value
 
-               if opt in ( '-p', '--httpport' ):
-                       try:
-                               httpPort = int( opt_value )
-                       except:
-                               print >>sys.stderr, 'Error: HTTP port is not 
valid'
-                               usage( )
-                               sys.exit( )
+        if opt in ( '-p', '--httpport' ):
+            try:
+                httpPort = int( opt_value )
+            except:
+                print >>sys.stderr, 'Error: HTTP port is not valid'
+                usage( )
+                sys.exit( )
 
-               if opt in ( '-l', '--logfile' ):
-                       logFile = opt_value
+        if opt in ( '-l', '--logfile' ):
+            logFile = opt_value
 
-               if opt in ( '-u', '--user' ):
-                       user = opt_value
+        if opt in ( '-u', '--user' ):
+            user = opt_value
 
-               if opt in ( '-g', '--group' ):
-                       group = opt_value
+        if opt in ( '-g', '--group' ):
+            group = opt_value
 
-               if opt in ( '-f' ):
-                       doFork = 'false'
+        if opt in ( '-f' ):
+            doFork = 'false'
 
-       pid = daemonize( httpDir, logFile, user, group, doFork )
-       if pid > 0:
-               sys.exit( )
+    pid = daemonize( httpDir, logFile, user, group, doFork )
+    if pid > 0:
+        sys.exit( )
 
-       runServer( httpPort )
+    runServer( httpPort )
 
 if __name__ == '__main__':
-       main( )
+    main( )
diff -r 2c59917255f7 -r 14aeb7981e4e xen/arch/x86/hvm/pmtimer.c
--- a/xen/arch/x86/hvm/pmtimer.c        Tue Mar 27 09:07:51 2007 -0600
+++ b/xen/arch/x86/hvm/pmtimer.c        Tue Mar 27 12:21:48 2007 -0600
@@ -27,7 +27,7 @@
 #define PM1a_EN_ADDR  (ACPI_PM1A_EVT_BLK_ADDRESS + 2)
 #define TMR_VAL_ADDR  (ACPI_PM_TMR_BLK_ADDRESS)
 
-/* The interesting bit of the PM1a_STS register */
+/* The interesting bits of the PM1a_STS register */
 #define TMR_STS    (1 << 0)
 #define PWRBTN_STS (1 << 5)
 #define GBL_STS    (1 << 8)
diff -r 2c59917255f7 -r 14aeb7981e4e xen/include/public/hvm/save.h
--- a/xen/include/public/hvm/save.h     Tue Mar 27 09:07:51 2007 -0600
+++ b/xen/include/public/hvm/save.h     Tue Mar 27 12:21:48 2007 -0600
@@ -392,7 +392,7 @@ DECLARE_HVM_SAVE_TYPE(HPET, 12, struct h
  */
 
 struct hvm_hw_pmtimer {
-    uint32_t tmr_val;   /* PM_TMR_BLK.TMR_VAL: 24bit free-running counter */
+    uint32_t tmr_val;   /* PM_TMR_BLK.TMR_VAL: 32bit free-running counter */
     uint16_t pm1a_sts;  /* PM1a_EVT_BLK.PM1a_STS: status register */
     uint16_t pm1a_en;   /* PM1a_EVT_BLK.PM1a_EN: enable register */
 };

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.