dix: registry: add LookupDixAccessName()
Helper for converting Xace access masks to human-readable text. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
		
							parent
							
								
									7dda656db7
								
							
						
					
					
						commit
						47b9e71ab3
					
				| 
						 | 
				
			
			@ -260,6 +260,49 @@ LookupErrorName(int error)
 | 
			
		|||
}
 | 
			
		||||
#endif /* X_REGISTRY_REQUEST */
 | 
			
		||||
 | 
			
		||||
static inline void __accbit(Mask val, Mask mask, const char* name, char *buf, int sz) {
 | 
			
		||||
    if ((val & mask) == mask) {
 | 
			
		||||
        if (buf[0])
 | 
			
		||||
            strncat(buf, ",", sz);
 | 
			
		||||
        strncat(buf, name, sz);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
LookupDixAccessName(Mask acc, char *buf, int sz) {
 | 
			
		||||
    buf[0] = 0;
 | 
			
		||||
    __accbit(acc, DixReadAccess,      "Read",      buf, sz);
 | 
			
		||||
    __accbit(acc, DixWriteAccess,     "Write",     buf, sz);
 | 
			
		||||
    __accbit(acc, DixDestroyAccess,   "Destroy",   buf, sz);
 | 
			
		||||
    __accbit(acc, DixCreateAccess,    "Create",    buf, sz);
 | 
			
		||||
    __accbit(acc, DixGetAttrAccess,   "GetAttr",   buf, sz);
 | 
			
		||||
    __accbit(acc, DixSetAttrAccess,   "SetAttr",   buf, sz);
 | 
			
		||||
    __accbit(acc, DixListPropAccess,  "ListProp",  buf, sz);
 | 
			
		||||
    __accbit(acc, DixGetPropAccess,   "GetProp",   buf, sz);
 | 
			
		||||
    __accbit(acc, DixSetPropAccess,   "SetProp",   buf, sz);
 | 
			
		||||
    __accbit(acc, DixGetFocusAccess,  "GetFocus",  buf, sz);
 | 
			
		||||
    __accbit(acc, DixSetFocusAccess,  "SetFocus",  buf, sz);
 | 
			
		||||
    __accbit(acc, DixListAccess,      "List",      buf, sz);
 | 
			
		||||
    __accbit(acc, DixAddAccess,       "Add",       buf, sz);
 | 
			
		||||
    __accbit(acc, DixRemoveAccess,    "Remove",    buf, sz);
 | 
			
		||||
    __accbit(acc, DixHideAccess,      "Hide",      buf, sz);
 | 
			
		||||
    __accbit(acc, DixShowAccess,      "Show",      buf, sz);
 | 
			
		||||
    __accbit(acc, DixBlendAccess,     "Blend",     buf, sz);
 | 
			
		||||
    __accbit(acc, DixGrabAccess,      "Grab",      buf, sz);
 | 
			
		||||
    __accbit(acc, DixFreezeAccess,    "Freeze",    buf, sz);
 | 
			
		||||
    __accbit(acc, DixForceAccess,     "Force",     buf, sz);
 | 
			
		||||
    __accbit(acc, DixInstallAccess,   "Install",   buf, sz);
 | 
			
		||||
    __accbit(acc, DixUninstallAccess, "Uninstall", buf, sz);
 | 
			
		||||
    __accbit(acc, DixSendAccess,      "Send",      buf, sz);
 | 
			
		||||
    __accbit(acc, DixReceiveAccess,   "Receive",   buf, sz);
 | 
			
		||||
    __accbit(acc, DixUseAccess,       "Use",       buf, sz);
 | 
			
		||||
    __accbit(acc, DixManageAccess,    "Manage",    buf, sz);
 | 
			
		||||
    __accbit(acc, DixDebugAccess,     "Debug",     buf, sz);
 | 
			
		||||
    __accbit(acc, DixBellAccess,      "Bell",      buf, sz);
 | 
			
		||||
    __accbit(acc, DixPostAccess,      "Post",      buf, sz);
 | 
			
		||||
    buf[sz-1] = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef X_REGISTRY_RESOURCE
 | 
			
		||||
/*
 | 
			
		||||
 * Resource registry functions
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,4 +34,6 @@ const char *LookupRequestName(int major, int minor);
 | 
			
		|||
const char *LookupEventName(int event);
 | 
			
		||||
const char *LookupErrorName(int error);
 | 
			
		||||
 | 
			
		||||
void LookupDixAccessName(Mask acc, char *buf, int sz);
 | 
			
		||||
 | 
			
		||||
#endif /* _XSERVER_DIX_REGISTRY_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue