Merge tag 'sound-fix-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[linux-2.6-microblaze.git] / fs / lockd / svc4proc.c
index e4d3f78..fa41dda 100644 (file)
@@ -486,65 +486,215 @@ nlm4svc_proc_granted_res(struct svc_rqst *rqstp)
         return rpc_success;
 }
 
+static __be32
+nlm4svc_proc_unused(struct svc_rqst *rqstp)
+{
+       return rpc_proc_unavail;
+}
+
 
 /*
  * NLM Server procedures.
  */
 
-#define nlm4svc_encode_norep   nlm4svc_encode_void
-#define nlm4svc_decode_norep   nlm4svc_decode_void
-#define nlm4svc_decode_testres nlm4svc_decode_void
-#define nlm4svc_decode_lockres nlm4svc_decode_void
-#define nlm4svc_decode_unlockres       nlm4svc_decode_void
-#define nlm4svc_decode_cancelres       nlm4svc_decode_void
-#define nlm4svc_decode_grantedres      nlm4svc_decode_void
-
-#define nlm4svc_proc_none      nlm4svc_proc_null
-#define nlm4svc_proc_test_res  nlm4svc_proc_null
-#define nlm4svc_proc_lock_res  nlm4svc_proc_null
-#define nlm4svc_proc_cancel_res        nlm4svc_proc_null
-#define nlm4svc_proc_unlock_res        nlm4svc_proc_null
-
 struct nlm_void                        { int dummy; };
 
