• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/ipc/

Lines Matching defs:ids

46 	int ids;
113 * @ids: Identifier set
116 * below IPCMNI) then initialise the ids idr.
119 void ipc_init_ids(struct ipc_ids *ids)
121 init_rwsem(&ids->rw_mutex);
123 ids->in_use = 0;
124 ids->seq = 0;
128 ids->seq_max = USHRT_MAX;
130 ids->seq_max = seq_limit;
133 idr_init(&ids->ipcs_idr);
142 * @ids: ipc id table to iterate.
146 int ids, int (*show)(struct seq_file *, void *))
156 iface->ids = ids;
172 * @ids: Identifier set
181 static struct kern_ipc_perm *ipc_findkey(struct ipc_ids *ids, key_t key)
187 for (total = 0, next_id = 0; total < ids->in_use; next_id++) {
188 ipc = idr_find(&ids->ipcs_idr, next_id);
207 * @ids: IPC identifier set
212 int ipc_get_maxid(struct ipc_ids *ids)
218 if (ids->in_use == 0)
221 if (ids->in_use == IPCMNI)
226 for (id = 0; id < IPCMNI && total < ids->in_use; id++) {
227 ipc = idr_find(&ids->ipcs_idr, id);
238 * @ids: IPC identifier set
240 * @size: limit for the number of used ids
242 * Add an entry 'new' to the IPC ids idr. The permissions object is
250 int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size)
259 if (ids->in_use >= size)
267 err = idr_get_new(&ids->ipcs_idr, new, &id);
274 ids->in_use++;
280 new->seq = ids->seq++;
281 if(ids->seq > ids->seq_max)
282 ids->seq = 0;
291 * @ids: IPC identifer set
298 static int ipcget_new(struct ipc_namespace *ns, struct ipc_ids *ids,
303 err = idr_pre_get(&ids->ipcs_idr, GFP_KERNEL);
308 down_write(&ids->rw_mutex);
310 up_write(&ids->rw_mutex);
326 * ids IDR.
351 * @ids: IPC identifer set
362 static int ipcget_public(struct ipc_namespace *ns, struct ipc_ids *ids,
369 err = idr_pre_get(&ids->ipcs_idr, GFP_KERNEL);
375 down_write(&ids->rw_mutex);
376 ipcp = ipc_findkey(ids, params->key);
403 up_write(&ids->rw_mutex);
414 * @ids: IPC identifier set
421 void ipc_rmid(struct ipc_ids *ids, struct kern_ipc_perm *ipcp)
425 idr_remove(&ids->ipcs_idr, lid);
427 ids->in_use--;
684 * @ids: IPC identifier set
687 * Look for an id in the ipc ids idr and lock the associated ipc object.
692 struct kern_ipc_perm *ipc_lock(struct ipc_ids *ids, int id)
698 out = idr_find(&ids->ipcs_idr, lid);
718 struct kern_ipc_perm *ipc_lock_check(struct ipc_ids *ids, int id)
722 out = ipc_lock(ids, id);
737 * @ids : IPC identifier set
744 int ipcget(struct ipc_namespace *ns, struct ipc_ids *ids,
748 return ipcget_new(ns, ids, ops, params);
750 return ipcget_public(ns, ids, ops, params);
768 * @ids: the table of ids where to look for the ipc
782 struct kern_ipc_perm *ipcctl_pre_down(struct ipc_ids *ids, int id, int cmd,
789 down_write(&ids->rw_mutex);
790 ipcp = ipc_lock_check(ids, id);
809 up_write(&ids->rw_mutex);
846 static struct kern_ipc_perm *sysvipc_find_ipc(struct ipc_ids *ids, loff_t pos,
853 for (id = 0; id < pos && total < ids->in_use; id++) {
854 ipc = idr_find(&ids->ipcs_idr, id);
859 if (total >= ids->in_use)
863 ipc = idr_find(&ids->ipcs_idr, pos);
885 return sysvipc_find_ipc(&iter->ns->ids[iface->ids], *pos, pos);
896 struct ipc_ids *ids;
898 ids = &iter->ns->ids[iface->ids];
904 down_read(&ids->rw_mutex);
915 return sysvipc_find_ipc(ids, *pos - 1, pos);
923 struct ipc_ids *ids;
929 ids = &iter->ns->ids[iface->ids];
931 up_read(&ids->rw_mutex);