void FramePool::mark_inaccessible(unsigned long _base_frame_no, unsigned long _nframes) { int i; for (i = _base_frame_no; i < _base_frame_no + _nframes; i++) { set_nth_bit(frame_vacancy_bitmap, i); } }
size_t readtoken (FILE *stream, const char *delim, size_t n_delim, token_buffer *tokenbuffer) { char *p; int c; size_t i, n; word isdelim[(UCHAR_MAX + bits_per_word) / bits_per_word]; memset (isdelim, 0, sizeof isdelim); for (i = 0; i < n_delim; i++) { unsigned char ch = delim[i]; set_nth_bit (ch, isdelim); } /* skip over any leading delimiters */ for (c = getc (stream); c >= 0 && get_nth_bit (c, isdelim); c = getc (stream)) { /* empty */ } p = tokenbuffer->buffer; n = tokenbuffer->size; i = 0; for (;;) { if (c < 0 && i == 0) return -1; if (i == n) p = x2nrealloc (p, &n, sizeof *p); if (c < 0) { p[i] = 0; break; } if (get_nth_bit (c, isdelim)) { p[i] = 0; break; } p[i++] = c; c = getc (stream); } tokenbuffer->buffer = p; tokenbuffer->size = n; return i; }
unsigned long FramePool::get_frame() { // Allocate an available frame from the the bitmap, // If successful, return its frame number. Otherwise return 0 // printf("BEGIN: FramePool searching for an available frame\n"); unsigned long i; for (i = 0; i < num_frames; i++) { if (get_nth_bit(frame_vacancy_bitmap, i) == 0) { set_nth_bit(frame_vacancy_bitmap, i); // printf("SUCCESS: FramePool found vacancy at frame <#%lu>\n", i); return i; } } Console::puts("ERROR: FramePool could not find a vacant frame\n"); return 0; }
void ciMethodData::set_arg_returned(int i) { set_nth_bit(_arg_returned, i); }
void ciMethodData::set_arg_stack(int i) { set_nth_bit(_arg_stack, i); }
void ciMethodData::set_arg_local(int i) { set_nth_bit(_arg_local, i); }