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

[Xen-changelog] [xen master] xen/xsm: Generate the permission in a spec-compliant way



commit 0b81a749a6cbbbbed7462e7b662485e799ac8fee
Author:     Julien Grall <julien.grall@xxxxxxxxxx>
AuthorDate: Fri Feb 20 15:58:28 2015 +0000
Commit:     Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Tue Feb 24 15:54:08 2015 +0000

    xen/xsm: Generate the permission in a spec-compliant way
    
    Each class can contains 32 permisions which are encoded on a word (one
    bit per permission).
    
    Currently the awk script will generate an hexadecimal value for each
    permission. This may result to generate an invalid value on some version
    of awk.
    
    For instance debian jessie is using a version of mawk where (1 << 31)
    will result to 0x7fffffff.
    
    This is because the awk specification requires to do the arithmetic with
    float. So the resulting integer may vary following the implementation.
    
    As the generated headers are only used by C code, generate the
    permission define via "1UL << n".
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
    Acked-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
---
 xen/xsm/flask/policy/mkaccess_vector.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/xsm/flask/policy/mkaccess_vector.sh 
b/xen/xsm/flask/policy/mkaccess_vector.sh
index 8ec87f7..7fa4aaf 100644
--- a/xen/xsm/flask/policy/mkaccess_vector.sh
+++ b/xen/xsm/flask/policy/mkaccess_vector.sh
@@ -42,7 +42,7 @@ $1 == "class" {
                        } 
                        av_defined[tclass] = 1;
 
-                       permission = 1;
+                       permission = 0;
 
                        nextstate = "INHERITS_OR_CLASS-OPENBRACKET";
                        next;
@@ -108,8 +108,8 @@ $1 == "{"   {
 
                        for (i = 0; i < spaces; i++) 
                                printf(" ") > outfile; 
-                       printf("0x%08xUL\n", permission) > outfile; 
-                       permission = permission * 2;
+                       printf("(1UL << %u)\n", permission) > outfile;
+                       permission = permission + 1;
                }
 $1 == "}"      {
                        if (nextstate != "CLASS-CLOSEBRACKET" && 
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
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®.