/*
* SID conversion
*/
-
- winbind_status winbind_sid_to_uid(/*TODO*/);
- winbind_status winbind_sid_to_gid(/*TODO*/);
- winbind_status winbind_uid_to_sid(/*TODO*/);
- winbind_status winbind_gid_to_sid(/*TODO*/);
+ typedef [v1_enum] enum {
+ WINBIND_IDMAP_LEVEL_SID_TO_UID = 1,
+ WINBIND_IDMAP_LEVEL_SID_TO_GID = 2,
+ WINBIND_IDMAP_LEVEL_UID_TO_SID = 3,
+ WINBIND_IDMAP_LEVEL_GID_TO_SID = 4
+ } winbind_get_idmap_level;
+
+ typedef [switch_type(winbind_get_idmap_level)] union {
+ [case(WINBIND_IDMAP_LEVEL_SID_TO_UID)]
+/*TODO [ref]*/ dom_sid *sid;
+ [case(WINBIND_IDMAP_LEVEL_SID_TO_GID)]
+/*TODO [ref]*/ dom_sid *sid;
+ [case(WINBIND_IDMAP_LEVEL_UID_TO_SID)]
+ hyper uid;
+ [case(WINBIND_IDMAP_LEVEL_GID_TO_SID)]
+ hyper gid;
+ } winbind_get_idmap_req;
+
+ typedef [switch_type(winbind_get_idmap_level)] union {
+ [case(WINBIND_IDMAP_LEVEL_SID_TO_UID)]
+ hyper uid;
+ [case(WINBIND_IDMAP_LEVEL_SID_TO_GID)]
+ hyper gid;
+ [case(WINBIND_IDMAP_LEVEL_UID_TO_SID)]
+/*TODO [ref]*/ dom_sid *sid;
+ [case(WINBIND_IDMAP_LEVEL_GID_TO_SID)]
+/*TODO [ref]*/ dom_sid *sid;
+ } winbind_get_idmap_rep;
+
+ winbind_status winbind_get_idmap(
+ [in,out] winbind_get_idmap_level *level,
+ [in,switch_is(*level)] winbind_get_idmap_req req,
+ [out,switch_is(*level)] winbind_get_idmap_rep *rep
+ );
winbind_status winbind_allocate_uid(/*TODO*/);
winbind_status winbind_allocate_gid(/*TODO*/);
winbind_status winbind_set_mapping(/*TODO*/);
winbind_status winbind_set_hwm(/*TODO*/);
- /*
- * Miscellaneous other stuff
- */
-
/* Check machine account pw works */
winbind_status winbind_check_machcc(/*TODO*/);
/* Various bit of info. Currently just tidbits */
* Blocking calls that are not allowed on the main winbind pipe, only
* between parent and children
*/
- winbind_status winbind_dual_sid2gid(/*TODO*/);
- winbind_status winbind_dual_sid2uid(/*TODO*/);
- winbind_status winbind_dual_uid2sid(/*TODO*/);
- winbind_status winbind_dual_gid2sid(/*TODO*/);
winbind_status winbind_dual_set_mapping(/*TODO*/);
winbind_status winbind_dual_set_hwm(/*TODO*/);