ge
struct intel_vgpu_ppgtt_spt *s, struct intel_gvt_gtt_entry *ge)
se->type = ge->type;
se->val64 = ge->val64;
struct intel_gvt_gtt_entry *ge)
struct intel_gvt_gtt_entry se = *ge;
if (!pte_ops->test_present(ge))
gfn = pte_ops->get_pfn(ge);
switch (ge->type) {
struct intel_gvt_gtt_entry se, ge;
for_each_present_guest_entry(spt, &ge, i) {
if (gtt_type_is_pt(get_next_pt_type(ge.type))) {
s = ppgtt_populate_spt_by_guest_entry(vgpu, &ge);
ppgtt_generate_shadow_entry(&se, s, &ge);
ret = ppgtt_populate_shadow_entry(vgpu, spt, i, &ge);
spt, ge.val64, ge.type);
struct intel_gvt_gtt_entry ge;
ppgtt_get_guest_entry(spt, &ge, index);
&ge, index);
struct intel_gvt_gtt_entry ge, se;
ppgtt_get_guest_root_entry(mm, &ge, index);
if (!ops->test_present(&ge))
ge.type, ge.val64, index);
spt = ppgtt_populate_spt_by_guest_entry(vgpu, &ge);
ppgtt_generate_shadow_entry(&se, spt, &ge);
ge = &sc->sc_gnt[sc->sc_gntcnt];
ge->ge_table = va;
km_free(ge->ge_table, PAGE_SIZE, &kv_any, &kp_zero);
ge->ge_start = sc->sc_gntcnt * GNTTAB_NEPG;
ge->ge_reserved = ge->ge_start == 0 ? GNTTAB_NR_RESERVED_ENTRIES : 0;
ge->ge_free = GNTTAB_NEPG - ge->ge_reserved;
ge->ge_next = ge->ge_reserved;
mtx_init(&ge->ge_lock, IPL_NET);
return (ge);
struct xen_gntent *ge;
ge = &sc->sc_gnt[sc->sc_gntcnt - 1];
if (ge->ge_free > 0) {
mtx_enter(&ge->ge_lock);
if (ge->ge_free > 0)
mtx_leave(&ge->ge_lock);
ge = &sc->sc_gnt[i];
if (ge->ge_free == 0)
mtx_enter(&ge->ge_lock);
if (ge->ge_free > 0)
mtx_leave(&ge->ge_lock);
if ((ge = xen_grant_table_grow(sc)) == NULL)
mtx_enter(&ge->ge_lock);
if (ge->ge_free == 0) {
mtx_leave(&ge->ge_lock);
for (i = ge->ge_next;
i != ((ge->ge_next + GNTTAB_NEPG - 1) & (GNTTAB_NEPG - 1));
if (ge->ge_reserved && i < ge->ge_reserved)
if (ge->ge_table[i].frame != 0)
*ref = ge->ge_start + i;
ge->ge_table[i].flags = GTF_invalid;
ge->ge_table[i].frame = 0xffffffff; /* Mark as taken */
if ((ge->ge_next = i + 1) == GNTTAB_NEPG)
ge->ge_next = ge->ge_reserved;
ge->ge_free--;
mtx_leave(&ge->ge_lock);
mtx_leave(&ge->ge_lock);
sc->sc_gntcnt, ge);
struct xen_gntent *ge;
ge = &sc->sc_gnt[ref / GNTTAB_NEPG];
mtx_enter(&ge->ge_lock);
if (ref < ge->ge_start || ref > ge->ge_start + GNTTAB_NEPG) {
mtx_leave(&ge->ge_lock);
ref, ge, ge->ge_start, sc, sc->sc_gnt);
ref -= ge->ge_start;
if (ge->ge_table[ref].flags != GTF_invalid) {
mtx_leave(&ge->ge_lock);
ref + ge->ge_start, ge->ge_table[ref].flags,
ge->ge_table[ref].frame);
ge->ge_table[ref].frame = 0;
ge->ge_next = ref;
ge->ge_free++;
mtx_leave(&ge->ge_lock);
struct xen_gntent *ge;
ge = &sc->sc_gnt[ref / GNTTAB_NEPG];
if (ref < ge->ge_start || ref > ge->ge_start + GNTTAB_NEPG) {
ref, ge, ge->ge_start, sc, sc->sc_gnt);
ref -= ge->ge_start;
if (ge->ge_table[ref].flags != GTF_invalid) {
ref + ge->ge_start, ge->ge_table[ref].flags,
ge->ge_table[ref].frame);
ge->ge_table[ref].frame = atop(pa);
ge->ge_table[ref].domid = domain;
ge->ge_table[ref].flags = GTF_permit_access | flags;
struct xen_gntent *ge;
ge = &sc->sc_gnt[ref / GNTTAB_NEPG];
if (ref < ge->ge_start || ref > ge->ge_start + GNTTAB_NEPG) {
ref, ge, ge->ge_start, sc, sc->sc_gnt);
ref -= ge->ge_start;
ptr = (uint32_t *)&ge->ge_table[ref];
flags = (ge->ge_table[ref].flags & ~(GTF_reading|GTF_writing)) |
(ge->ge_table[ref].domid << 16);
ref + ge->ge_start, ge->ge_table[ref].domid,
ge->ge_table[ref].frame, ge->ge_table[ref].flags);
ge->ge_table[ref].frame = 0xffffffff;
struct xen_gntent *ge;
m &= ge(r->v[0],237);
m &= ge(r->v[0],237);
struct group *ge;
if ((ge = group_list_find(iface, group)) != NULL) {
return (ge);
if ((ge = calloc(1, sizeof(*ge))) == NULL)
ge->addr.s_addr = group;
ge->state = GRP_STA_NO_MEMB_PRSNT;
evtimer_set(&ge->dead_timer, dead_timer, ge);
evtimer_set(&ge->v1_host_timer, v1_host_timer, ge);
evtimer_set(&ge->retrans_timer, retrans_timer, ge);
ge->uptime = now.tv_sec;
TAILQ_INSERT_TAIL(&iface->group_list, ge, entry);
ge->iface = iface;
inet_ntoa(ge->addr));
return (ge);
struct group *ge = NULL;
TAILQ_FOREACH(ge, &iface->group_list, entry) {
if (ge->addr.s_addr == group)
return (ge);
return (ge);
struct group *ge;
while ((ge = TAILQ_FIRST(&iface->group_list)) != NULL) {
TAILQ_REMOVE(&iface->group_list, ge, entry);
free(ge);
struct group *ge;
TAILQ_FOREACH(ge, &iface->group_list, entry) {
gctl = group_to_ctl(ge);
grow_extra_check(udb_alloc* alloc, uint64_t ge)
if(ge < bsz*2)
uint64_t gnow = ge - bsz;
return ge;
RB_FOREACH(ge, group_name_tree, env->sc_group_names) {
ge->ge_line[strlen(ge->ge_line)] = ':';
log_debug("pushing line: %s", ge->ge_line);
len = strlen(ge->ge_line) + 1;
memcpy(endp, ge->ge_line, len);
free(ge->ge_line);
ge->ge_line = endp;
struct groupent *ge;
struct groupent *ge;
if ((ge = RB_FIND(group_gid_tree, &env->sc_group_gids,
yp_make_val(&res, ge->ge_line, 1);
if ((ge = RB_FIND(group_name_tree, env->sc_group_names,
yp_make_val(&res, ge->ge_line, 1);
struct groupent *ge;
if ((ge = RB_NFIND(group_name_tree, env->sc_group_names,
line = ge->ge_line + (strlen(ge->ge_line) + 1);
struct groupent *ge;
while ((ge = RB_ROOT(env->sc_group_names_t))
env->sc_group_names_t, ge);
free(ge->ge_line);
free(ge);
struct groupent *ge;
RB_FOREACH(ge, group_name_tree, env->sc_group_names_t) {
bp = cp = ge->ge_line;
ukey.ue_line, ge->ge_line);
if (ge->ge_gid == ue->ue_gid)
ge->ge_gid)) >= (int)(LINE_WIDTH-len)) {
struct groupent *ge;
while ((ge = RB_ROOT(env->sc_group_names)) != NULL) {
env->sc_group_names, ge);
free(ge);
RB_FOREACH(ge, group_name_tree, env->sc_group_names)
&env->sc_group_gids, ge);
struct groupent *ge;
if ((ge = calloc(1, sizeof(*ge))) == NULL ||
(ge->ge_line = strdup(ir.ir_line)) == NULL) {
ge->ge_gid = ir.ir_key.ik_gid;
len = strlen(ge->ge_line) + 1;
ge->ge_line[strcspn(ge->ge_line, ":")] = '\0';
ge) != NULL) { /* dup */
free(ge->ge_line);
free(ge);