X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=afs.h;h=9a1d7d9ca0f130c4590f55c23abc181b632c6483;hb=82a64c65b1876da766fe7f7d418387868b111d09;hp=a6394fa6b512364e6c4658361687d85a5eb32520;hpb=9055c71be97f1095dcdbd83da305b600f204f763;p=paraslash.git diff --git a/afs.h b/afs.h index a6394fa6..9a1d7d9c 100644 --- a/afs.h +++ b/afs.h @@ -169,6 +169,8 @@ struct afs_callback_arg { }; /** + * The "top half" of an afs command. + * * Afs command handlers run as a process which is not related to the afs * process, i.e. they can not change the address space of afs directly. * Therefore afs commands typically consist of two functions: The command @@ -179,9 +181,13 @@ struct afs_callback_arg { typedef int afs_callback(struct afs_callback_arg *aca); /** + * Dispatch the output of an afs callback. + * * Some AFS callbacks need to send data back to the command handler. Pointers * to this type of function are passed to \ref send_callback_request() and - * related functions to dispatch the data in the command handler process. + * related functions to dispatch the data in the command handler process. Most + * (but not all) afs commands pass \ref afs_cb_result_handler(), which sends + * the output of the callback to the connected client. */ typedef int callback_result_handler(struct osl_object *result, uint8_t band, void *private); int afs_cb_result_handler(struct osl_object *result, uint8_t band, void *private); @@ -225,6 +231,8 @@ int send_callback_request(afs_callback *f, struct osl_object *query, int send_lls_callback_request(afs_callback *f, const struct lls_command * const cmd, struct lls_parse_result *lpr, void *private_result_data); +__printf_2_3 void afs_error(const struct afs_callback_arg *aca, + const char *fmt,...); int string_compare(const struct osl_object *obj1, const struct osl_object *obj2); int for_each_matching_row(struct pattern_match_data *pmd);