/[hurd]/hurd-l4/task/task-class.c
ViewVC logotype

Diff of /hurd-l4/task/task-class.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by marcus, Fri Oct 29 03:26:16 2004 UTC revision 1.3 by marcus, Mon Nov 1 20:54:00 2004 UTC
# Line 35  Line 35 
35  static void  static void
36  task_reinit (hurd_cap_class_t cap_class, hurd_cap_obj_t obj)  task_reinit (hurd_cap_class_t cap_class, hurd_cap_obj_t obj)
37  {  {
38    task_t task = (task_t) obj;    task_t task = hurd_cap_obj_to_user (task_t, obj);
39    unsigned int i;    unsigned int i;
40    
41    /* Destroy all threads.  */    /* Destroy all threads.  */
# Line 87  static struct hurd_cap_class task_class; Line 87  static struct hurd_cap_class task_class;
87  error_t  error_t
88  task_class_init ()  task_class_init ()
89  {  {
90    return hurd_cap_class_init (&task_class, sizeof (struct task),    return hurd_cap_class_init (&task_class, task_t,
                               __alignof__ (struct task),  
91                                NULL, NULL, task_reinit, NULL,                                NULL, NULL, task_reinit, NULL,
92                                task_demuxer);                                task_demuxer);
93  }  }
# Line 100  task_class_init () Line 99  task_class_init ()
99     reference.  */     reference.  */
100  error_t  error_t
101  task_alloc (l4_word_t task_id, unsigned int nr_threads,  task_alloc (l4_word_t task_id, unsigned int nr_threads,
102              l4_thread_id_t *threads, hurd_cap_obj_t *r_obj)              l4_thread_id_t *threads, task_t *r_task)
103  {  {
104    error_t err;    error_t err;
105      hurd_cap_obj_t obj;
106    task_t task;    task_t task;
107    
108    err = hurd_cap_class_alloc (&task_class, (hurd_cap_obj_t *) &task);    err = hurd_cap_class_alloc (&task_class, &obj);
109    if (err)    if (err)
110      return err;      return err;
111      task = hurd_cap_obj_to_user (task_t, obj);
112    
113    task->task_id = task_id;    task->task_id = task_id;
114    assert (nr_threads <= MAX_THREADS);    assert (nr_threads <= MAX_THREADS);
115    task->nr_threads = nr_threads;    task->nr_threads = nr_threads;
116    memcpy (task->threads, threads, sizeof (l4_thread_id_t) * nr_threads);    memcpy (task->threads, threads, sizeof (l4_thread_id_t) * nr_threads);
117    
118    *r_obj = &task->obj;    *r_task = task;
119    return 0;    return 0;
120  }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26