return 1;
}
-static int com_lsatt_callback(int fd, const struct osl_object *query)
+static int com_lsatt_callback(struct afs_callback_arg *aca)
{
int ret;
struct lsatt_action_data laad = {
- .flags = *(unsigned *) query->data,
+ .flags = *(unsigned *)aca->query.data,
.pb = {
.max_size = shm_get_shmmax(),
.private_data = &(struct afs_max_size_handler_data) {
- .fd = fd,
+ .fd = aca->fd,
.band = SBD_OUTPUT
},
.max_size_handler = afs_max_size_handler
.table = attribute_table,
.loop_col_num = ATTCOL_BITNUM,
.match_col_num = ATTCOL_NAME,
- .patterns = {.data = (char *)query->data + sizeof(laad.flags),
- .size = query->size - sizeof(laad.flags)},
+ .patterns = {.data = (char *)aca->query.data + sizeof(laad.flags),
+ .size = aca->query.size - sizeof(laad.flags)},
.pm_flags = PM_NO_PATTERN_MATCHES_EVERYTHING,
.data = &laad,
.action = print_attribute
};
-static int com_addatt_callback(int fd, const struct osl_object *query)
+static int com_addatt_callback(struct afs_callback_arg *aca)
{
char *p;
int ret = 1;
struct para_buffer pb = {
.max_size = shm_get_shmmax(),
.private_data = &(struct afs_max_size_handler_data) {
- .fd = fd,
+ .fd = aca->fd,
.band = SBD_OUTPUT
},
.max_size_handler = afs_max_size_handler
};
size_t len;
- for (p = query->data; p < (char *)query->data + query->size; p += len + 1) {
+ for (
+ p = aca->query.data;
+ p < (char *)aca->query.data + aca->query.size;
+ p += len + 1
+ ) {
struct osl_object objs[NUM_ATT_COLUMNS];
struct osl_row *row;
unsigned char bitnum;
return ret;
}
-static int com_mvatt_callback(int fd, const struct osl_object *query)
+static int com_mvatt_callback(struct afs_callback_arg *aca)
{
- char *old = query->data;
+ char *old = aca->query.data;
size_t size = strlen(old) + 1;
char *new = old + size;
struct osl_object obj = {.data = old, .size = size};
struct para_buffer pb = {
.max_size = shm_get_shmmax(),
.private_data = &(struct afs_max_size_handler_data) {
- .fd = fd,
+ .fd = aca->fd,
.band = SBD_OUTPUT
},
.max_size_handler = afs_max_size_handler,
return afs_event(ATTRIBUTE_REMOVE, pb, &red);
}
-static int com_rmatt_callback(int fd, const struct osl_object *query)
+static int com_rmatt_callback(struct afs_callback_arg *aca)
{
struct para_buffer pb = {
.max_size = shm_get_shmmax(),
.private_data = &(struct afs_max_size_handler_data) {
- .fd = fd,
+ .fd = aca->fd,
.band = SBD_OUTPUT
},
.max_size_handler = afs_max_size_handler,
int ret;
struct pattern_match_data pmd = {
.table = attribute_table,
- .patterns = *query,
+ .patterns = aca->query,
.loop_col_num = ATTCOL_BITNUM,
.match_col_num = ATTCOL_NAME,
.data = &pb,
/**
* Compute the attribute bit mask and check each afs info bitmap.
*
- * \param fd Needed for the para buffer.
- * \param query Unused.
+ * \param aca The query field of \a aca is ignored.
*
* This iterates over all attributes in the attribute table and computes the
* logical or of 1 << b where b is the bit number of the attribute. The
*
* \sa \ref aft_check_attributes().
*/
-int attribute_check_callback(int fd, __a_unused const struct osl_object *query)
+int attribute_check_callback(struct afs_callback_arg *aca)
{
int ret;
uint64_t att_mask = 0; /* bits corresponding to a attributes */
struct para_buffer pb = {
.max_size = shm_get_shmmax(),
.private_data = &(struct afs_max_size_handler_data) {
- .fd = fd,
+ .fd = aca->fd,
.band = SBD_OUTPUT
},
.max_size_handler = afs_max_size_handler,