-#define PROC(name, xargt, xrest, argt, rest, respsize) \
- { .pc_func    = nlm4svc_proc_##name,  \
-   .pc_decode  = nlm4svc_decode_##xargt,       \
-   .pc_encode  = nlm4svc_encode_##xrest,       \
-   .pc_release = NULL,                                 \
-   .pc_argsize = sizeof(struct nlm_##argt),            \
-   .pc_ressize = sizeof(struct nlm_##rest),            \
-   .pc_xdrressize = respsize,                          \
- }
 #define        Ck      (1+XDR_QUADLEN(NLM_MAXCOOKIELEN))       /* cookie */
 #define        No      (1+1024/4)                              /* netobj */
 #define        St      1                                       /* status */
 #define        Rg      4                                       /* range (offset + length) */
-const struct svc_procedure nlmsvc_procedures4[] = {
-  PROC(null,           void,           void,           void,   void, 1),
-  PROC(test,           testargs,       testres,        args,   res, Ck+St+2+No+Rg),
-  PROC(lock,           lockargs,       res,            args,   res, Ck+St),
-  PROC(cancel,         cancargs,       res,            args,   res, Ck+St),
-  PROC(unlock,         unlockargs,     res,            args,   res, Ck+St),
-  PROC(granted,                testargs,       res,            args,   res, Ck+St),
-  PROC(test_msg,       testargs,       norep,          args,   void, 1),
-  PROC(lock_msg,       lockargs,       norep,          args,   void, 1),
-  PROC(cancel_msg,     cancargs,       norep,          args,   void, 1),
-  PROC(unlock_msg,     unlockargs,     norep,          args,   void, 1),
-  PROC(granted_msg,    testargs,       norep,          args,   void, 1),
-  PROC(test_res,       testres,        norep,          res,    void, 1),
-  PROC(lock_res,       lockres,        norep,          res,    void, 1),
-  PROC(cancel_res,     cancelres,      norep,          res,    void, 1),
-  PROC(unlock_res,     unlockres,      norep,          res,    void, 1),
-  PROC(granted_res,    res,            norep,          res,    void, 1),
-  /* statd callback */
-  PROC(sm_notify,      reboot,         void,           reboot, void, 1),
-  PROC(none,           void,           void,           void,   void, 0),
-  PROC(none,           void,           void,           void,   void, 0),
-  PROC(none,           void,           void,           void,   void, 0),
-  PROC(share,          shareargs,      shareres,       args,   res, Ck+St+1),
-  PROC(unshare,                shareargs,      shareres,       args,   res, Ck+St+1),
-  PROC(nm_lock,                lockargs,       res,            args,   res, Ck+St),
-  PROC(free_all,       notify,         void,           args,   void, 1),
 
+const struct svc_procedure nlmsvc_procedures4[24] = {
+       [NLMPROC_NULL] = {
+               .pc_func = nlm4svc_proc_null,
+               .pc_decode = nlm4svc_decode_void,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_void),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_TEST] = {
+               .pc_func = nlm4svc_proc_test,
+               .pc_decode = nlm4svc_decode_testargs,
+               .pc_encode = nlm4svc_encode_testres,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_res),
+               .pc_xdrressize = Ck+St+2+No+Rg,
+       },
+       [NLMPROC_LOCK] = {
+               .pc_func = nlm4svc_proc_lock,
+               .pc_decode = nlm4svc_decode_lockargs,
+               .pc_encode = nlm4svc_encode_res,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_res),
+               .pc_xdrressize = Ck+St,
+       },
+       [NLMPROC_CANCEL] = {
+               .pc_func = nlm4svc_proc_cancel,
+               .pc_decode = nlm4svc_decode_cancargs,
+               .pc_encode = nlm4svc_encode_res,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_res),
+               .pc_xdrressize = Ck+St,
+       },
+       [NLMPROC_UNLOCK] = {
+               .pc_func = nlm4svc_proc_unlock,
+               .pc_decode = nlm4svc_decode_unlockargs,
+               .pc_encode = nlm4svc_encode_res,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_res),
+               .pc_xdrressize = Ck+St,
+       },
+       [NLMPROC_GRANTED] = {
+               .pc_func = nlm4svc_proc_granted,
+               .pc_decode = nlm4svc_decode_testargs,
+               .pc_encode = nlm4svc_encode_res,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_res),
+               .pc_xdrressize = Ck+St,
+       },
+       [NLMPROC_TEST_MSG] = {
+               .pc_func = nlm4svc_proc_test_msg,
+               .pc_decode = nlm4svc_decode_testargs,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_LOCK_MSG] = {
+               .pc_func = nlm4svc_proc_lock_msg,
+               .pc_decode = nlm4svc_decode_lockargs,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_CANCEL_MSG] = {
+               .pc_func = nlm4svc_proc_cancel_msg,
+               .pc_decode = nlm4svc_decode_cancargs,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_UNLOCK_MSG] = {
+               .pc_func = nlm4svc_proc_unlock_msg,
+               .pc_decode = nlm4svc_decode_unlockargs,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_GRANTED_MSG] = {
+               .pc_func = nlm4svc_proc_granted_msg,
+               .pc_decode = nlm4svc_decode_testargs,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_TEST_RES] = {
+               .pc_func = nlm4svc_proc_null,
+               .pc_decode = nlm4svc_decode_void,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_res),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_LOCK_RES] = {
+               .pc_func = nlm4svc_proc_null,
+               .pc_decode = nlm4svc_decode_void,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_res),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_CANCEL_RES] = {
+               .pc_func = nlm4svc_proc_null,
+               .pc_decode = nlm4svc_decode_void,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_res),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_UNLOCK_RES] = {
+               .pc_func = nlm4svc_proc_null,
+               .pc_decode = nlm4svc_decode_void,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_res),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_GRANTED_RES] = {
+               .pc_func = nlm4svc_proc_granted_res,
+               .pc_decode = nlm4svc_decode_res,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_res),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [NLMPROC_NSM_NOTIFY] = {
+               .pc_func = nlm4svc_proc_sm_notify,
+               .pc_decode = nlm4svc_decode_reboot,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_reboot),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
+       [17] = {
+               .pc_func = nlm4svc_proc_unused,
+               .pc_decode = nlm4svc_decode_void,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_void),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = 0,
+       },
+       [18] = {
+               .pc_func = nlm4svc_proc_unused,
+               .pc_decode = nlm4svc_decode_void,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_void),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = 0,
+       },
+       [19] = {
+               .pc_func = nlm4svc_proc_unused,
+               .pc_decode = nlm4svc_decode_void,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_void),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = 0,
+       },
+       [NLMPROC_SHARE] = {
+               .pc_func = nlm4svc_proc_share,
+               .pc_decode = nlm4svc_decode_shareargs,
+               .pc_encode = nlm4svc_encode_shareres,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_res),
+               .pc_xdrressize = Ck+St+1,
+       },
+       [NLMPROC_UNSHARE] = {
+               .pc_func = nlm4svc_proc_unshare,
+               .pc_decode = nlm4svc_decode_shareargs,
+               .pc_encode = nlm4svc_encode_shareres,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_res),
+               .pc_xdrressize = Ck+St+1,
+       },
+       [NLMPROC_NM_LOCK] = {
+               .pc_func = nlm4svc_proc_nm_lock,
+               .pc_decode = nlm4svc_decode_lockargs,
+               .pc_encode = nlm4svc_encode_res,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_res),
+               .pc_xdrressize = Ck+St,
+       },
+       [NLMPROC_FREE_ALL] = {
+               .pc_func = nlm4svc_proc_free_all,
+               .pc_decode = nlm4svc_decode_notify,
+               .pc_encode = nlm4svc_encode_void,
+               .pc_argsize = sizeof(struct nlm_args),
+               .pc_ressize = sizeof(struct nlm_void),
+               .pc_xdrressize = St,
+       },
 };